Skip to content

Chore/31 backend fix snapshot: 프론트엔드 연동 오류 해결을 위한 백엔드 수정#40

Merged
meraki6512 merged 10 commits into
IssueDiver:devfrom
meraki6512:chore/31-backend-fix-snapshot
Aug 29, 2025
Merged

Chore/31 backend fix snapshot: 프론트엔드 연동 오류 해결을 위한 백엔드 수정#40
meraki6512 merged 10 commits into
IssueDiver:devfrom
meraki6512:chore/31-backend-fix-snapshot

Conversation

@meraki6512
Copy link
Copy Markdown
Contributor

연관된 이슈

#31 (, #32)


작업 내용

프론트엔드와의 연동 과정에서 발생한 백엔드의 빌드, 실행, 데이터베이스 관련 문제들을 해결하여 개발 환경을 전반적으로 안정화했습니다.

무엇을 왜 수정했는지:

  1. JPA 엔티티 및 DB 스키마 수정 (V1__init.sql, V2__insert_initial_data.sql, *.java Entities)
  • What: 프론트엔드 연동 테스트 중 발견된 JPA 엔티티와 실제 DB 테이블 간의 불일치를 수정했습니다. (e.g., 테이블명 단수/복수 불일치, created_at 컬럼 누락 등). 또한, 원활한 테스트를 위해 초기 데이터를 생성하는 V2__insert_initial_data.sql 스크립트를 추가했습니다.
  • Why: 실제 API 호출 시 Unknown column, Table not found 등 JPA 관련 런타임 에러가 발생하는 근본적인 원인이었습니다. 엔티티와 스키마를 동기화하여 데이터베이스 계층의 안정성을 확보하고, API가 정상적으로 동작하도록 수정했습니다.
  1. Docker 빌드 환경 수정 (Dockerfile, docker-compose.yml, ci-docker.yml)
  • What: Docker 이미지 빌드 시점에 --build-arg를 통해 외부에서 DB 접속 정보를 안전하게 주입하도록 수정했습니다.
  • Why: gradle.properties가 Git에 포함되지 않아 Docker의 격리된 빌드 환경에서 발생하던 Could not get unknown property 'dbUrl' 오류를 해결하기 위함입니다. 이로써 로컬(docker-compose)과 CI(GitHub Actions) 환경 모두에서 일관성 있는 빌드가 가능해졌습니다.
  1. Gradle 빌드 시스템 개선 (build.gradle, settings.gradle, gradle.properties)
  • What: Flyway Gradle 플러그인 관련 의존성 문제를 해결하고, flywayClean 등 Gradle Task가 정상적으로 동작하도록 수정했습니다.
  • Why: 로컬 및 CI 환경에서 발생하는 반복적인 빌드 실패를 막고, 테스트 DB를 쉽게 초기화할 수 있도록 하여 개발 생산성을 높이기 위함입니다. 또한, gradle.properties를 .gitignore에 추가하여 민감한 DB 접속 정보를 Git에서 분리했습니다.
  1. 보안 설정 임시 변경 (SecurityConfig.java)
  • What: 개발 편의를 위해 모든 API 요청을 임시로 허용(permitAll())하도록 수정했습니다.
  • Why: 인증/인가 기능 개발 전, 다른 API들의 연동 테스트를 원활하게 진행하기 위함입니다. (추후 별도 이슈로 원복 예정)

PR 유형

어떤 변경 사항이 있나요?

  • 새로운 기능 추가
  • 버그 수정
  • CSS 등 사용자 UI 디자인 변경
  • 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
  • 코드 리팩토링
  • 주석 추가 및 수정
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제

리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

새로운 빌드 및 실행 과정이 문제없이 동작하는지 확인해주시면 감사하겠습니다.


PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • 커밋 메시지 컨벤션에 맞게 작성했습니다.
  • 변경 사항에 대한 테스트를 했습니다.(버그 수정/기능에 대한 테스트).
  • main branch가 아닌 dev branch에 PR 요청을 했습니다. (main branch에 바로 PR&merge하지 않기).

프론트엔드 연동 과정에서 발생한 빌드 및 런타임 오류를 해결하고, 전반적인 개발 환경을 안정화했습니다.

- **빌드 시스템 수정 (build.gradle, settings.gradle, gradle.properties):**
- Flyway 플러그인 관련 의존성 문제를 해결하여 로컬 및 CI 환경에서 빌드가 정상적으로 동작하도록 수정.
- `gradle.properties`를 도입하여 민감한 DB 정보를 Git 추적에서 제외.
- **Docker 환경 수정 (Dockerfile, docker-compose.yml, ci-docker.yml):**
- Docker 빌드 시점에 환경 변수를 안전하게 전달하도록 수정하여 빌드 안정성 확보.
- **DB 스키마 수정 (V1__init.sql, V2__insert_initial_data.sql):**
- JPA 엔티티와 DB 테이블 간의 스키마 불일치(테이블명, 컬럼명) 문제 해결.
- 초기 데이터(seed data)를 추가하여 API 테스트가 즉시 가능하도록 개선.
… 접속 오류 해결

- ci-docker.yml: `docker run` 명령어에 환경 변수를 명확하게 전달하도록 수정
- GitHub Actions 워크플로우에 `services` 블록을 추가하여, CI 작업 실행 시 MySQL 컨테이너가 함께 실행되도록 수정했습니다.
- 테스트를 실행하는 애플리케이션 컨테이너가 `localhost`를 통해 서비스 DB에 접속할 수 있도록 `SPRING_DATASOURCE_URL`을 수정하고 `--network host` 옵션을 추가했습니다.

- -> 위 변경사항을 통해 CI 환경에 데이터베이스가 존재하지 않아 애플리케이션이 시작되지 못하고 테스트가 실패하던 문제를 해결합니다.
@meraki6512 meraki6512 merged commit 57d728f into IssueDiver:dev Aug 29, 2025
@meraki6512 meraki6512 deleted the chore/31-backend-fix-snapshot branch August 29, 2025 06:55
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.

1 participant