Skip to content

DB 관련 로컬 개발 환경 설정 - #4

Merged
Gimini-3 merged 2 commits into
developfrom
feature/3
Jul 7, 2026
Merged

DB 관련 로컬 개발 환경 설정#4
Gimini-3 merged 2 commits into
developfrom
feature/3

Conversation

@Gimini-3

@Gimini-3 Gimini-3 commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

🔍️ 작업 내용

Closes #3

DB 관련 로컬 개발 환경 설정만 추가했습니다.

  • Docker Compose DB 서비스를 OpenSQL-PG 이미지 tmaxopensql/postgres:14.6 기반으로 정리
  • DB container name을 local-opensql, host port를 55432, volume을 opensql_data로 설정
  • OpenSQL-PG 초기화를 위한 로컬 개발용 docker/opensql/vars.yml 추가
  • local profile datasource를 DB_* 환경변수 기반으로 유지하고 OpenSQL-PG SSL host 연결을 위해 sslmode=require 적용
  • Flyway V1 동작 확인용 최소 migration 추가
  • .env.example, docs/local-db.md, README.md에 로컬 DB 실행 가이드 추가

변경 파일 목록

  • .env.example
  • docker-compose.yml
  • docker/opensql/vars.yml
  • src/main/resources/application-local.yml
  • src/main/resources/db/migration/V1__init_schema.sql
  • docs/local-db.md
  • README.md
  • src/main/resources/db/migration/V1__init.sql 삭제

로컬 DB 실행 방법

cp .env.example .env
docker pull tmaxopensql/postgres:14.6
docker compose up -d
docker compose ps

DB 기본 접속 정보:

  • Host: localhost
  • Port: 55432
  • Database: app
  • User: app
  • Password: local_password
  • Schema: public
  • JDBC URL: jdbc:postgresql://localhost:55432/app?currentSchema=public&sslmode=require

Spring Boot local profile 실행 방법

./gradlew bootRun --args='--spring.profiles.active=local'

Flyway 적용 결과

  • Migration 파일: src/main/resources/db/migration/V1__init_schema.sql
  • 생성 테이블: app_health_checks
  • 초기 데이터: local-db-ready
  • OpenSQL-PG 컨테이너에서 Flyway V1 적용 및 테이블 생성 확인 완료

확인 쿼리:

docker compose exec postgres /usr/pgsql-14/bin/psql -U app -d app -c "select * from app_health_checks;"

결과:

 id |      name      |         created_at
----+----------------+----------------------------
  1 | local-db-ready | 2026-07-07 17:49:08.238008

OpenSQL 공식 이미지 사용 여부

  • 사용했습니다.
  • 이미지: tmaxopensql/postgres:14.6
  • datasource URL은 PostgreSQL 호환 JDBC 형태인 jdbc:postgresql://...를 유지했습니다.

PostgreSQL fallback 사용 여부

  • 기본 경로로 사용하지 않았습니다.
  • 문서에는 OpenSQL-PG 이미지 실행이 불가능한 경우의 예비 옵션으로만 안내했습니다.

실행한 검증 명령어와 결과

docker pull tmaxopensql/postgres:14.6
  • 성공: docker.io/tmaxopensql/postgres:14.6 pull 완료
docker compose config
  • 성공: image tmaxopensql/postgres:14.6, container local-opensql, host port 55432, volume opensql_data, healthcheck 확인
docker compose up -d
  • 성공: local-opensql 컨테이너 시작
docker compose ps
  • 성공: local-opensql healthy 확인
./gradlew test
  • 성공: BUILD SUCCESSFUL
./gradlew bootRun --args='--spring.profiles.active=local'
  • 성공: 애플리케이션 local profile 정상 기동
  • Flyway 로그: Successfully validated 1 migration, schema public version 1
  • 확인 후 수동 종료

남은 TODO

  • 실제 운영/공유 OpenSQL 접속 정보가 확정되면 DB_* 환경변수 값만 교체

Summary by CodeRabbit

  • 새 기능
    • 로컬 개발용 데이터베이스 실행 및 설정 방법을 안내하는 문서가 추가되었습니다.
    • 로컬 환경에서 사용할 데이터베이스 접속 정보와 실행 절차가 정리되었습니다.
  • 버그 수정
    • 로컬 DB 설정이 환경변수 기반으로 정리되어 구성 오류를 줄였습니다.
    • 로컬 실행 시 데이터베이스 연결 안정성이 개선되었습니다.
  • 문서
    • Docker, 데이터베이스 준비, 실행 확인, 문제 해결 방법이 포함된 안내가 보강되었습니다.

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 569ae87e-057c-4e25-82ec-f08bea179d9c

