저장소 (버전 관리)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
저장소는 소프트웨어 공학에서 파일 집합의 버전을 추적하여 여러 개발자가 협업할 수 있도록 하는 데 사용되는 시스템이다. 주로 분산 버전 관리 시스템에서 중앙 저장소와 분기 저장소로 구성되며, 웹 인터페이스인 코드 포지를 통해 저장소와 구성 파일을 탐색할 수 있다. 저장소는 파일 및 변경 이력을 보존하는 주요 목적으로 사용되며, 소스 코드를 업로드하여 정적 웹 페이지를 호스팅하는 데 활용되기도 한다. 또한, 공개 저장소는 텍스트 마이닝과 같은 분석에 사용되고, 배포를 위한 거점으로 활용될 수 있다.
더 읽어볼만한 페이지
저장소 (버전 관리) | |
---|---|
개요 | |
종류 | 버전 관리 시스템 |
용도 | 소프트웨어 리비전 컨트롤을 위한 메타데이터 저장소 |
상세 정보 | |
특징 | 파일, 디렉터리의 변경 사항 추적 및 관리 여러 사용자와의 협업 지원 특정 시점의 버전으로 복원 가능 |
주요 기능 | 버전 관리 변경 사항 추적 협업 지원 브랜칭 및 병합 |
활용 | |
적용 분야 | 소프트웨어 개발 웹 사이트 관리 문서 관리 디자인 작업 |
관련 용어 | |
관련 용어 | 버전 관리 시스템 Git Subversion CVS Mercurial |
기타 | |
주의사항 | 저장소 손상 시 데이터 복구 어려움 |
2. 구조
버전 관리 시스템에서 저장소는 소스 코드 등의 관리 대상을 저장해 두는 장소를 의미한다. 저장소는 모든 사용자의 시스템에 중복된 저장소를 가지는 분산형 (Git, Mercurial)과, 단일 서버에서 저장소가 관리되는 집중형 (Subversion, CVS 등)으로 나뉜다[8]. 모든 제3자에게 공개된 저장소를 '''공개 저장소'''(public repository)라고 하며, 권리자만 이용할 수 있는 것을 '''비공개 저장소'''(private repository)라고 한다.
저장소에는 다음과 같은 메타 데이터가 포함된다.
- 저장소 내의 변경 이력.
- 커밋 오브젝트 일식.
- ''헤드''라고 불리는, 커밋 오브젝트에 대한 참조 세트.
2. 1. 분산 버전 관리 시스템

