1. Kafka(카프카)란?카프카는 대용량 데이터를 빠르게 처리할 수 있는 분산 스트리밍 플랫폼으로, 주로 로그 데이터, 이벤트 스트리밍, 실시간 데이터 파이프라인 구축 등에 사용된다. 기존 메시지 큐(RabbitMQ 등)과의 차이점은 단순한 메시지 브로커를 넘어 이벤트 스트리밍 플랫폼의 역할을 수행한다는 점이다. 카프카를 공부하면서, 동작 원리나 개념을 이해하는것도 중요하지만, 기본 용어를 모르면 전체적인 구조를 파악하기 힘들었다. 그래서 카프카를 공부하기 전에 기본적으로 알면 좋을 것 같은 용어들을 정리해 보았다. 1-1. Producer와 Consumer카프카의 기본 동작은 Producer(생산자)가 메시지를 생성하고, 카프카의 Topic(토픽)에 메시즈를 전송하면, Consumer(소비자)가 해..
전체 글
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.1. 함수의 재귀적 호출의 이해1-1. 재귀란?재귀는 어떤 함수가 자기 자신을 다시 호출하는 방식을 의미한다.쉽게 말해서, 어떤 문제를 해결 할 때, 작은 문제로 나누고, 그 작은 문제를 해결하는 방식이 동일하다면 재귀를 사용할 수 있다. 1-2. 재귀 함수의 기본 구조재귀 함수를 작성할 때, 두가지 중요한 요소가 있다.기본 조건무한히 자기 자신을 호출하면 안되니깐, 탈출 조건(종료 조건)이 필요하다.이 조건이 없으면 무한 루프에 빠져서 프로그램이 멈추지 않게 된다. 재귀 호출자기 자신을 호출하는 부분이 필요하다.이때, 문제의 크기를 점점 줄여서 기본 조건에 도달할 수 있도록 만들어야 한다. 1-3. 예제) 펙토리얼 함수팩토리얼은 자연수 n에 대해서 아래와 같이 정의할 수 있다.n != n x (n-1)..

티켓팅 서비스는 특정 시간에 대량의 트래픽이 몰리는 특성을 가지고 있어, 성능 테스트가 필수적이라 생각했다. locust는 어떤 동작(Task)으로 서버에 부하를 가할 것인지 python 코드로 커스텀하는 것이 가능하고 재사용성이 높다는 장점이 있기 때문에 채택하게 되었다. locust를 통해 기능 테스트와 부하 테스트를 동시에 진행하였으며, 각 요청들의 평균 응답시간과 초당 요청 횟수(RPS)를 쉽게 살펴볼 수 있었습니다. 대규모 트래픽 테스트의 현실적 한계대규모 트레픽이라 함은, 초당 1,000개의 HTTP요청이 들어오는 경우를 의미한다곤 하지만 현실적으로 테스트를 해보기에는 불가능하다 생각하여, 작게나마 테스트를 진행해보고 문제를 해결해보자 라는 생각으로 접근하였습니다. 그런데 최대 500명으로..
1. 기본 개념@property를 사용하면, 메서드가 속성처럼 작동한다. 즉 값을 읽거나 쓸 때, 추가적인 로직을 실행할 수 있다.이를 사용하면 메서드 호출을 속성처럼 사용할 수 있으며, 캡슐화를 유지하면서도 더 직관적인 코드를 작성할 수 있다. 1-1. 사용하는 이유캡슐화 - 클래스 내부의 변수는 숨기고, 외부에서 간접적으로 접근하도록 허용.데이터 유효성 검증 - 값을 설정하거나 가져올 때, 검증 로직 추가 가능.인터페이스 유지 - 메서드를 속성처럼 보이게하여 직관적으로 사용가능코드의 유지 보수성 - 나중에 속성 접근에 로직을 추가하여도 기존의 인터페이스를 깨지 않음. 1-2. 구성 요소Getter: 속성 값을 가지고 오는 메서드 (@property로 데코레이트)Setter: 속성 값을 설정하는 메서드..
1. 도커 이미지 빌드 및 실행 방법1-1. 도커 이미지 빌드 Docker Compose를 사용하여 이미지를 빌드한다.docker-compose build이 명령어는 Dockerfile을 기반으로 이미지를 빌드하며, docker-compose.yml과 docker-compose.override.yml 파일의 설정이 적용됩니다. 1-2. 컨테이너 실행실행docker-compose up이미지 빌드 후 컨테이너를 실행합니다.-d 옵션을 추가하면 컨테이너가 백그라운드에서 실행 됩니다.실행 확인docker-compose ps컨테이너 상태를 확인하기 위해 ps 명령어를 사용합니다.중지docker-compose down특정 서비스만 실행docker-compose up 특정 서비스만 실행하기 위해서 위 명령어를 사용..