사실 이미 블로그에 정리해 두었지만 사실 거의 도움받고 적용한지라 자세하게 뭘 적었는지 기억이 나지않아서 다시 정리해보았다.
❓ 왜 서브모듈을 사용하는가
스프링부트에서는 개인의 소중한 정보들을 모두 yml에 넣는다. 만약 RDS를 연결한 파일이 public인 레포지토리에 올라간다? 못된 외국인이 내 RDS를 무단으로 사용할 수도 있는 것이다...
그러므로 서브모듈을 적용해보자!
repository 생성하고 안에 application.yml 파일을 넣어준다.
$ git submodule add {submodule-repo주소.git} {넣을 폴더명}
# 폴더명 따로 지정안하면 그냥 레포지토리 이름으로 폴더가 생성된다.
$ git submodule add https://blah.submodule.git Config
⭕ 짠 Config 폴더에 application.yml 가져오기 성공
자동으로 .gitmodules 생성된 것도 확인 완료👌
push하면 내 원격 저장소에도 적용된 거 확인 완료👌
참고로 다른 팀원들도 사용하려면 아래 명령어를 입력해줘야한다.
$ git submodule init
다른 팀원이 application.yml을 바꿨을 때, 해당 파일의 내용을 가져와야한다.
# 원격 저장소에 있는 submodule 내용 가져오기
$ git submodule update --remote
가져오고 나니 Config 속 yml파일과 실행될 yml 파일의 내용이 다르다. 이러면 submodule껄 가져오는게 맞는데 일일히 복사 붙여넣기하는 건 귀찮다.
build.gradle에 아래와 같은 코드를 추가하면 실행될 때마다 자동으로 Config의 yml 파일을 내 yml 파일로 복사해준다. (편리)
오랜만에 하니까 재밌다.