본문 바로가기
관리자

분류 전체보기

(958)
Strategy 패턴 w/ Spring 다형성 1. Strategy 패턴 사용 배경 및 목적 Strategy 패턴은 코딩을 하다보면 자주 쓰이는 type별 if 분기구문을 정리하고 고도화하고 싶을 때 사용하기 좋다. 아래와 같은 코드를 예로 들 수 있다. 요청으로 들어오는 GrantType의 값에 따라 body 값이 형태가 조금씩 바뀌는 형태이다. 이런 경우 formatted 내부 메서드를 공통화하여 메서드로 만들 수 없으므로 if문으로 분기해놓은 것인데, 코드가 길고 유연성이 떨어진다.String body;String grantType = tokenPayload.getGrantType();if(Objects.equals(grantType, GrantTypeEnum.AUTHORIZATION_CODE.getValue())) { body = """ ..
[비공개] Weekly Report - 24/11/04~24/11/10, 1597일차 보호되어 있는 글입니다.
[카프카 핵심가이드] 6. 카프카 브로커 브로커는 중요한 부분이기도 하고, 동작원리가 꽤나 복잡한 편이라 confluent의 강의 내용으로 정리해둔다.* https://developer.confluent.io/courses/architecture/get-started/* https://docs.aws.amazon.com/msk/latest/developerguide/supported-kafka-versions.html#3.5.1 Inside the Apache Kafka Broker - 카프카는 데이터와 메타데이터를 각각 관리함.- 카프카 클러스터 내부 Control Plane과 Data Plane으로 나뉘어져있음.- Control Plane → 클러스터의 메타데이터를 관리함- Data Plane → 카프카에서 쓰고 읽는 실제 데이터를 처리- ..
[카프카 핵심가이드] 5. 카프카 어드민 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역제이펍 · 2023년 04월 14일 5. 프로그램 내에서 코드로 카프카 관리하기 5.1 AdminClient 개요5.1.1 비동기적이고 최종적 일관성을 가지는 APIAdminClient는 비동기 결과인 Future 객체를 `Result 객체`로 감싸서 작업이 끝날 때까지 대기하거나 작업 결과에 대해 일반적으로 뒤이어 쓰이는 작업을 수행하는 헬퍼 메서드를 가지고 있음최종적 일관성(eventual consistency)AdminClient API가 리턴하는 Future 객체의 완료 여부는 컨트롤러의 상태가 완전히 업데이트된 상태를 기준으로 한다. 즉 여러 브로커..
[카프카 핵심가이드] 3. 프로듀서 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역제이펍 · 2023년 04월 14일 1. 카프카 프로듀서1.1 카프카 프로듀서 개괄프로듀서가 브로커에 메세지 전송 과정키와 파티션은 선택사항키와 값을 직렬화 후 바이트 배열 변환.파티션을 지정하지 않은경우 파티셔너를 통해 파티션이 결정되고 레코드 배치에 추가.별도의 쓰레드가 카프카 브로커에게 전송브로커는 메세지 응답을 돌려준다 성공의 경우 RecordMetadata 정보를 리턴한다(토픽,파티션,레코드 오프셋). 에러인 경우 에러를 리턴한다.에러를 받은 경우 몇번 더 재전송을 시도할 수 있다. 아래는 프로듀서의 최소 기본값을 설정하여 추가해주는 코드 예시이다...
[카프카 핵심가이드]2. 설치 및 주요 옵션 1.카프카 설치 1.1 주키퍼 카프카 설치 ~~~yamlversion: '3'services: zookeeper-1: image: wurstmeister/zookeeper:3.4.6 ports: - "2181:2181" environment: ZOOKEEPER_ID: 1 ZOOKEEPER_SERVER_1: zookeeper-1:2888:3888 ZOOKEEPER_SERVER_2: zookeeper-2:2888:3888 ZOOKEEPER_SERVER_3: zookeeper-3:2888:3888 ZOOKEEPER_CLIENT_PORT: 2181 networks: - kafka-network zookeeper-2: i..
[카프카 핵심 가이드] 1. 카프카 시작하기 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리 그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역 제이펍 · 2023년 04월 14일 1. 카프카 시작하기 어떠한 데이터를 얻을 것인지 합의하고 데이터를 얻을 수 있다면 문제는 해결된다. -닐 디그래스 타이슨 1.1 발행/구독 메시지 전달 초기 발행/구독 시스템에 비해 카프카의 장점은 발행/구독 주체들끼리 직접 연결되지 않고 `중앙 집중화된 메시지 큐 시스템`을 여러 시스템들이 공유 받을 수 있다는 점 1.2 카프카 입문1.2.1 메시지와 배치 메시지 - 카프카 데이터의 기본 단위는 `메시지` == `레코드` - `키` 는 메시지를 저장할 파티션을 결정하기 위해 사용한다. 배치(batch) - 같은 토픽..
[비공개] Weekly Report - 24/10/28~24/11/03, 1590일차 보호되어 있는 글입니다.