📥 Commits

Reviewing files that changed from the base of the PR and between 0524510 and cd0eb1f.

📒 Files selected for processing (8)
  • .env.example
  • README.md
  • docker-compose.yml
  • docker/opensql/vars.yml
  • docs/local-db.md
  • src/main/resources/application-local.yml
  • src/main/resources/db/migration/V1__init.sql
  • src/main/resources/db/migration/V1__init_schema.sql

📝 Walkthrough

Walkthrough

로컬 개발 환경에서 OpenSQL-PG 기반 PostgreSQL을 Docker Compose로 실행하도록 구성이 변경되었습니다. .env.example, application-local.yml의 DB 연결 설정이 재구성되고, Flyway 초기 스키마(app_health_checks)가 추가되었으며, README와 docs/local-db.md 문서가 신규 작성되었습니다.

Changes

로컬 DB 개발 환경 설정

Layer / File(s) Summary
환경변수 예시 정의
.env.example
기존 LOCAL_DB_* 변수를 제거하고 DB_HOST/PORT/NAME/USER/PASSWORD/SCHEMA, SPRING_PROFILES_ACTIVE=local을 추가함.
Docker Compose 서비스/네트워크/볼륨 구성
docker-compose.yml, docker/opensql/vars.yml
postgres 서비스 이미지(tmaxopensql/postgres:14.6), 포트, 헬스체크, 볼륨(opensql_data)을 변경하고 docgrid-local 네트워크와 vars.yml 설정 파일을 추가함. minio도 동일 네트워크에 연결함.
애플리케이션 데이터소스 및 Flyway 초기 스키마
src/main/resources/application-local.yml, src/main/resources/db/migration/V1__init_schema.sql, src/main/resources/db/migration/V1__init.sql
datasource 설정을 DB_* 환경변수 조합과 sslmode/hikari 파라미터로 변경하고, app_health_checks 테이블 생성 및 초기 row 삽입 마이그레이션을 추가함.
README 및 로컬 DB 가이드 문서
README.md, docs/local-db.md
로컬 실행 절차와 DB 컨테이너 기동/헬스체크/Flyway 확인/오류 대응/fallback 절차를 문서화함.

Estimated code review effort: 2 (Simple) | ~12 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant DockerCompose
  participant PostgresContainer
  participant SpringBoot

  Developer->>DockerCompose: docker compose up -d (.env 기반)
  DockerCompose->>PostgresContainer: opensql/postgres:14.6 컨테이너 생성 및 vars.yml 적용
  PostgresContainer-->>DockerCompose: healthy 상태 보고
  Developer->>SpringBoot: gradlew bootRun (local profile)
  SpringBoot->>PostgresContainer: DB_HOST/PORT/USER/PASSWORD로 접속
  PostgresContainer-->>SpringBoot: 연결 성공
  SpringBoot->>PostgresContainer: Flyway 마이그레이션 실행 (app_health_checks 생성)
Loading

버그·성능·클린코드 관점 코멘트: 하드코딩된 자격증명이 환경변수로 옮겨진 점, sslmode=require와 hikari 풀 파라미터 추가는 운영 안정성 측면에서 긍정적입니다. 다만 vars.yml에 평문 비밀번호(pg_superuser_password)가 커밋되어 있는지 확인이 필요하며, 로컬 전용이라도 .gitignore 처리나 예시 값 표기가 권장됩니다. 도메인 로직 변경이 없어 회귀 위험은 낮습니다.

Poem — 🐇

토끼가 파던 땅속엔 DB가 콸콸,
LOCAL_DB는 가고 DB_HOST가 왔네,
볼륨 이름도 opensql로 바꿔 심고,
문서 한 장 남겨두어 팀원도 따라오게,
헬스체크 초록불에 귀 쫑긋 세우네 🥕

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/3

Comment @coderabbitai help to get the list of available commands.

@Gimini-3
Gimini-3 marked this pull request as ready for review July 7, 2026 09:37
@Gimini-3
Gimini-3 merged commit 9406dc3 into develop Jul 7, 2026
1 check was pending
Gimini-3 added a commit that referenced this pull request Jul 16, 2026
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.

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

1 participant