본문 바로가기

Web

(44)
[kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 시작은 설치부터 해야겠죠? 0. 실습 구성 실습은 아래의 준비물들로 진행됩니다. 서버 2대 Java 11 (미리 설치!) Spring Boot 프로젝트 1. 카프카 서버 구성 및 설치 카프카를 하나의 서버에 구성하기에는 실무와 어울리지 않으므로 어떻게든 2개 이상의 서버로 구성해보려 했습니다. 카프카 서버 2대와 zookeeper 서버 1대로 구성을 하려고 합니다. 하지만 서버가 2대밖에 없네요. 그러므로 아래와 같이 구성했습니다. 1번 서버 - kafka broker(1), zookeeper 2번 서버 - kafka b..
Http와 Rest API에 대한 간단한 정리 1. HTTP - HyperText Transfer Protocol - 링크 기반의 데이터 교환 방식을 의미 - 클라이언트와 서버간의 데이터 교환하는 방식이다 1.2 HTTP 동작 방식 - 클라이언트 : 서버에 Request - 서버 : 클라이언트로부터 받은 요청을 처리한 후 Response를 돌려준다 1.3 HTTP 특징 1. 비연결성 (Connectionless) = 클라이언트와 서버가 연결을 한번 맺었다면 응답을 받으면 연결을 끊음 장점 : 클라이언트와 계속 연결을 유지하는 리소스를 줄일 수 있다. 단점 : 연결 및 해제에 대한 오버헤드가 발생, 이에 대한 선택적인 해결책으로 KeepAlive 속성이 존재 * KeepAlive : 이 속성을 On이라면 지정된 시간동안 클라이언트에게 주기적으로 패킷을..
[Kafka] 카프카 기초 - 2 1.1. Consumer과 Partition 예시 1) 파티션 4개, 컨슈머 2개 위의 그림처럼 적절한 비율로 나눠서 Consume하게 됩니다. 예시 2) 파티션 4개, 컨슈머 1개 컨슈머가 하나밖에 없으므로 하나의 Consumer가 파티션을 순차적으로 Consume 하게 됩니다. 예시 3) 파티션 4개, 컨슈머 5개 파티션보다 Consumer 개수가 많으면 남은 Consumer는 일을 하지 못합니다. 즉, Consumer 개수는 파티션보다 많으면 안된다. 1.2. Consumer 장애 상황 장애 시 리밸런싱 발생 리밸런싱 : 컨슈머의 장애 혹은 session_timeout_ms가 지나면 할당된 컨슈머 재조정 1.3. Consumer Group 컨슈머는 그룹을 지정해서 사용할 수 있다 컨슈머 그룹 단위로..
[Kafka] 카프카 기초 - 1 참조 블로그 : server-engineer.tistory.com/681 이 글은 위의 참고 영상과 그 밑의 정리해놓은 다른 블로그를 참조하며 정리한 글입니다. 제 글보다는 위의 글이 더 깔끔하다고 생각합니다... ㅎㅎ 0. 시작하며 이 글을 시작으로 꾸준히 업로드 될 카프카 시리즈 게시물은 제가 직접 카프카를 사용해 보면서 이정도만 알면 흐름정도는 알고 사용할 수 있겠구나 하는 정도로만 설명을 하고 정리를 할 예정입니다. 게시물을 끊어가는 기준은 부족한 제가 공부할 때 이해한 큰 단위 기준으로 나누게 되었습니다. 가볍게 짧은 시간에 보실 예정이라면 추천드리지만 깊게 알고싶으신 분들은 추가 검색을 권장드립니다. :) 1. Kafka 용어 정리 Broker : 카프카 서버의 단위 Topic : 사용자가 데..
[Flutter] naver_map_plugin 사용기 Flutter를 사용한 토이 프로젝트를 진행중 네이버 지도를 사용해보고 싶었는데 마침 플러그인이 있어서 소개겸 사용한 방법을 포스팅합니다. 플러그인 pub.dev : pub.dev/packages/naver_map_plugin 1. 사용방법 1. 네이버 클라우드 플랫폼에 가입하고 앱 등록 클라우드 플랫폼 : www.ncloud.com NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 가입 후 Console 메뉴로 들어갑니다. 콘솔 메뉴에서 application을 등록합니다. 어플리케..
TDD와 BDD 이프 카카오에서 Session 중 TDD, BDD 관련된 세션의 내용 중 TDD, BDD 내용을 정리했습니다. TDD 와 BDD TDD란 (Test-Driven Development) 테스트 주도로 개발을 진행하는 개발 방식 테스트를 작성하고 테스트를 하고 실패한 코드들을 수정한 후 다시 테스트하는것을 반복하여 진행합니다. TDD의 장점 Testable한 코드를 유지할 수 있다 Testable한 코드 : 테스트하기 쉽게 만들어진 코드, 테스트를 쉽게 하기 위해서는 테스트를 할 모듈의 역할이 명확해야하는데 이를 위해서는 모듈의 역할을 단순화해야합니다. Testable한 코드는 모듈의 크기를 줄일 수 있도록 유도하고 모듈또는 계층간 Coupling도 적게 만들어 유지보수와 확장이 가능하게 합니다. TDD의 ..
[Flutter] SafeArea SafeArea는 위의 그림과 같이 StatusBar 혹은 TabView에서 TabLayout 영역을 피해서 위젯을 표시하고 싶을 때 사용합니다. 각 영역에 padding을 넣는 방식으로 작동하는데 좌우상하 부분 옵션으로 넣을 수 있습니다. 각 기기에서 앱 레이아웃을 제작할 때 기기마다 다르게 표시되는 경우에도 SafeArea로 감싸서 제작하면 해결되는 경우가 많습니다. SafeArea({ Key key, this.left = true, this.top = true, this.right = true, this.bottom = true, this.minimum = EdgeInsets.zero, this.maintainBottomViewPadding = false, @required this.child, }..
[Flutter] http 이용해서 이미지 파일 post로 보내기 개발 환경 - Flutter - Spring boot - kotlin 방법 1. Dependency 추가 //pubspec.yaml dependencies : http: ^0.12.1 //버전은 아무거나 2. 이미지 저장 코드 //밑에 코드를 참고하셔서 더 좋은 코드를 짜서 사용해주세요 //imageFileList에 보내고 싶은 이미지 파일들을 넣어주세요 List imageFileList = List(); var request = new http.MultipartRequest("POST", Uri.parse(imageApiUrl)); request.fields['parameter'] = '보내고 싶은 파라미터'; request.fields['parameter2'] = '보내고 싶은 파라미터2'; for ..
[Kafka] Kafka 옵션 정리 필수 옵션 옵션 설명 broker.id 브로커 ID, 클러스터 내에 유일한 값이어야 함 zookeeper.connect 주키퍼 접속정보 listeners 리스너 목록 (프로토콜://호스트명:포트) 토픽 옵션 옵션 설명 기본값 추천값 auto.create.topics.enable 토픽 자동 생성여부 true false delete.topic.enable 토픽 삭제 가능 여부 true true num.partitions 토픽당 기본 파티션 수 1 1 성능 옵션 옵션 설명 기본값 추천값 background.threads 백그라운드 처리에 사용할 스레드 수 10 compression.type 압축 유형('gzip', 'snappy', 'lz4', 'zstd') producer (producer가 설정한 압축 코..
Spring Retry에 대해서 Spring Retry 1. 재시도 하는 방법 웹 개발 시에 어떠한 특정 로직을 재시도 해야하는 일이 있었습니다. 그래서 찾아본 방법은 Spring Retry 활용 Apache HttpClient의 Retry 기능 활용 로직 실패 시에 재실행 하도록 코딩 이 정도가 있었습니다. 하지만 그래도 Spring을 활용하는 방식이 가장 좋은 것 같아 사용해보고 정리한 글입니다. 2. 사용 방법 1. 의존성 추가 저는 maven을 사용했으므로 maven 기준에서 적겠습니다. retry와 aspects 2개가 필요합니다. org.springframework.retry spring-retry 1.2.5.RELEASE org.springframework spring-aspects 5.2.8.RELEASE 2. Retry..