일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드
- Spring
- 데이터베이스
- 그리디
- 엘라스틱서치
- database
- cleancode
- 개발
- Java
- 애자일프로그래밍
- 프레임워크
- 읽기쉬운코드
- 알고리즘
- 애자일기법
- 그리디알고리즘
- 코딩
- framework
- 클린코드
- 스프링
- Elasticsearch
- JPA
- 코딩테스트
- ES
- 자바
- 개발자
- spring boot
- mongoDB
- 백준
- API
- Baekjoon
- Today
- Total
목록기타 (31)
튼튼발자 개발 성장기🏋️
1. 대칭키 암호화대칭키 암호화는 같은 키로 암호화와 복호화를 수행하며, 빠르고 효율적이지만 키 관리가 어렵다.키 구조: 암호화와 복호화에 동일한 키를 사용한다.작동 원리: 데이터를 암호화할 때 사용한 키와 동일한 키로 데이터를 복호화한다. 즉, 데이터 송신자와 수신자가 동일한 키를 공유해야 한다.장점: 비교적 빠르고 효율적이다. 대용량 데이터를 암호화할 때 성능이 뛰어나므로 실시간 통신이나 대규모 데이터 전송에 자주 사용된다.단점: 키가 노출되면 제3자가 데이터를 쉽게 복호화할 수 있기 때문에 키를 안전하게 전달하고 관리하는 것이 어려울 수 있다.종류: AES, DES 등2. 공개키 암호화공개키 암호화는 서로 다른 키로 암호화와 복호화를 수행하며, 보안성이 높지만 처리 속도가 느리다. 주로 키 교환이나..
로드 밸런서는 네트워크 트래픽을 여러 서버에 효율적으로 분산하여 시스템의 성능과 가용성을 향상시킬 수 있다. 구체적으로, 로드 밸런서는 다음과 같은 주요 기능을 수행한다.트래픽 분산: 클라이언트로부터 들어오는 요청을 여러 서버에 고르게 분배하여 각 서버에 과부하가 걸리지 않도록 한다. 이를 통해 시스템 전체의 처리 능력을 향상시키고, 트래픽이 급증해도 안정적인 서비스를 제공할 수 있다.장애 조치: 서버 중 하나가 장애를 일으키면, 로드 밸런서는 자동으로 해당 서버로의 트래픽을 차단하고 다른 정상적인 서버로 트래픽을 전환하여 서비스가 지속적으로 운영되도록 할 수 있다.세션 유지: 일부 로드 밸런서는 특정 클라이언트의 요청을 동일한 서버로 보내도록 세션을 유지하는 기능을 제공한다. 클라이언트로부터 들어오는 ..

1. 토픽과 파티션1.1 적정 파티션 개수토픽은 카프카에서 데이터를 관리하는 기본 단위이며, 각 토픽은 여러 개의 파티션으로 구성된다. 파티션은 데이터의 분산을 가능하게 하며, 병렬 처리를 통해 성능을 최적화할 수 있다. 적정 파티션 개수를 결정하는 것은 매우 중요하다. 어떻게 설정하느냐에 따라서 성능을 좌우하기 때문이다. 적절한 파티션 개수는 다음 요소에 따라 결정된다.프로듀서/컨슈머 수: 높은 병렬 처리를 위해 파티션 수를 컨슈머 스레드(혹은 프로세스) 수와 비슷하게 맞추는 것이 이상적이다.데이터 처리량: 파티션 수가 많을수록 병목 현상이 줄어들며, 데이터 처리량이 증가한다.브로커 수: 파티션은 브로커에 분산되므로 브로커의 수에 따라 파티션 수를 조정해야 한다.ISR(In-Sync Replicas)와..
Apache Kafka MirrorMaker 2 (MM2)는 클러스터 간 데이터 복제 및 동기화를 위해 사용하는 도구다. 이는 주로 다중 데이터 센터 간의 데이터 복제, 지리적으로 분산된 클러스터 구성 및 고가용성 아키텍처 구현에 사용된다. MirrorMaker 2는 Kafka Connect 프레임워크 위에서 작동하며, 기존 MirrorMaker의 한계를 개선한 버전이다.미러메이커2를 활용한 단방향 토픽 복제단방향 토픽 복제는 데이터가 원본 클러스터에서 복제 클러스터로 한 방향으로만 전송되는 복제 방식이다. 이 방식은 주로 백업, 데이터 이관, 또는 특정 지역의 데이터 처리 요구를 충족시키기 위해 사용된다.구성 방법:원본 Kafka 클러스터와 복제할 Kafka 클러스터를 설정MirrorMaker 2의 s..

