정보처리기사 필기 예상문제 — 형상관리 (Git 등) 1회 (정답·해설 포함)

정보처리기사 형상관리 영역은 소프트웨어 개발 과정에서 산출물의 변경을 체계적으로 통제하는 방법을 다룹니다. 이번 1회차에서는 Git 명령어, 브랜치 전략, 형상관리 절차와 도구의 개념을 집중적으로 학습합니다.

본 회차 안내

2과목 소프트웨어개발 – 형상관리 (Git 등) (1/1회차)

문제 1. 형상관리의 기본 활동

형상관리(SCM: Software Configuration Management)는 소프트웨어 개발 전반에 걸쳐 산출물의 변경을 통제하고 추적하는 활동입니다. 다음 중 형상관리의 주요 활동으로 가장 적절하지 않은 것은 무엇인가요?

  1. 형상 식별(Configuration Identification)
  2. 형상 통제(Configuration Control)
  3. 형상 감사(Configuration Audit)
  4. 형상 배포(Configuration Deployment)

정답

④ 형상 배포(Configuration Deployment)는 형상관리의 공식 주요 활동에 해당하지 않습니다.

해설

형상관리의 주요 활동은 일반적으로 형상 식별, 형상 통제, 형상 감사, 형상 상태 보고(Status Accounting) 네 가지로 정의됩니다. ‘형상 배포’는 표준 활동 분류에 포함되지 않으며, 배포는 별도의 릴리스 관리 영역에서 다룹니다. 따라서 보기 ④가 정답입니다.

오답: ① 형상 식별은 관리 대상 산출물(형상 항목)을 선정하고 명명하는 활동으로 형상관리의 첫 번째 주요 활동입니다.
오답: ② 형상 통제는 변경 요청을 검토·승인·거부하고 변경 이력을 관리하는 활동으로 핵심 활동 중 하나입니다.
오답: ③ 형상 감사는 형상 항목이 요구사항과 명세를 준수하는지 확인하는 활동으로 주요 활동에 포함됩니다.
정답: ④ 형상 배포는 표준 형상관리 활동 분류(식별·통제·감사·상태보고)에 해당하지 않으므로 정답입니다.

문제 2. Git 기본 명령어

Git을 사용하여 원격 저장소(Remote Repository)의 변경 내용을 로컬 저장소로 가져오면서 동시에 현재 작업 브랜치에 병합하려고 합니다. 이때 사용하는 Git 명령어로 올바른 것은 무엇인가요?

  1. git fetch
  2. git pull
  3. git clone
  4. git merge

정답

② git pull — 원격 저장소의 변경 내용을 가져와 현재 브랜치에 즉시 병합합니다.

해설

git pull은 내부적으로 git fetch와 git merge를 순서대로 실행합니다. 원격 저장소의 최신 커밋을 로컬로 내려받은 뒤, 현재 체크아웃된 브랜치에 자동으로 병합하므로 두 작업을 한 번에 처리합니다. 따라서 “가져오기 + 병합”이라는 조건에 가장 부합하는 명령어는 git pull입니다.

오답: ① git fetch는 원격 저장소의 변경 내용을 로컬로 내려받지만, 현재 브랜치에 자동 병합하지 않습니다. 병합 전 변경 내용을 먼저 확인할 때 사용합니다.
정답: ② git pull은 fetch와 merge를 동시에 수행하므로 문제 조건에 정확히 부합합니다.
오답: ③ git clone은 원격 저장소를 로컬에 처음 복제할 때 사용하는 명령어로, 이미 로컬 저장소가 존재하는 상황과는 다릅니다.
오답: ④ git merge는 로컬에서 브랜치끼리 병합하는 명령어이며, 원격에서 변경 내용을 가져오는 기능은 없습니다.

문제 3. Git 브랜치 전략 — Git Flow

Git Flow 브랜치 전략에서 새로운 기능을 개발할 때 기준 브랜치로 삼아 분기(Branch off)하고, 개발 완료 후 다시 병합(Merge)하는 브랜치로 올바른 것은 무엇인가요?

  1. main(master) 브랜치
  2. develop 브랜치
  3. release 브랜치
  4. hotfix 브랜치

정답

② develop 브랜치 — Git Flow에서 feature 브랜치는 develop에서 분기하여 작업 후 develop으로 병합합니다.

해설

Git Flow 전략에서 develop 브랜치는 통합 개발 브랜치 역할을 합니다. 새로운 기능을 추가할 때는 develop에서 feature 브랜치를 생성하고, 완성된 기능은 다시 develop으로 병합합니다. main(master) 브랜치는 배포 가능한 안정 버전만 유지합니다.

