전체 글(567)
-
완전수
#include int complete(int n) { int sum = 0; for (int j = 1; j 코드 해석 (순서대로)1. complete(int n) 함수입력된 정수 n이 완전수(perfect number)인지 확인하는 함수.완전수란 자기 자신을 제외한 약수의 합이 자기 자신과 같은 수를 의미함.로직:sum 변수를 0으로 초기화.1부터 n / 2까지 반복하며, n의 약수(j)를 찾음.약수를 찾으면 그 값을 sum에 누적.sum과 n이 같으면 1(참)을 반환, 그렇지 않으면 0(거짓)을 반환.2. main() 함수1부터 100까지 숫자 중에서 완전수를 찾아 합산.로직:변수 s를 0으로 초기화.i를 1부터 100까지 증가시키며 반복:complete(i)를 호출해 i가 완전수인지 확..
2024.11.28 -
Kafka 로컬 설치
WSL에 Homebrew 설치하기Homebrew 설치 스크립트 실행먼저, WSL에 Homebrew를 설치하려면 아래 명령어를 실행 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 설치 경로 확인설치가 완료되면, 설치 경로를 환경 변수에 추가해야 한다. 설치 스크립트에서 출력된 경로를 복사하거나, 일반적으로는 아래 경로에 설치된다.echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profileeval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" 환경 변수 갱신.p..
2024.11.28 -
Kafka Consumer
Kafka Consumer(카프카 컨슈머)는 Kafka Topic에 저장된 데이터를 읽어오는 역할을 하는 애플리케이션 또는 프로세스이다.1. Kafka Consumer의 역할Read/Subscribe:Kafka 컨슈머는 토픽(Topic)에 저장된 데이터를 읽어오는 행위를 수행한다.Kafka의 Publish-Subscribe 모델에서 Subscriber(구독자) 역할을 한다.데이터 소비:데이터가 Kafka에 기록(Publish)되면, 컨슈머는 이를 읽어 애플리케이션 또는 시스템으로 전달한다.데이터는 실시간 스트리밍이나 배치(batch) 처리에 활용된다.2. Kafka Consumer의 데이터 흐름Kafka 컨슈머는 다양한 데이터 소스와 대상 시스템을 연결하며, 아래의 흐름으로 동작한다.데이터 소스와 통합:..
2024.11.27 -
카프카 프로듀서
카프카 프로듀서 구조는 메시지를 생성하고 브로커로 전송하는 과정에서 여러 중요한 구성 요소들이 상호작용하는 방식이다. 카프카의 성능 최적화와 효율적인 메시지 전송을 위한 핵심이다. 1. 카프카 프로듀서 구조Record Accumulator (Buffer)Record Accumulator는 프로듀서에서 생성된 메시지들을 임시로 저장하는 버퍼 역할을 한다.여러 메시지가 배치(batch)로 묶여서 전송된다. 이는 네트워크와 I/O 성능을 최적화하는 데 중요한 역할을 한다.각 파티션별로 별도의 버퍼가 존재하여 메시지들이 묶여 전송된다.Sender ThreadSender Thread는 Record Accumulator에 저장된 메시지를 실제 카프카 브로커로 전송하는 역할을 한다.이 쓰레드는 주기적으로 배치된 메시..
2024.11.27 -
ISR (In Sync Replica)
ISR (In Sync Replica)는 카프카에서 메시지의 복제 상태를 추적하고, 메시지가 복제되고 있는 상태에서 리더 파티션(Leader Partition)과 팔로워 파티션(Follower Partition) 사이의 동기화를 관리하는 개념이다. ISR은 카프카의 데이터 가용성과 내구성을 보장하는 중요한 요소로, 리더 파티션에 메시지가 쓰여질 때 팔로워 파티션이 이를 정확하게 복제하는 과정을 추적한다.ISR의 동작 원리Leader와 Follower카프카의 파티션은 리더(Leader)와 하나 이상의 팔로워(Follower)로 구성된다.리더 파티션은 메시지를 받는 주체로, 클라이언트로부터 데이터를 수신하여 해당 데이터를 처리하고 다른 팔로워 파티션에 복제한다.팔로워 파티션은 리더의 데이터를 복제하는 역할을..
2024.11.27 -
카프카에서 세그먼트(Segment)와 레코드(Record)
카프카에서 세그먼트(Segment)와 레코드(Record)는 중요한 개념이다. 카프카에서 레코드는 메시지의 기본 단위이며, 이를 통해 데이터가 프로듀서에서 컨슈머로 전송된다. 레코드는 다양한 구성 요소를 포함하고 있으며, 이러한 구성 요소는 카프카에서 데이터가 어떻게 저장되고 처리되는지에 중요한 역할을 한다.레코드(Record)의 구성Key (선택적)Key는 레코드를 파티셔닝할 때 사용된다. 특정 레코드를 특정 파티션으로 보내기 위해 파티션 키를 설정할 수 있다., CustomerID나 OrderID와 같은 값을 Key로 사용하여 특정 레코드를 항상 동일한 파티션에 보내도록 할 수 있다.Key는 Optional로 설정할 수 있으며, Null 값일 수도 있다.ValueValue는 실제 데이터가 저장되는 부..
2024.11.27