카프카 커넥트(Kafka Connect)는 Apache Kafka의 데이터 통합 프레임워크로, 다양한 데이터 소스와 싱크를 Kafka로 연결하여 실시간으로 데이터를 전송하고 처리할 수 있도록 도와준다. 카프카 커넥트는 소스 시스템(데이터베이스, 파일 시스템, 메시지 큐 등)으로부터 데이터를 Kafka 토픽으로 가져오거나, Kafka 토픽에서 데이터를 추출하여 타겟 시스템(데이터베이스, Elasticsearch, HDFS 등)으로 보낼 수 있다. 카프카 커넥트는 확장 가능하고 유연한 아키텍처를 가지고 있으며, 단일 노드부터 클러스터 환경까지 지원한다. 커넥터와 태스크(Connector and Task)카프카 커넥트에서 커넥터(Connector)는 데이터 통합 작업을 구성하는 기본 단위다. 각 커넥터는 특정..

1. 카프카 스트림즈란? 카프카 스트림즈(Kafka Streams)는 카프카에서 스트리밍 데이터를 실시간으로 처리하고 분석하기 위한 자바 라이브러리다. 기존의 데이터 처리 시스템과는 달리, 카프카 스트림즈는 데이터가 들어오는 즉시 이를 처리하고 결과를 다시 카프카 토픽에 기록할 수 있다. 카프카 스트림즈는 MSA 아키텍처에 적합하며, 높은 처리량과 확장성을 제공한다. 스트림즈 애플리케이션은 스레드를 1개 이상 생성할 수 있으며, 스레드는 1개 이상의 태스크(Task)를 갖는다.이 태스크의 수는 파티션의 수와 일치하도록 한다. 기본적으로 라이브환경에서는 안정적으로 운영할 수 있도록 2개 이상의 서버로 구성하여 스트림즈 애플리케이션을 운영한다.1.1 KStreamsKStreams는 카프카 스트림즈에서 가장 ..

카프카 클라이언트는 카프카 브로커와 상호 작용하기 위한 다양한 API를 제공한다. 클라이언트는 프로듀서, 컨슈머, 관리자 등 역할에 따라 세분화되어 있으며, 각 클라이언트는 특정 기능을 수행한다. 이번 포스트에서는 이들 클라이언트가 어떻게 동작하며, 어떤 기능을 제공하는지에 대한 내용을 작성한다.Producer APIProducer API는 데이터를 카프카 브로커에 보내는 역할을 한다. 데이터를 생성하여 특정 토픽에 메시지를 발행하는 역할을 하며, 다양한 설정 옵션을 통해 메시지 전송의 신뢰성, 성능, 순서를 조정할 수 있다.[그림 1]과 같이 프로듀서가 send()를 호출한다고해서 바로 전달되는 것이 아니다. 파티셔너로부터 어떤 토픽의 파티션으로 전달할지 정해진다. 현재는 기본 파티셔너는 Uniform..

카프카 브로커 · 클러스터 · 주키퍼Apache Kafka는 분산형 스트리밍 플랫폼으로, 대량의 데이터를 빠르고 신뢰성 있게 처리할 수 있는 기능을 제공한다. Kafka는 브로커, 클러스터 그리고 주키퍼로 구성된다. 데이터 저장, 전송데이터 저장: Kafka에서 데이터는 주로 토픽(topic)이라는 단위로 저장된다. 토픽은 데이터 스트림의 카테고리라고도 할 수 있다. 각 토픽은 파티션(partition)으로 나뉘며, 파티션은 순차적으로 레코드(record)를 저장한다. 이때 각 레코드는 고유한 오프셋(offset)을 가진다. 파티션을 이용하여 데이터 저장의 병렬 처리가 가능해진다. 보통 파티션 개수만큼 컨슈머를 생성하여 병렬처리한다.데이터 전송: Kafka 브로커는 프로듀서(producer)로부터 데이터..