메뉴

문서정보

코드베이스

버전관리가 되는 하나의 코드베이스와 다양한 배포

Twelve-Factor 앱은 Git, Mercurial, Subversion 같은 버전 컨트롤 시스템을 사용하여 변화를 추적할 수 있어야 한다. 버전별 소스코드를 관리하는 저장소를 코드 저장소 줄여서 저장소라고 부른다.

코드베이스는 단일 저장소(Subversion 같은 중앙 집중식 버전 관리 시스템의 경우) 일수도 있고, 루트 커밋을 공유하는 여러 저장소(Git 같은 분산 버전 관리 시스템)일수도 있습니다. 지금은 분산 버전관리 시스템인 Git을 더 널리사용하는 추세다.

 Codebase

하나의 코드베스는 여러 환경으로 배포될 수 있다. 코드베이스와 앱 사이에는 항상 1대1 관계가 성립됩니다.

앱의 코드베이스는 한개여야 하지만, 여러 환경으로 배포할 수 잇다. 배포는 실행중인 앱의 인스턴스를 가리킵니다. 앱은 하나 이상의 개발, 하나 이상의 스테이징, 운영(production)으로 배포 될 수 있다. 이들 배포환경은 원격에 존재하는데, 이와 별개로 모든 개발자는 자신의 로컬 개발 환경에 실행되는 앱을 가질 수 있다. 이 역시 배포환경의 하나로 볼 수 있다.

배포마다 다른 버전이 활성화 될수 있지만, 코드베이스 자체는 모든 배포에 대해 동일합니다. 예를 들어, 개발자는 아직 스테이징 환경에 배포하지 않은 커밋이 있을 수 있으며, 스테이징 환경에는 아직 운영 환경에 배포되지 않은 커밋이 있을 수 있습니다. 하지만 이 모든 것들이 같은 코드베이스를 공유하고, 같은 앱의 다른 배포라고 할 수 있습니다.

목차 종속성 »