Git Submodule vs. Subtree

Git Submodule vs. Subtree 깃 (Git) 은 소프트웨어 개발에서 널리 사용되는 분산형 버전 관리 시스템으로, 복잡한 프로젝트를 효율적으로 관리할 수 있게 해준다. 대규모 프로젝트에서는 종종 여러 저장소 (repository) 에 분산된 코드를 하나의 프로젝트 내에서 통합해야 하는 필요성이 생긴다. 이러한 필요성을 해결하기 위해 깃은 두 가지 주요 접근 방식인 서브모듈 (Submodule) 과 서브트리 (Subtree) 를 제공한다. Git Submodule 과 Git Subtree 는 모두 하나의 Git 프로젝트 안에서 다른 Git 저장소를 하위 프로젝트처럼 관리하기 위한 방식이다. 하지만 방법은 다르다. ...

September 28, 2024 · 13 min · Me

GitOps and IaC

GitOps and IaC GitOps 와 IaC(Infrastructure as Code) 는 현대 DevOps 환경에서 인프라스트럭처 관리를 자동화하고 코드화하는 핵심 방법론이다. GitOps 는 Git 을 단일 진실의 소스 (Single Source of Truth) 로 활용하여 애플리케이션과 인프라의 배포를 자동화하는 접근 방식이다. IaC 는 인프라를 코드로 정의하여 자동화된 프로비저닝과 관리를 가능하게 한다. 이 두 가지 개념은 클라우드 네이티브 환경에서 자동화된 배포 파이프라인, 선언적 인프라 정의, 버전 관리 및 감사 기능을 통해 인프라와 애플리케이션 관리를 혁신하고 있다. 이 두 방법론을 결합하여 조직은 인프라스트럭처 프로비저닝, 애플리케이션 배포, 구성 관리를 자동화하고 일관성 있게 유지하며, 변경 사항을 추적하고 필요시 롤백할 수 있다. ArgoCD 와 FluxCD 는 Kubernetes 환경에서 GitOps 를 구현하는 주요 도구이며, Terraform 은 다양한 클라우드 환경에서 IaC 를 구현하는 데 사용된다. ...

October 25, 2024 · 20 min · Me

Release Management

Release Management 릴리스 관리 (Release Management) 는 소프트웨어 개발 프로세스에서 코드 변경사항을 개발 환경에서 프로덕션 환경으로 안전하고 체계적으로 배포하는 전체 과정을 관리하는 방법론이다. 이는 버전 관리 시스템과 긴밀하게 연계되어 코드 변경사항의 추적, 버전 관리, 배포 프로세스 자동화 등을 포함한다. 효과적인 릴리스 관리는 소프트웨어의 품질 보장, 배포 위험 최소화, 사용자 경험 향상, 개발 팀의 생산성 증대에 기여한다. 2025 년 현재 DevOps 및 CI/CD 도구와의 통합을 통해 지속적 배포 자동화가 강화되고 있으며, AI 기반 위험 관리 및 클라우드 네이티브 아키텍처 지원이 주목받고 있다. ...

October 1, 2024 · 12 min · Me

Git Submodule

Git Submodule Git Submodule 은 하나의 Git 저장소 안에 또 다른 Git 저장소를 포함시킬 수 있도록 하는 기능이다. 이는 외부 라이브러리, 공통 모듈, 또는 서드파티 코드 등을 독립적으로 유지하며 주 저장소와 연동하여 사용하는 데 활용된다. 서브모듈은 특정 커밋을 참조하는 방식으로 작동하며, 주 저장소 (부모 저장소) 와 서브모듈 저장소 (자식 저장소) 간의 명확한 경계를 유지한다. 복잡한 프로젝트 구조에서 모듈화를 실현하고, 공통 코드의 버전 동기화 및 유지관리를 용이하게 한다. 핵심 개념 Git Submodule은 한 Git 저장소 (부모 저장소) 내에 다른 Git 저장소 (자식 저장소) 를 현재 저장소의 하위 디렉토리로 포함시키는 방식이다. 서브모듈은 다른 외부 저장소의 특정 커밋을 가리키는 주 저장소 내의 기록이다. 서브모듈은 매우 정적이며 특정 커밋만 추적한다. ...

September 28, 2024 · 22 min · Me

Git Subtree

Git Subtree Git Subtree 는 Git 에서 제공하는 저장소 관리 도구로, 하나의 저장소 안에 다른 저장소를 포함시켜 관리할 수 있게 해주는 기능이다. 서브모듈 (Submodule) 의 대안으로 개발되었으며, 주요 저장소 (상위 저장소) 에 하위 저장소의 파일들을 직접 포함시키는 방식으로 작동한다. Git Subtree 는 복잡한 프로젝트 구조에서 코드 재사용, 공유 라이브러리 관리, 여러 저장소의 통합 관리에 유용하며, 특히 상위 저장소에서 하위 저장소의 코드를 직접 수정하고 원래 하위 저장소에 변경사항을 반영할 수 있다는 점이 큰 특징이다. 이러한 기능은 팀 협업, 라이브러리 관리, 마이크로서비스 구조의 개발 등에서 활용된다. ...

September 28, 2024 · 13 min · Me

Enterprise Usage

September 30, 2024 · 0 min · Me

Hooks

Git Hooks Git Hooks 는 Git 워크플로우의 특정 이벤트 (커밋, 푸시 등) 가 발생할 때 자동으로 실행되는 사용자 정의 스크립트이다. 이 스크립트들은 소스 코드 관리, 품질 보증, 배포 자동화 등 다양한 목적으로 활용된다. Git Hooks 는 클라이언트 측과 서버 측으로 나뉘며, 로컬 개발 환경에서의 코드 검증부터 원격 저장소에서의 배포 자동화까지 광범위한 워크플로우를 지원한다. 이를 통해 개발자들은 코딩 표준 준수, 테스트 자동화, 지속적 통합/배포 등을 효율적으로 구현할 수 있다. 핵심 개념 Git Hooks 는 Git 작업 이벤트 트리거에 반응하는 자동화 스크립트이다. .git/hooks 디렉토리에 위치하며, 실행 가능한 권한이 부여된 스크립트 파일 형태로 존재한다. 이벤트는 커밋 생성, 브랜치 전환, 원격 저장소로의 푸시 등 Git 워크플로우의 다양한 시점에서 발생할 수 있으며 사전/사후 작업을 실행한다. ...

October 28, 2024 · 32 min · Me