한 사람은 예약 기능을 바꾸고, 다른 사람은 보안 문제를 고치고, 또 다른 사람은 화면을 수정한다.
“어떤 버전이 최신이고, 무엇이 언제 바뀌었을까?”
변경을 관리하지 않으면 개발이 흔들린다
수정 파일을 메신저로 주고받고 이름을 final, final2, real_final로 바꾸기 시작하면 어느 것이 진짜 최신인지 알기 어려워진다.
형상관리(Configuration Management)
소프트웨어의 소스코드, 문서, 설정 등
주요 산출물의 변경과 버전을 체계적으로 관리하는 활동이다.
변경 이력을 남기고, 필요하면 이전 상태로 돌아가고, 여러 개발자의 작업을 합칠 수 있어야 한다.
버전은 시간의 흔적이다
소스코드의 각 변경을 기록하면 언제 어떤 이유로 바뀌었는지 확인할 수 있다.
v1.0 → 예약 기능 완성
v1.1 → 중복 예약 오류 수정
v1.2 → 관리자 기능 추가
v1.1 → 중복 예약 오류 수정
v1.2 → 관리자 기능 추가
여러 개발자의 작업을 나누고 합친다
새로운 기능을 개발하면서 기존 안정 버전을 그대로 유지해야 할 때가 있다.
별도의 작업 흐름에서 기능을 개발한 뒤 검증이 끝나면 다시 합칠 수 있다.
브랜치와 병합
작업 흐름을 분리해 변경을 진행하고,
필요한 시점에 다른 변경과 합치는 버전 관리의 대표적인 방식이다.