Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 3.13 KB

DEVELOP.md

File metadata and controls

70 lines (56 loc) · 3.13 KB

개발 가이드 📋

해당 프로젝트는 스프링 부트 환경에서 Kafka를 활용해 비동기 프로그래밍을 구현한 애플리케이션입니다.
아래 개발 가이드에서는 프로젝트 설정, Docker Compose를 통한 환경 구축 방법, 테스트 방법을 안내합니다.

1. 프로젝트 설정 ⚙️


1.1 환경 변수 설정

backend/src/main/resources/application.yml

todo

report/src/main/resources/application.yml

spring:
  kafka:
    bootstrap-servers: ${SPRING_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
    consumer:
      group-id: my-group
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    producer:
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer

1.2 환경 변수 설명

  • bootstrap-servers: Kafka 서버 주소. Spring Boot에서 Kafka와 통신할 수 있도록 합니다.
  • consumer.group-id: 같은 Consumer 그룹에 속하는 모든 Consumer는 동일한 메시지를 수신하지 않도록 조정됩니다.
  • auto-offset-reset: 오프셋이 없을 때 메시지를 어디서부터 읽어올지 결정합니다. earliest, latest가 대표적인 옵션입니다.
  • producer.key-serializer / value-serializer: Producer가 메시지를 Kafka에 보낼 때 키와 값을 직렬화하는 방식입니다. 기본적으로 StringSerializer를 사용합니다.
  • consumer.key-deserializer / value-deserializer: Consumer가 Kafka에서 메시지를 수신할 때 키와 값을 역직렬화하는 방식입니다. 기본적으로 StringDeserializer를 사용합니다.

2. 개발 환경 세팅 🛠️


이 프로젝트는 docker-compose를 사용하여 필요한 개발 환경을 구성할 수 있습니다.
IntelliJ에서 docker-compose로 실행 환경을 구성하는 방법은 다음과 같습니다.

2.1 Docker Plugin 설치

File > Settings > Plugins에서 Docker 플러그인 설치

2.2 Docker 설정

File > Settings > Build, Execution, Deployment에서 설치한 Docker 추가

2.3 Run Configuration 추가

Run/Debug Configuration에서 Docker 환경 추가 후 Compose Files./docker-compose.yml 설정
Modify Option 클릭 후 Build > always 옵션 추가

3. 테스트 방법 ✅

todo

4. 명령어 📂

4-1. 카프카 Topic 목록 조회

/kafka-topics --bootstrap-server localhost:9092 --list

4-2. 특정 Topic record 조회

./kafka-console-consumer --bootstrap-server localhost:9092 --topic {토픽명} --from-beginning