분산 버전 관리 시스템은 중앙 저장소와 분기 저장소로 구성된다. 중앙 저장소는 서버에 있으며, 개발자는 분기 저장소에서 작업한 다음 변경 사항을 중앙 저장소에 커밋하여 반영한다.
"저장소"의 원래 의미는 "저장고" 또는 "보관 장소"(wikt:repository)이다. 버전 관리 시스템에서는 소스 코드 등의 관리 대상을 저장해 두는 장소를 저장소라고 부른다. 저장소는 모든 사용자의 시스템에 중복된 저장소를 가지는 분산형 (Git, Mercurial)과 단일 서버에서 저장소가 관리되는 집중형 (Subversion, CVS)으로 나뉜다[8]. 공개 저장소는 모든 제3자에게 공개된 저장소를, 비공개 저장소는 권리자만 이용할 수 있는 저장소를 말한다.
3. 코드 포지 (Forge)
코드 포지는 버전 관리 시스템을 위한 웹 인터페이스다. 사용자는 일반적으로 페이지 자체에서 저장소와 구성 파일을 탐색할 수 있다.
3. 1. 정적 웹 호스팅
저장소는 버전 관리 작업을 주로 수행하지만, 일부 저장소에서는 사용자가 소스 코드(HTML, JavaScript 등. PHP는 제외)를 저장소에 업로드하여 정적 웹 페이지를 호스팅할 수 있다. 이는 주로 소프트웨어 프로젝트의 문서나 랜딩 페이지를 제공하기 위해 수행된다.[6]저장소를 웹 문서를 업로드하는 장소로 사용하면 버전 관리를 통합할 수 있으며, 변경 사항이 FTP와 같은 프로토콜을 통해 파일을 업로드하는 대신 버전 관리 시스템을 통해 푸시되므로 빠른 반복이 가능하다.[6]
이러한 서비스에는 GitHub Pages와 GitLab Pages가 있다.[6]
4. 활용
저장소는 일련의 파일과 그 파일에 가해진 변경 이력을 보존하는 데 사용된다.[9] 버전 관리 시스템이 변경 사항을 저장하는 방식은 시스템마다 다르다. 예를 들어, Subversion은 과거에 변경 이력을 데이터베이스 인스턴스에 저장했지만, 현재는 파일 시스템에 직접 저장한다.[10] 이러한 방법론의 차이는 다양한 그룹의 필요에 따른 다양한 사용 방식으로 이어졌다.[11]
특히 공개 저장소는 텍스트 마이닝 등의 분석 대상으로 이용된다. 주로 소스 코드 작성 지원이나 버그 해결 등에 사용된다.
제3자가 접근 가능한 저장소에 대상을 배치함으로써 저장소를 배포 거점으로 사용할 수 있다. 예를 들어 공개 Git 저장소는 누구든지 `clone`하여 입수할 수 있다.
4. 1. 협업 및 버전 관리
소프트웨어 공학에서, 버전 관리 시스템은 여러 개발자가 프로젝트에 협업할 수 있도록 일반적으로 파일 집합의 버전을 추적하는 데 사용된다. 저장소는 그래프로 표현되는 프로젝트의 파일을 추적한다.
분산 버전 관리 시스템은 중앙 저장소와 분기 저장소로 구성된다. 중앙 저장소는 서버에 존재한다. 이를 변경하려면 개발자는 먼저 분기 저장소에서 작업한 다음 변경 사항을 이전 저장소에 커밋한다.
저장소(버전 관리)의 주요 목적은 일련의 파일과 해당 파일에 가해진 변경 이력을 보존하는 것이다.[9] 버전 관리 시스템이 변경 사항을 저장하는 방식은 각 시스템에 따라 다르며 정확히 일치하지 않는다. 예를 들어, Subversion은 과거에는 변경 이력을 데이터베이스 인스턴스에 저장했지만, 현재는 파일 시스템에 직접 저장한다.[10] 이러한 방법론의 차이는 다양한 그룹의 필요에 따른 다양한 사용 방식으로 이어졌다.[11]
4. 2. 텍스트 마이닝 및 분석
공개 저장소는 텍스트 마이닝 등의 분석 대상으로 이용된다. 주로 소스 코드 작성 지원이나 버그 해결 등에 사용된다.[1]제3자가 접근 가능한 저장소에 대상을 배치함으로써 저장소를 배포를 위한 거점으로 사용할 수 있다. 예를 들어 공개 Git 저장소는 누구든지 `clone`하여 입수할 수 있다.[1]
4. 3. 배포
저장소는 버전 관리 작업뿐만 아니라, 사용자가 소스 코드를 업로드하여 정적 웹 페이지를 호스팅하는 데에도 사용될 수 있다. 이는 주로 소프트웨어 프로젝트 문서나 랜딩 페이지를 제공하기 위해 수행된다.[6]저장소를 웹 문서를 업로드하는 장소로 사용하면 버전 관리를 통합할 수 있으며, 변경 사항이 FTP와 같은 프로토콜을 통해 파일을 업로드하는 대신 버전 관리 시스템을 통해 푸시되기 때문에 빠른 반복이 가능하다.[6]
이러한 종류의 서비스로는 GitHub Pages와 GitLab Pages가 있다.[6] 공개 저장소는 텍스트 마이닝 등의 분석 대상으로 이용되기도 하며, 주로 소스 코드 작성 지원이나 버그 해결 등에 사용된다.
제3자가 접근 가능한 저장소에 대상을 배치함으로써 저장소를 배포 거점으로 사용할 수 있다. 예를 들어 공개 Git 저장소는 누구든지 `clone`하여 입수할 수 있다.
참조
[1]
웹사이트
SVNBook
http://svnbook.red-b[...]
2012-04-20
[2]
웹사이트
Version control concepts and best practices
https://homes.cs.was[...]
2018-03-03
[3]
웹사이트
Getting Started - About Version Control
http://git-scm.com/b[...]
Git SCM
[4]
서적
Version Control with Subversion: For Subversion 1.7
http://svnbook.red-b[...]
O'Reilly
[5]
웹사이트
Different approaches to source control branching
https://stackoverflo[...]
2014-11-15
[6]
웹사이트
GitHub Pages {{!}} Websites for you and your projects, hosted directly from your GitHub repository.
https://pages.github[...]
[7]
웹사이트
SVNBook
http://svnbook.red-b[...]
2012-04-20
[8]
웹사이트
Version control concepts and best practices
https://homes.cs.was[...]
2018-03-03
[9]
웹사이트
Getting Started - About Version Control
http://git-scm.com/b[...]
Git SCM
2020-12-21
[10]
서적
Version Control with Subversion: For Subversion 1.7
http://svnbook.red-b[...]
O'Reilly
[11]
웹사이트
Different approaches to source control branching
https://stackoverflo[...]
2014-11-15
[12]
웹인용
SVNBook
http://svnbook.red-b[...]
2012-04-20
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com