스프링 부트 애플리케이션을 데이터베이스와 Vite 프론트엔드와 함께 도커화하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- Java/Spring Boot 백엔드 개발자, JavaScript/Vite 프론트엔드 개발자
- Docker Compose를 활용한 환경 구성에 관심 있는 중급 이상 개발자
- 데이터베이스 연동이 필요한 애플리케이션 개발자
핵심 요약
- 3개 서비스 구성: Spring Boot 백엔드, Vite 프론트엔드, Postgres 데이터베이스
- 개발용 Docker Compose 구성:
devops/compose.dev.yml
파일로 단일 DB 서비스 제공 - 필수 의존성:
Spring Data JPA
,PostgreSQL Driver
,Docker Compose Support
섹션별 세부 요약
1. 프로젝트 구조
- Monorepo 디렉토리:
- backend/
: Spring Boot 백엔드 코드
- frontend/
: Vite 프론트엔드 코드
- devops/
: Docker Compose 설정 파일 저장
- 기본 설정 파일:
root/compose.yml
은 삭제하고devops/compose.yml
사용
2. 의존성 구성
- Spring Boot 의존성:
- Spring Web
: REST API 생성
- Spring Data JPA
: Hibernate ORM 기반 DB 연동
- PostgreSQL Driver
: Java-Postgres 연결
- Spring Boot Actuator
: 프로덕션 모니터링 기능
- Docker Compose Support: DB 연결 설정 자동화
3. Docker Compose 설정
- 생산용 compose.yml:
- backend/
: Spring Boot 애플리케이션
- frontend/
: npm run build
실행 후 dist/
폴더 생성
- db/
: Postgres 이미지 사용 (image: postgres
)
- 개발용 compose.dev.yml:
- 단일 db/
서비스로 구성 (프론트엔드/백엔드 빌드 없음)
4. 실행 및 배포
- 환경 구분:
- devops/compose.yml
: 프로덕션 환경
- devops/compose.dev.yml
: 개발 환경
- GitHub 저장소: 전체 프로젝트 소스 코드 제공
결론
- Docker Compose 사용 권장:
docker-compose up
명령어로 팀원 간 환경 일관성 유지 - 개발/프로덕션 분리:
compose.dev.yml
을 사용해 개발 시 DB만 실행,compose.yml
로 전체 서비스 구성 - 의존성 명시:
Docker Compose Support
의존성을 포함하면 DB 연결 설정이 자동화됨