Skip to content

[Feat] DB 관련 로컬 개발 환경 설정 #3

Description

@Gimini-3

📌 작업 내용

로컬 개발 환경에서 DB를 Docker Compose로 띄우고, Spring Boot local profile에서 해당 DB에 연결되도록 설정합니다.

이번 작업은 프로젝트 초기 개발 환경을 맞추기 위한 작업이며, 실제 문서 업로드/검색/권한 같은 도메인 기능은 포함하지 않습니다.
우선 DB 컨테이너 실행, 애플리케이션 DB 연결, Flyway 실행 여부만 확인할 수 있는 최소 구성으로 진행합니다.

✅ 할 일

  • Docker Compose에 로컬 DB 서비스 설정 추가
  • application-local.yml DB 연결 설정 정리
  • .env.example에 로컬 DB 환경변수 예시 추가
  • Flyway 동작 확인용 최소 migration 추가
  • 로컬 DB 실행 가이드 문서 작성
  • README에 로컬 실행 방법 추가
  • 실행 및 검증 결과 정리

🧩 작업 범위

이번 이슈에서는 DB 연결 확인을 위한 최소 설정만 다룹니다.

포함하지 않는 작업:

  • 문서 업로드 기능
  • 인덱싱 Worker 기능
  • 검색 기능
  • 권한 기능
  • MCP 기능
  • 1단계 MVP 도메인 테이블 생성

도메인 테이블은 이후 별도 이슈에서 순차적으로 추가합니다.

🗄️ DB 구성 기준

OpenSQL 공식 Docker 이미지나 공식 compose 예제를 확인할 수 있으면 해당 방식을 우선 사용합니다.

다만 공식 방식 확인이 어렵다면 임의의 OpenSQL 이미지를 사용하지 않고, 로컬 개발용으로 PostgreSQL fallback을 사용합니다.
이 경우 문서에 OpenSQL 대체 개발용 PostgreSQL fallback임을 명확히 남깁니다.

⚠️ 주의사항

  • 실제 .env 파일은 커밋하지 않습니다.
  • DB 비밀번호나 secret 값은 코드에 직접 작성하지 않습니다.
  • ddl-auto=create, ddl-auto=update는 사용하지 않습니다.
  • 기존 MinIO 설정이 있다면 건드리지 않습니다.
  • 이번 PR에서는 도메인 코드 수정 없이 DB 로컬 환경 설정에만 집중합니다.

✅ 완료 기준

  • .env.example을 복사해 .env를 만들 수 있다.
  • docker compose up -d로 DB 컨테이너가 실행된다.
  • docker compose ps에서 DB 상태를 확인할 수 있다.
  • Spring Boot를 local profile로 실행했을 때 DB 연결에 성공한다.
  • Flyway migration이 정상 실행된다.
  • app_health_checks 테이블이 생성된다.
  • docs/local-db.md 문서만 보고 팀원이 같은 환경을 띄울 수 있다.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions