Skip to content

Conversation

@JIWONKIMS
Copy link
Collaborator

작업 내용

1. RabbitMQ 인프라 구성

  • 로컬 개발 환경: docker-compose.yml 추가
    • RabbitMQ 3-management 이미지 사용
    • STOMP 플러그인 활성화 (WebSocket 지원)
    • Management UI 포트: 15672
  • EC2 운영 환경: Terraform 설정 추가
    • infra/rabbitmq-docker-compose.yml 템플릿 생성
    • main.tf에 RabbitMQ 컨테이너 배포 로직 추가
    • docker-compose 설치 순서 최적화 (Docker → docker-compose → 컨테이너)

2. 개발 환경 설정 개선

  • application.yml: dev 프로파일에서 RabbitMQ 자동 구성 제외
    • RabbitAutoConfiguration 비활성화
    • 로컬 개발 시 RabbitMQ 없이도 서버 실행 가능
    • Health Check UP 상태 유지
  • 더미 데이터: DevConfig에 가이드 2명 자동 생성
    • 서울 가이드, 부산 사하구 가이드
    • 중복 방지 로직 포함

3. 문서화

  • CLAUDE.md: 프로젝트 문서 대폭 업데이트
    • RabbitMQ 통합 가이드 추가
    • Profile-based 설정 전략 설명
    • 인프라 & 배포 섹션 추가
    • WebSocket & 실시간 메시징 아키텍처 문서화
    • 트러블슈팅 섹션 확장

기술적 변경사항

아키텍처

개발 환경 (dev):
- SimpleBroker (in-memory)
- RabbitMQ 불필요
- H2 데이터베이스

운영 환경 (prod):
- RabbitMQ STOMP Relay
- RabbitMQ 필수
- PostgreSQL 데이터베이스

주요 파일

  • docker-compose.yml: 로컬 RabbitMQ 환경
  • infra/main.tf: EC2 인프라 자동화
  • infra/rabbitmq-docker-compose.yml: EC2용 템플릿
  • application.yml: dev 환경 RabbitMQ 제외 설정
  • CLAUDE.md: 프로젝트 문서

테스트 방법

로컬 개발

# RabbitMQ 없이 서버 실행
./gradlew bootRun

# Health Check
curl http://localhost:8080/actuator/health
# 결과: {"status":"UP"}

RabbitMQ 테스트

# RabbitMQ 시작
docker network create common
docker-compose up -d

# 서버 실행 (prod 프로파일)
./gradlew bootRun --args='--spring.profiles.active=prod'

주의사항

  1. EC2 배포 전 수동 설정 필요

    • EC2에서 docker network create common 실행
    • RabbitMQ 컨테이너 시작 확인
  2. 환경변수 추가

    • GitHub Secrets에 RabbitMQ 환경변수 추가 필요
    • RABBITMQ_HOST, RABBITMQ_PORT, RABBITMQ_USERNAME, RABBITMQ_PASSWORD, RABBITMQ_STOMP_PORT
  3. .gitignore 변경

    • docker-compose.yml 추적하도록 변경 (팀 공유)

관련 이슈

Closes #141

🤖 Generated with Claude Code

JIWONKIMS and others added 3 commits October 14, 2025 17:15
- Add docker-compose installation in Terraform user_data
- Create infra/rabbitmq-docker-compose.yml as deployment template
- Update main.tf to use docker-compose instead of docker run
- Update local docker-compose.yml with proper network configuration
- RabbitMQ container name: rabbitmq_1 for consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Moved docker-compose installation block right after Docker installation
- Better script organization: Docker → docker-compose → containers
- Removed duplicate installation code
- Add comprehensive RabbitMQ integration documentation
- Add profile-based configuration strategy explanation
- Add infrastructure & deployment section
- Fix: Exclude RabbitMQ autoconfiguration in dev profile to prevent health check DOWN
Copy link
Collaborator

@YangHJ2415 YangHJ2415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다.

@JIWONKIMS JIWONKIMS merged commit a93eab8 into main Oct 14, 2025
1 check passed
@JIWONKIMS JIWONKIMS deleted the bug/be/141 branch October 14, 2025 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

직렬화 에러 변경, dev 모드 더미데이터 추가

3 participants