Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] chore: profile에 따라 다른 H2 의존성 옵션 추가 #1047

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

nayonsoso
Copy link
Contributor


🚀 어떤 기능을 구현했나요 ?

  • 로컬에서 실행되지 않는 문제를 해결했습니다.

🔥 어떻게 해결했나요 ?

  • 두가지 중에서 고민했습니다. 이건 이슈에 적어뒀어요.
  • 첫번째 방법은 개발자 개인의 세팅이 필요해서 좋지 못하다 생각했어요. 두번째 방법으로 구현했습니다.
  • 디스코드에서 이야기하는 것보다 PR에서 rc/approve 하면 좋겠다 생각해서 PR로 바로 만들었습니다.

Copy link

github-actions bot commented Jan 11, 2025

Test Results

165 tests   162 ✅  4s ⏱️
 60 suites    3 💤
 60 files      0 ❌

Results for commit 8eee61d.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@skylar1220 skylar1220 left a comment

Choose a reason for hiding this comment

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

로컬 환경 자체를 h2로 바꾸는 것은, 이전에 발생했던 h2와 sql의 문법 차이로 테스트 코드는 통과되지만, 어플리케이션에서는 오류가 발생하는 상황이 걱정되어요. #757

따라서 저는 로컬에서 mysql을 쓰도록 application.yml을 변경하는 것이 낫다고 생각해요!
팀원들이 해야하는 일은 초기에 username, password를 yml을 보고 잘 입력하면 되는 거라(db도 알아서 만들어줌) 크게 귀찮지 않다고 생각해서요~

@nayonsoso
Copy link
Contributor Author

@skylar1220 로컬은 원래 h2로 돌았어요.!😳 그런데 이번에 mysql로 바꾸자는 말씀이신가요?

@skylar1220
Copy link
Contributor

skylar1220 commented Jan 12, 2025

테스트 환경으로 헷갈렸었네요😅
로컬 환경에서는 지금처럼 h2를 사용하는 게 낫다고 느껴요. 개발자마다 설정을 해줘야하는 점도 있고 기존에 로컬을 h2로 쓰면서 불편한 점이 딱히 없었어서요~

ps. 별개로 이번 pr을 보면서 다시 떠오른, 로컬 테스트 환경을 개발 환경처럼 MySQL로 통일시켜보는 문제는 추후 얘기해보면 좋을 것 같아요!
(지금까지 로컬은 h2, 운영은 MySQL이었어도 오류가 없었던 건 jpql을 썼기때문이라 네이티브 쿼리 등이 추가되면 오류 못잡아낼 가능성 있음)

Comment on lines 28 to 29
def activeProfile = project.findProperty("profile") ?: 'local'

Copy link
Contributor

Choose a reason for hiding this comment

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

이거 H2 쓰는 곳에서 정의하면 좋지 않을까요?

Copy link
Contributor

@Kimprodp Kimprodp left a comment

Choose a reason for hiding this comment

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

[다시 질문]
project.findProperty("profile") 부분은 애플리케이션에서 못 가져오지 않나요?

맞다면, 워크플로우를 수정할 필요가 있지 않을까요 또는 다른 방법..

@nayonsoso
Copy link
Contributor Author

nayonsoso commented Jan 15, 2025

🚧 작성 중.. 🚧

project.findProperty("profile") 부분은 애플리케이션에서 못 가져오지 않나요?

와우 예리 테드👍👍👍👍
CD 파일들을 자세히 보니까 우리가 ./gradlew build -Pprofile=dev 처럼 spring profile로 지정하는 방식이 아니라,
profile는 그저 변수이고, 이에 해당하는 application.yml 을 마운트하면서만 사용하고 있었네요.

# docker-compose.yml
volumes:
  - ./application-${SPRING_PROFILE}.yml:/application.yml

그리고 application-dev.yml 에서 아래와 같이 yml 로 활성화하고 있으니
gradle 에서는 못 읽어오는게 맞네요.

spring:
  profiles:
    active: dev

따라서 def activeProfile = project.findProperty("profile") ?: 'local'은 local이 되어버릴것이고요.. 😱


profile이 local 일 때만 H2 의존성이 활성화되도록 변경하겠습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] 로컬에서 어플리케이션이 동작하게 한다.
4 participants