Skip to content

chore: 프로젝트 세팅 (#1)#2

Merged
hisonghy merged 1 commit intodevelopfrom
chore/1
Jun 16, 2025
Merged

chore: 프로젝트 세팅 (#1)#2
hisonghy merged 1 commit intodevelopfrom
chore/1

Conversation

@hisonghy
Copy link
Contributor

@hisonghy hisonghy commented Jun 15, 2025

📌 작업 내용 및 특이사항

✅ Github 설정

  • .github/ISSUE_TEMPLATE/ 디렉토리에 이슈 템플릿 추가했습니다.
    : feature.md, bug.md, chore.md, refactor.md, documentation.md
  • .github/ 디렉토리에 PULL_REQUEST_TEMPLATE.md PR 템플릿 추가했습니다.
  • .DS_Store(Mac Finder의 뷰 설정 등 UI 정보 파일)가 레포지토리에 포함되어 있어 .gitignore에 추가했습니다.

✅ 프로젝트 환경 설정

  • 당장 사용하지 않는 Flyway, AWS S3 SDK 관련 의존성과 설정을 제거하였습니다. 추후 필요 시 다시 설정하면 될 것 같습니다.
  • 환경별 프로파일 구성 및 설정했습니다.
    : test, local, dev, prod, datasource, redis, security
  • develop 브랜치에 PR 발생 시 트리거되는 develop_pull_request.yml 워크플로우를 구성하였습니다.
    -> ./gradlew check 명령으로 코드 품질 관리 검사와 테스트를 진행하도록 구성했습니다
    -> MySQL 관련 설정은 GitHub Secrets에 등록해두었습니다.

✅ 테스트 설정

  • ApplicationTests 클래스에 테스트 환경용 설정 적용했습니다.
@ActiveProfiles("test") // 테스트 시 자동으로 test profile 을 로드하겠다는 설정
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) // 테스트 시 스프링 부트의 내장 테스트 DB로 자동 대체되지 않도록 설정

-> DB 접근이 필요한 통합 테스트를 구성할 때, 추상 클래스를 정의해 상속받는 구조로 사용하면 좋을 것 같습니다.

💡 예시 코드:

@ActiveProfiles("test")
@AutoConfigureTestDatabase(
        replace = AutoConfigureTestDatabase.Replace.NONE)
public abstract class BaseIntegrationTest() {}

🌱 관련 이슈


🔍 참고사항(선택)

[ 트러블 슈팅 ]

⚠️ develop pull request workflow MySQL 접근 실패 해결
  1. 초기 방식
  • services 옵션을 이용해 MySQL, Redis 컨테이너를 워크플로우에서 백그라운드로 실행하도록 설정했습니다.
  1. 문제 발생 부분
  • 워크플로우 테스트 시 UnknownHostException: mysql 에러가 발생했습니다.
    : 워크플로우에서 설정한 mysql 이라는 호스트를 찾을 수 없다는 에러
  • services로 실행한 컨테이너는 워크플로우의 host 네트워크와 격리되어 접근이 불가했습니다.
스크린샷 2025-06-16 오후 4 45 50
  1. 해결 방법
  • docker run 명령어로 컨테이너를 직접 실행해 같은 네트워크에서 접근 가능하도록 변경했습니다.
    : MySQL, Redis 컨테이너 각각 실행, 워크플로우 내에서 각각 step 으로 실행
  • docker-compose-test.yml 파일을 구성하고 docker compose up 명령을 사용해도 되지만, 더 간결한 스크립트를 위해 docker run 을 선택했습니다.

📚 기타(선택)

[공유사항]

1. chmod +x ./gradlew
2. ./gradlew updateGitHooks
  • 레포에서 처음 코드를 pull 해오면 위의 과정을 수행해야합니다.
    -> .git/hooks/pre-commitscripts/pre-commit.sh 가 적용되서, 추후 git commit 명령 수행 시 스테이징된 파일들에 한해서 코드 포맷팅이 적용됩니다.

@hisonghy hisonghy requested a review from chaiminwoo0223 June 15, 2025 14:04
@hisonghy hisonghy self-assigned this Jun 15, 2025
@hisonghy hisonghy added the ⚙️chore 세팅 관련 label Jun 15, 2025
@hisonghy hisonghy force-pushed the chore/1 branch 6 times, most recently from fe5d68c to f89e797 Compare June 16, 2025 07:16
* chore: 이슈 템플릿 세팅 (bug, chore, documentation, feature, refactor)
* chore: PR 템플릿 세팅
* chore: .gitignore .DS_store 파일 등록
* chore: 주석 처리된 Flyway, AWS S3 dependency 및 관련 설정 제거 (추후 필요 시 다시 추가 예정)
* chore: 환경별 설정 세팅
* chore: develop pull request 워크플로우 구성
* chore: Test 클래스에 active profile, auto configure test database 설정 세팅
@chaiminwoo0223
Copy link
Contributor

@songhyeonpk 확인했습니다. 전체적으로 코드와 설정이 잘 짜여진 것 같습니다.

Copy link
Contributor

@chaiminwoo0223 chaiminwoo0223 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

지금 설정하신 프로젝트대로 진행하면 될 것 같습니다.

@hisonghy hisonghy merged commit f1921dc into develop Jun 16, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙️chore 세팅 관련

Projects

None yet

Development

Successfully merging this pull request may close these issues.

⚙️[CHORE]: 프로젝트 세팅

2 participants