# producer property 설명 default key.serializer key 를 직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Serializer 를 구현해야함 value.serializer value 를 직렬화할때 사용할 클래스. org.apache.kafka.common.serialization.Serializer 를 구현해야함 bootstrap.servers 연결할 kafka cluster 서버 정보 host:port,host:port 형태로 여러개 전달 가능 "" buffer.memory 프로듀서가 전달할 레코드들을 버퍼링할 수 있는 총 메모리. 프로듀서 애플리케이션에게 할당된 메모리보다 작아야함. 단위는 바이트 33554432 comp..
CI(Continuous Integration) 란 말은 예전부터 많이 들어본 분들이 있을것이다. CI 와 함께 대표적인 CI 툴로 jenkins 를 알고있고, 사용하고있는 분들도 많을 것이다. 그러다가 언젠가부터 CI 를 넘어서서 CD 라는 용어가 들리기 시작했다. 어떤자료는 D 를 delivery 를 사용하기도하고, 어떤자료는 deployment 를 사용하기도한다. 대충 비슷해보이기는하는데 delivery 와 deployment 는 무슨 차이가 있을까? 혹은 같은 내용인데 두 가지 용어로 불리는걸까? 그리고 CD(delivery 든 deployment 든지간에) 와 CI 는 어떻게 다를까? 그 차이를 알아보자. CI(Continuous Integration, 지속적인 통합) 코드는 지속적으로 변경되고..
1. 명사를 사용하고, 동사는 사용하지 말라 이해하기 쉽게 모든 리소스에 대해 아래 구조를 사용하라 Resource GET read POST create PUT update DELETE /cars Returns a list of cars Create a new car Bulk update of cars Delete all cars /cars/711 Returns a specific car Method not allowed (405) Updates a specific car Deletes a specific car 동사는 사용하지마라 /getAllCars /createNewCar /deleteAllRedCars 2. GET 메서드와 쿼리 파라미터로 상태를 변경하면 안된다 상태를 변경하려면 GET 메서드 대..
현재 개발하고있는 환경에선 이미 CI가 구축되어있어 특별히 내가 작업할일은 없었는데 이번에 신규 프로젝트를 들어가면서 직접 구성을 해야할 일이 생겼다. 이런저런 자료들이 많긴한데 딱 내가 원하던 한글 블로그는 없어서 작성을 해본다. 시작하기전에 말하면 jenkins가 너무 잘해줘서 딱히 내가 할일이 많지 않아 놀랐다. Jenkins plugins jenkins에서 blue ocean 플러그인을 설치한다. 음.. 개인적으로 나는 jenkins 쓰면서 플러그인이 없어서 몇번 삽질을 한경험이 있어서 jenkins 신규로 띄우고 바로 github, blue ocean, pipeline 플러그인을 왠만한건 다 설치했다. ㅡ.ㅡ; 혹시 이 포스팅을 보면서 자신의 Jenkins와 메뉴가 다르다던가 하면 저 3개 관련..
1. 코드 베이스배포된 애플리케이션은 하나의 코드 베이스만을 가져야한다. 코드는 git 같은 형상관리 도구를 이용해 관리한다. 2. 의존성애플리케이션이 의존하는 시스템 도구나 라이브러리는 명시적으로 드러나야한다. 암묵적인 의존이 존재하여 다른 환경에 배포할때 문제가 되지않도록 해야한다. 3. 설정배포마다 달라지는 설정은 분리하여 관리한다. 보통 local, test, release에 따라 다른시스템에 대한 정보들이 변경되게된다. 이런 설정들은 따로 관리할 수 있도록 한다. 4. 뒷단 서비스애플리케이션의 뒷단에서 실행되는 모든 서비스들은 연결된 리소스로 취급하며, 실행환경에 따라 사용하거나 사용하지않을 수 있어야한다. 5. 빌드, 릴리즈, 실행빌드, 릴리즈, 실행의 각 단계는 엄격하게 분리한다. 6. 프로..
이번 포스팅은 사실 별거 없는데... 몇분 뻘짓을 하고나서 알게돼가지고... 일단 글로 남긴다. 요즘 2017년이 끝나면서 여기저기서 회고록들이 보이고있다. 너무 많은 글들이 올라오고있어서 몇몇개를 보긴했는데 그 중에 github contribution 그래프를 캡쳐한 글들이 많이 있다. 아무래도 일일커밋 등이 유행을 하면서 github contribution 그래프가 1년의 노력들을 간략하게 볼 수 있는 지표적인 역할을 하는것 같다. (github contribution 그래프. 난 열심히 하지 않았나보다...) 그런데 회고록중에 저 컨트리뷰션 그래프를 3d로 올린글들이 많았다. github에 그리 열성적이지않은 내가 보기에도 너무 간지나서 내걸로 함 보려고했는데 나한테는 그런 옵션이 존재하지 않았다...
비슷한것 같고, 알게 모르게 혼용하는 단어이지만 확실히 구분하라고 물어보면 어려워보이는 단어인데 임백준님의 책을 보다가 알기쉽게 설명해주셔서 정리해놓는다. 동시성여러가지일을 한꺼번에 다루는것을 말한다. 병렬적(같이)으로 실행되는것과는 다르다. 내가 프로젝트를 2개 뛴다고해서 2개의 프로젝트를 동시에 개발하는건 아니다. A를 개발할땐 B가 멈출것이고, B를 개발할땐 A가 멈출것이다. 병렬한꺼번에 일을 처리하는 것을 말한다. 내가 그림자 분신술을 써서 A, B 프로젝트를 같이 진행하면 이것은 병렬이다. 100만개의 요소가 들어있는 숫자배열이있다. 이 배열의 모든 요소들에 2를 곱하려한다. 이때 배열을 25개씩 4등분하여 동시에 2를 곱하는것은 병렬적이다. 참고문헌폴리글랏 프로그래밍7가지 동시성 모델
코드를 짜다보면 복잡한 분기문이 필요할때가 있다. 복잡한 분기문을 좋아하는 개발자는 없지만 복잡한 비즈니스로직을 요구한쪽이 문제라고 생각하며 자신의 코드를 용서하는경우가 많게된다. 하지만 각종 조건들로인해 분기문이 많아지고 그 깊이가 깊어지면 추후 다른 동료 개발자는 물론이고, 그 코드를 직접 상대한 스스로조차 이해하기 힘들정도의 코드가 탄생하게된다. 이번 포스팅에서는 대단한 기법이나 어려운 기법은 아니지만 소소하게 좀 더 이해하기 쉬운 분기문을 작성하는법을 알아보자. 코드는 자바로 작성되지만 분기문은 자바에만 존재하는 개념은 아니므로 이해하기 어렵진 않을것이다. 1. 불필요한 else 문이런 코드는 실제로 쉽게 만날 수 있다. private static boolean isSenior(int age){ ..
- Total
- Today
- Yesterday
- JavaScript Core
- Design Pattern
- Git
- 정규표현식
- programming
- frontend개발환경
- db
- clean code
- http
- toby
- servlet
- Jackson
- TEST
- backend개발환경
- frontcode
- MySQL
- OOP
- DesignPattern
- go-core
- generics
- code
- mariadb
- Kotlin
- Spring
- javascript
- EffectiveJava
- spring cloud
- java
- java8
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |