main: 배포/릴리즈 기준 브랜치develop: 통합 개발 브랜치feature/{ticket}-{short-desc}: 기능 개발fix/{ticket}-{short-desc}: 버그 수정chore/{short-desc}: 설정/문서/리팩터링
- 형식:
type: summary - 예시:
feat: 회원 가입 기능 구현
Types:
feat: 기능 추가fix: 버그 수정docs: 문서 변경refactor: 리팩터링test: 테스트 추가/수정chore: 설정/빌드/기타
application/ - 애플리케이션 진입점(API 계층)
domain/
domain-service/ - 영속성 접근 진입점
domain-rdb/ - RDB persistence 모듈
domain-redis/ - Redis persistence 모듈
clients/ - 외부 API 연동
support/ - 로깅/모니터링 등 횡단 관심사
common/ - 공통 유틸/상수/예외
프로젝트는 환경별로 다른 docker-compose 파일을 사용합니다:
- 로컬 개발:
docker-compose.yml- networks 없이 호스트 DB 사용 - CI/CD DEV:
docker-compose-dev.yml-backend-network사용 - CI/CD LIVE:
docker-compose-live.yml-backend-network사용
-
.env파일 생성 (프로젝트 루트에)# 데이터베이스 설정 (필수) SPRING_DATASOURCE_URL=jdbc:mysql://host.docker.internal:3306/ndgl_dev?serverTimezone=Asia/Seoul&useSSL=false&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME=your_username SPRING_DATASOURCE_PASSWORD=your_password # JWT 설정 (선택사항 - 기본값 사용 가능) JWT_SECRET=your-secret-key-change-this-in-production-minimum-256-bits JWT_EXPIRATION=86400000
-
애플리케이션 실행
docker compose build docker compose up --build
-
애플리케이션 중지
docker compose down
CI/CD 워크플로우에서 자동으로 환경에 맞는 docker-compose 파일을 사용합니다:
- DEV 환경:
develop브랜치 push 시docker-compose-dev.yml사용 - LIVE 환경:
main브랜치에서 수동 배포 시docker-compose-live.yml사용
각 환경은 backend-network 안의 도커 DB를 사용합니다.