풀스택개발일지/백엔드

[Spirng] git submodule 가져와서 프로젝트 세팅하기

BEOTIZA♥ 2024. 5. 13. 18:39

우리 "제주랑"프로젝트에서는 기술적인 부분과 보안을 관리하는 Submodule 통해

파일들을 별도로 분리하여 관리함으로써, 프로젝트의 안정성과 보안을 향상시켰다.

 

서브모듈을 포함하는 branch를 checkout하게 되면 Submodule 폴더가 비어있게 되는데

Git에서 submodule을 사용할 때 필수적인 명령어를 실행시켜주어야 한다.

 

로컬에 있는 .git에게 어떠한 서브 모듈이 있는지 등록
git submodule init
  • 이 명령어는 .gitmodules 파일에 기록된 submodule의 설정을 현재 프로젝트의 .git/config 파일로 복사한다
  • 이 과정은 submodule을 초기화하는 것으로, submodule의 저장소 URL과 필요한 기본 설정을 Git이 인식할 수 있도록 준비한다.
  • 이 명령은 각 submodule을 최초로 사용하기 시작할 때 한 번만 실행하면 됩니다.
등록된 서브모듈로부터 자동 fetch
git submodule update
  • 이 명령어는 초기화된 submodule에 대해 실제로 데이터를 가져오고 (clone하고), 프로젝트에 등록된 특정 커밋을 체크아웃한다.
  • 즉, 이 명령을 실행하면 submodule의 내용이 프로젝트에 실제로 포함되며, 주로 개발을 시작할 때나 submodule의 변경사항을 프로젝트에 반영할 필요가 있을 때 사용한다.

이 두 명령을 순서대로 실행함으로써, 프로젝트에 포함된 모든 submodule을 적절히 초기화하고 업데이트할 수 있다.

이 과정은 프로젝트에 submodule이 추가되거나 업데이트가 필요할 때 반복적으로 수행된다.

 

명령어가 실행되고 나니 submodle로 관리되고 있던 파일을 확인할 수 있다.

  • application.yml: 프로젝트의 주요 설정을 포함하며, 애플리케이션의 실행 환경을 정의.
  • aws.yml: AWS 클라우드 서비스 설정을 위한 파일로, 서버나 데이터베이스와 같은 자원의 접근 정보를 포함.
  • secretmanage.yml: 비밀번호, API 키와 같은 민감한 정보를 안전하게 관리
  • README.md: 프로젝트나 submodule 사용 방법, 설정 방법 등에 대한 설명을 포함하는 문서.
Gradel 세팅

 

Gradel에서 copyGitSubmodule 실행시켜서 Submodule세팅을 마무리 한다.

실행 잘되는 상태