Refactoring/Moonkey

[Git|졸업작품] spring boot로 작업한 뭉키를 다시 돌아보며 (6) - .gitignore을 통해 application 파일 숨기기

수짱수짱 2023. 3. 27. 03:21

6. gitignore을 통해 application.yml 파일에 노출되어 있는 database 계정 정보를 제외시켜야 한다.


 

개요

 

spring 프로젝트를 배포할 때 Application 파일이 깃허브와 같이 외부에 유출이 되면 aws 클라우드 서비스 계정과 같은 중요한 정보가 같이 유출되어 과다한 요금이 청구될 수 있다.

이와같은 불상사를 방지하기 위해 gitignore을 통해 Git 버전 관리에서 반드시 제외해야 한다.  

 

설정방법

 

 

.gitignore 파일에 깃허브에 올리고싶지 않은 파일명을 작성해준다.

작성자는 application 파일을 yml 형식으로 작성하고 있으므로 yml 확장자로 작성하였다.

이후 git에 commit & push를 진행해주면 된다.

 

 


* .gitignore를 수정하고 커밋 & 푸쉬를 해도 적용이 되지 않는 경우

 

이미 변경관리에 의해 관리되고 있는 파일이라면 이후에 gitignore에 추가되더라도 변경관리에서 계속 추적이 된다.

그래서 바뀐 gitignore 파일을 적용하기 위해 변경관리가 추적중인 캐시 파일을 삭제하고 새로 올려야 한다.

git rm -r --cached application.yml주소 # properties 확장자라면 .properties로

git add .

git commit -m "msg"

git push

 

 

git rm -r --cached .

 

위 명령어는 원격 저장소와 로컬 저장소의 staging area 에서 파일을 내리면서 실제 파일도 삭제한다.

--cached 옵션은 원격저장소(깃허브)에 잘못된 파일을 올렸을 때 주로 사용하는 옵션으로,

원격 저장소의 파일을 삭제하고 staging area에서 파일을 내리기 위해 사용하는 옵션이다.

 

 

그래서 위의 명렁어는 전체 프로젝트 파일을 변경할 때 사용하면 되므로

우리는 변경이 필요한 application.yml 파일에 대해서만 명령어를 수행하여 ( git rm -r --cached application 파일 위치 )

원격 저장소에서 내리고 변경 관리가 추적되지 않도록 gitignore 파일을 새롭게 반영하면 된다.

 

* 커밋하고 싶지 않은 파일은 스테이징 하지 않은 상태로 만들고 (unstaged) => git restore --staged 파일이름

 

commit 메시지를 작성해준 후 git push를 진행한다.

그럼 결과적으로 원격저장소에 노출되었던 application.yml 파일이 삭제되었고 .gitignore 파일이 업데이트 된 모습을 볼 수 있다.


Reference