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

[검토요청] application 설정 세분화 #35

Open
kmg8280 opened this issue May 14, 2022 · 5 comments
Open

[검토요청] application 설정 세분화 #35

kmg8280 opened this issue May 14, 2022 · 5 comments

Comments

@kmg8280
Copy link

kmg8280 commented May 14, 2022

현재 프로젝트에서 사용하는 설정들(DB, logging)이 application.yml 파일 하나에서 관리되고 있습니다.
한 파일에서 모든 설정을 관리하게 되면 추후에 설정관련 내용들이 많아졌을 때 관리하기 어려워지는 점이 생기게 됩니다.

설정 내용들을 분리하는 것에 대해 검토 부탁드립니다.
참고 링크

추가로 실제 현업에서는 local, dev, production으로 구분해서 설정하는 경우가 많은데 캡스톤디자인에서도 local, dev 정도의 분기는 고려해볼 법 한 것 같습니다. 급한 건 아니지만 추후에 배포 용이성을 생각해서라도 한번 검토 부탁드립니다.

검색하실 때 spring profiles active, include 등의 키워드로 검색하시면 될 것 같아요. 궁금하신 점이 있으면 PR 때 멘션 주시거나 질문 주세요.
참고 링크

@park0503
Copy link
Member

넵!! 좋은정보 감사합니다! 현재 중간데모 발표직전이라 발표준비 끝나고 대규모 리팩토링을 한번 진행할 예정인데, 그 때 보내주신 링크들 정독하고 저희끼리 합의 하에 설정파일 세분화를 진행하도록 하겠습니다!

@ErranderLee
Copy link
Contributor

조언 감사합니다 멘토님!!! 빠른 시일 내에 학습하고 적용해보겠습니다!!

@Sophoca
Copy link
Member

Sophoca commented May 16, 2022

좋은 내용 감사합니다. 현재 aws 서비스나 oauth 인증에서 필요한 key 값은 properties를 분리하여 작업 중입니다. 추후 리팩토링을 진행할 때, 설정 profile을 분리하는 작업을 진행하도록 하겠습니다.

이와 별개로 github build test 과정에서 질문이 있습니다. (@kmg8280)
#34 PR에서 aws S3 서비스를 사용하기 위해 application-aws.properties에 aws key 값을 추가하였으나 해당 profile은 .gitignore 설정을 해둔 상태입니다. 이 때문에 로컬 환경에서는 test가 문제없이 진행되지만 PR 시 진행되는 test에서는 설정 값을 읽어오지 못해 통과하지 못하는 모습을 보이고 있습니다.

초기엔 @value를 통해 값을 읽어오지 못하는 문제라고 생각되어 모든 test에 application-aws.properties에서 선언한 변수 내용을 삽입하였으나 여전히 amazonS3 bean을 생성하지 못하는 것으로 보아 유효한 key를 입력해야만 하는게 아닐까 추측 중입니다. S3 Mock을 생성하는 방법에 대해서도 검색을 해보았으나 docker를 사용해 직접 s3 service의 동작 test를 위한 내용만 찾아볼 수 있었습니다.

Github setting에서 직접 실제 사용되는 aws s3 key를 환경변수로 입력하여 주입하는 방법이 최선일까요?
늦은 시간 긴 질문 드려 죄송합니다.

@kmg8280
Copy link
Author

kmg8280 commented May 16, 2022

@Sophoca
application 관련 파일들을 .gitignore에 넣어두신 걸 저도 확인했습니다.
보통은 프라이빗 레포로 진행하다보니 application을 따로 gitignore에 추가하지는 않습니다.

보안때문에 굳이 gitignore에 추가해서 작업하신다고 하면 제가 생각나는 제일 간단한 방법은 말씀주신 Github Setting에 환경변수를 입력하는 방법인 것 같습니다.

추가로 의견 드리자면
큰 회사들은 별도로 암호화하는 플랫폼이 있을텐데 팀프로젝트에서 사용한다고 한다면 1password를 사용하는 방법정도가 생각나는 것 같네요. 1password를 사용하는 회사들도 생각보다 많은 걸로 알고 있어서 한번쯤 사용해봐도 좋을 것 같네요.

관련 링크 첨부 드릴게요.
https://github.com/marketplace/actions/1password-github-actions

github action과 1password 관련 키워드로 검색하시면 추가적인 정보를 얻으실 수 있을 것 같네요.

@Sophoca
Copy link
Member

Sophoca commented May 17, 2022

답변 감사합니다. 우선 github setting에 환경변수를 입력하는 방법을 적용해보겠습니다!

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

No branches or pull requests

4 participants