오답: ① main(master) 브랜치는 실제 릴리스(배포)된 안정 버전을 관리하는 브랜치입니다. feature 브랜치의 기준이 되지 않습니다.
정답: ② develop 브랜치는 기능 개발의 기준 브랜치로, feature 브랜치가 분기되고 병합되는 중심 브랜치입니다.
오답: ③ release 브랜치는 배포 준비 단계에서 develop으로부터 생성되며, 버그 수정과 최종 점검에 사용됩니다.
오답: ④ hotfix 브랜치는 운영 중인 main 브랜치에서 긴급 버그를 수정할 때 사용하며, 수정 후 main과 develop 양쪽에 병합합니다.

문제 4. Git 스테이징 영역과 커밋 흐름

Git의 작업 흐름은 세 가지 영역으로 구분됩니다. 파일을 수정한 후 커밋(Commit)하기 전에 변경 내용을 임시로 등록해 두는 중간 단계 영역의 명칭으로 올바른 것은 무엇인가요?

  1. Working Directory(작업 디렉터리)
  2. Staging Area(스테이징 영역)
  3. Local Repository(로컬 저장소)
  4. Remote Repository(원격 저장소)

정답

② Staging Area(스테이징 영역) — git add 명령으로 변경 파일을 등록하는 커밋 전 중간 영역입니다.

해설

Git은 Working Directory → Staging Area → Local Repository → Remote Repository 순서로 변경 내용을 전파합니다. Staging Area(Index라고도 함)는 git add 명령으로 다음 커밋에 포함할 파일을 선별하여 대기시키는 공간입니다. 따라서 “수정 후, 커밋 전 임시 등록 영역”은 Staging Area가 정답입니다.

오답: ① Working Directory는 실제 파일을 수정하는 로컬 작업 공간으로, 아직 Git이 추적하지 않거나 변경된 상태의 파일이 위치합니다.
정답: ② Staging Area는 커밋 대상 파일을 준비하는 중간 영역으로, git add 명령으로 파일을 이 영역에 등록합니다.
오답: ③ Local Repository는 git commit 명령이 실행된 후 변경 이력이 최종 기록되는 로컬 저장소입니다.
오답: ④ Remote Repository는 GitHub, GitLab 등 원격 서버에 존재하는 저장소로, git push 명령으로 로컬 커밋을 전송합니다.

문제 5. 버전 관리 시스템 유형 비교

버전 관리 시스템은 저장소의 위치와 구조에 따라 여러 유형으로 분류됩니다. 다음 중 분산 버전 관리 시스템(DVCS: Distributed Version Control System)의 특징으로 가장 올바른 것은 무엇인가요?

  1. 중앙 서버에만 저장소가 존재하며, 오프라인 커밋이 불가능하다.
  2. 각 개발자가 로컬에 전체 저장소의 복사본을 보유하여 오프라인 작업이 가능하다.
  3. 파일을 잠금(Lock) 방식으로 관리하여 동시 편집을 원천 차단한다.
  4. 디렉터리 단위로 버전을 관리하며 브랜치 생성 비용이 매우 높다.

정답

② 각 개발자가 로컬에 전체 저장소 복사본을 보유하며 오프라인 작업이 가능한 것이 DVCS의 핵심 특징입니다.

해설

분산 버전 관리 시스템(DVCS)의 대표적인 도구는 Git입니다. DVCS에서는 모든 개발자가 전체 이력을 포함한 저장소의 완전한 복사본(Clone)을 로컬에 보유합니다. 따라서 중앙 서버 없이도 커밋, 로그 조회, 브랜치 생성 등 대부분의 작업이 가능합니다. 이는 중앙집중식 VCS(CVCS)와 가장 뚜렷하게 구분되는 특징입니다.

오답: ① 중앙 서버에만 저장소가 존재하고 오프라인 커밋이 불가능한 것은 CVS, SVN 같은 중앙집중식 버전 관리 시스템(CVCS)의 특징입니다.
정답: ② 로컬에 전체 저장소 복사본을 보유하여 오프라인 작업이 가능한 것은 Git을 대표로 하는 DVCS의 핵심 특징입니다.
오답: ③ 파일 잠금(Lock) 방식으로 동시 편집을 차단하는 것은 초기 버전 관리 도구인 RCS나 일부 CVCS 도구의 특징으로, DVCS와는 거리가 멉니다.
오답: ④ 디렉터리 단위 버전 관리와 높은 브랜치 비용은 SVN(Subversion)의 특징으로, Git 같은 DVCS는 브랜치 생성 비용이 매우 낮습니다.

학습 정리

이번 회차에서는 정보처리기사 형상관리의 핵심 개념을 다뤘습니다. 첫째, 형상관리의 4대 활동(식별·통제·감사·상태보고)의 정확한 명칭과 역할을 구분해야 합니다. 둘째, Git의 작업 흐름(Working Directory → Staging Area → Local Repository → Remote Repository)과 각 명령어(add, commit, push, pull, fetch)를 연결하여 기억해야 합니다.

셋째, Git Flow 브랜치 전략과 DVCS의 분산 특성은 정보처리기사 형상관리 문제에서 반복적으로 출제되는 핵심 포인트이므로 반드시 숙지하세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다