버전 관리 & 빌드 자동화
Git · SVN · CVS + 빌드 도구 Ant/Maven/Gradle + CI/CD Jenkins.
버전 관리 방식(공유 폴더/중앙집중/분산) 분류와 Git 명령어가 단답으로 출제. 분산형 = Git이라는 연결이 필수.
버전 관리 시스템(VCS: Version Control System)은 소스 코드의 변경 이력을 추적·관리하는 도구다. 저장소의 위치에 따라 세 가지 방식으로 분류된다.
| 방식 | 대표 도구 | 특징 |
|---|---|---|
| 공유 폴더 | RCS | 가장 단순, 동시 편집 불가 |
| 중앙집중식 | CVS, SVN, Perforce | 중앙 서버 필수, 서버 장애 시 작업 불가 |
| 분산 저장소 | Git, Mercurial | 로컬에 전체 히스토리 복제, 오프라인 작업 가능 |
| 빌드 도구 | 특징 |
|---|---|
| Ant | XML 기반 빌드 스크립트, Java 초기 표준 |
| Maven | 의존성 관리 + 빌드 라이프사이클, pom.xml |
| Gradle | Groovy/Kotlin DSL, 유연하고 빠름 |
| Jenkins | 오픈소스 CI/CD 서버, 플러그인 생태계 풍부 |
Git 주요 명령 — `clone`(원격 복제), `fetch`(원격 변경 가져오기), `pull`(fetch+merge), `push`(원격 반영), `merge`(병합), `rebase`(기반 이동), `checkout`(브랜치 전환), `commit`(변경 확정), `branch`(브랜치 관리).
CI/CD 개념 — Continuous Integration(지속적 통합: 자주 합치고 자주 테스트), Continuous Delivery(언제든 배포 가능한 상태 유지), Continuous Deployment(자동 배포까지 진행). Jenkins, GitLab CI, GitHub Actions가 대표 도구.
분산 저장소 방식의 대표적 버전 관리 시스템은?
Git 명령어 중 원격 저장소의 변경사항을 가져와 자동으로 병합까지 수행하는 명령은?
Java 프로젝트의 의존성 관리와 빌드 라이프사이클을 담당하며 `pom.xml`을 사용하는 빌드 도구는?
CI/CD에서 ( ㉠ )는 '언제든 배포 가능한 상태를 유지'하는 것을 목표로 하고, ( ㉡ )는 테스트 통과 시 자동으로 배포까지 진행한다.
SVN은 분산 저장소 방식의 버전 관리 시스템이다.