코드베이스

코드베이스(codebase)는 소스 코드를 하나의 단위로 모아 관리하는 집합이다. 일반적으로 하나 이상의 응용 소프트웨어와 라이브러리를 포함한 소프트웨어 구성 요소를 빌드하는 데 사용될 수 있다.

코드베이스는 일반적으로 버전 관리 시스템의 소스 제어 저장소에 저장된다. 저장소에는 빌드 생성 파일이 포함될 수 있지만(따라서 소스 코드는 아님), 일반적으로 이러한 파일은 저장소에서 제외되며, 코드베이스에서도 제외된다. 저장소에는 결과 소프트웨어를 빌드하거나 실행하는 데 필요한 데이터 파일(예: 구성)이 포함될 수 있다. 그러나 버전 관리는 코드베이스의 필수적인 측면이 아니다. 심지어 리눅스 커널도 수년 동안 버전 관리 없이 유지되었다.

여러 구성 요소를 개발할 때, 각 구성 요소에 대해 별개의 코드베이스를 유지할지, 아니면 단일 로 코드베이스를 결합할지 선택한다. 모놀리식 코드베이스를 사용하면 여러 구성 요소에 대한 변경(예: 리팩토링)이 더 쉽고 견고할 수 있다. 그러나 이는 더 큰 저장소가 필요하며, 광범위한 기술 부채를 도입하기 쉽게 만든다. 별개의 코드베이스를 사용하면 각 저장소가 더 작고 관리하기 쉽다. 이 구조는 구성 요소 간의 논리적 분리를 강제하지만, 코드베이스 간의 더 많은 빌드 및 런타임 통합을 필요로 할 수 있으며, 여러 구성 요소에 걸쳐 있는 변경 사항을 복잡하게 만든다.

 예시 
특히 큰 코드베이스는 다음과 같다.
 구글: 모놀리식, 10억 개의 파일, 9백만 개의 소스 코드 파일, 20억 줄의 소스 코드, 총 3500만 개의 커밋, 총 크기 86TB (2015년 1월)
 페이스북: 모놀리식, 8GB (히스토리 포함 저장소 54GB, 2014), 수십만 개의 파일 (2014)
 리눅스 커널: 분산형, 1500만 줄 이상의 코드 (2013년 및 커널 버전 3.10 기준)

 같이 보기 

 코드플렉스
 자유-오픈 소스 소프트웨어 호스팅 시설 비교
 피시아이 (소프트웨어)
 포지 (소프트웨어)
 자유 소프트웨어 프로젝트 디렉터리 목록
 개정 관리 소프트웨어 목록
 스니펫
 소스포지

 각주 

분류:소스 코드
분류:버전 관리