배포 시 .gitignore에 등록한 yml 파일에 관하여

Hi·2023년 12월 24일
0

전시로그

목록 보기
1/4

.yml

스프링 부트로 프로젝트를 할 때 .yml 파일로 프로젝트에 대한 설정을 한다.
그 안에는 외부로 노출되면 안되는 정보들이 존재할 수 있다.
대표적으로 DB의 엔드포인트부터 해서.. 각종 계정과 관련된 정보들이 .yml 파일에 담긴다

application-h2.yml

위와 같이 이런저런 설정이 담긴다.
위 이미지의 경우는 로컬 db라 노출되어도 크게 상관은 없지만 배포하게 되면 이러한 정보들이 외부에 노출되어선 안된다.

그렇기에 우리는 이러한 설정들을 github에 올라가지 않도록 해야 한다.
이를 위해 .gitignore에 해당 파일들을 넣어줄건데...

이 외에도 여러가지 들어갈 내용들이 많지만, 우선 db에 관한 내용들로만 살펴보겠다.




.gitignore

깃허브에 올리지 않을 파일들을 .gitignore에 등록하면, 커밋 후 푸시를 해도 깃허브에 올라가지 않는다.

위 이미지처럼 작성하면, 해당 경로에 있는 파일들이 깃허브에는 올라가지 않게 되는 것이다 !
여기선 rds, h2, s3, auth의 설정을 담은 yml 파일을 외부로 노출시키지 않고자 위와 같이 작성하였다.

문제는 .gitignore에 넣으면 배포한 후에 .yml 파일을 배포 환경에 따로 작성해줘야 한다는 점이다.




배포 자동화와 .gitignore

배포를 딱 한 번만 한다면 배포 환경에 해당 yml 파일들을 만들어줄 수는 있다. (이것도 싫지만)

하지만 배포 자동화를 해놓은 경우에는.. 매번 새로 빌드되고..
그렇기에 손수 만들어주기 힘들다

따라서 자동으로 만들어지도록 할 필요가 있다.

이렇게 !




secrets

github actions와 code deploy를 사용하여 배포 자동화를 했다.

따라서 github workflows에서 처리를 해 줄 필요가 있다.

github repository에서 secrets라는 공간이 있다.
여기 비밀스럽게 저장할 수 있는데, 우리는 여기에 .yml 파일의 내용을 넣을 것이다.

알아본 바로는 secrets에서는 띄어쓰기를 인식하지 못한다고 한다.
그렇기에 저장하고자 하는 .yml 파일의 전문을 인코딩하여 담아버리고자 한다

인코딩

https://www.convertstring.com/ko/EncodeDecode/Base64Encode#google_vignette
위 사이트에서 .yml 파일을 인코딩한 뒤, secrets에 등록하자.




deploy.yml

배포 자동화를 하는 workflows 디렉토리의 파일이다.
앞에서 인코딩하여 저장하였기에, 작성할 때는 디코딩을 해주는 모습이다.




마무리

글이 굉장히 불친절하고 허접하다.
하지만 이 글은 배포도, 배포 자동화도 아닌 secrets와 인코딩 및 디코딩을 통한 파일 작성을 '인지'하는 것에 의미를 둔다.
각 프로젝트의 사정은 모두 다르기에 여러 가지 중 하나의 방법을 인지하는 것만으로도 좋을 것이라고 생각한다.

0개의 댓글

관련 채용 정보