Git Submodules

shwangger·2021년 8월 26일
0

A brick for construction

목록 보기
1/1
post-thumbnail

현재 진행 프로젝트(LC)를 submodule(AHCC)로 나누는 이유:

  • Responsibility : 각 모듈을 맡은 팀의 구성원이 더욱 책임감을 같고 개발할 수 있음
    - Being able to modify submodule without affecting the host repository
    - Easier version control, new feature, test, and so on

Atlassian Tutorial을 읽고 Git Submodules 이해 해보자.

프로그램은 작고 단순한 것에서 크고 복잡한 것으로 진화한다. 그 과정에서 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다.

  • 자주 사용되는 코드를 별도의 파일로 만들어 필요할 때마다 재활용
  • 코드를 개선하면, 이를 사용하고 있는 모든 애플리케이션의 동작 개선
  • 코드 수정 시에 필요한 로직만을 로드해서 메모리 낭비 절감
  • 한번 다운로드 된 모듈은 웹브라우저에 의해서 저장되기 때문에 동일한 로직을 로드 할 때 시간과 네트워크 트래픽을 절약 (브라우저에 해당)

Module이란?

  • 보다 작고 이해할 수 있는 단위로 나뉘어진 것
  • 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체
  • 본체에서 분리되어 작은 부분으로 유기적으로 구성되어 있다가 필요할 때 본체에 합류하여 그 기능을 수행할 수 있는 것

Modularize(모듈화)란?

거대한 문제를 작은 조각의 문제로 나누어 다루기 쉽도록 하는 과정. 예를 들어, 큰 문제를 해결하는 긴 소스가 있다면, 한가지 일을 하는 소스들(모듈)끼리 나누는 것을 모듈화라고 합니다.

모듈의 특징

  • Unity (한가지 일만 수행)
  • Smallness (간단 명료)
  • Simplicity (단순성)
  • Independency (독립성)

모듈화 장점 (Advantages)

  • 수정 용이
  • 재사용성 용이
  • 유지관리 쉬움

Submodule이란?

  • Git의 서브모듈은 Git 저장소에 다른 사람의 Git 저장소를 하나의 디렉토리에 clone하는 것이 서브모듈입니다.
  • 서브모듈에 포함된 데이터는 내 Git 저장소에 디렉토리를 생성하여 넣기 때문에 독립적으로 커밋을 관리할 수 있습니다.

문서에서 기억할 말한 부분

  • "Submodules are very static and only track specific commits."

실제 실행:

  1. Create a new repo that needs to be added as a submodule
  2. From host repo, git submodule add <'ssh submodule git address'>
  3. From host repo, delete original folder
profile
처음부터 다시 배우는 중

0개의 댓글