10.1 배포
프로그램을 개발한 후에는 완성된 결과물을 최종 사용자에게 전달해야 합니다. 이때 최종 사용자에게 전달하는 과정을 배포라고 합니다.
개발을 완료했다고 해서 결과물을 직접 사용자에게 배포할 수 없습니다. 완성된 형태로 결과물을 배포하려면 코드를 정리하는 작업들이 추가로 필요합니다. 개발 단계에서 발생한 테스트 메시지나 불필요한 주석들을 정리합니다. 이러한 정리 작업을 거쳐 코드를 좀 더 깔끔하게 만들 수 있고, 배포도 가능합니다. 더불어 정리 작업은 조금이지만 코드 용량을 줄이는 효과도 있습니다. 즉, 배포는 정리된 최종 결과물을 만드는 과정입니다.
과거에는 최종 결과물인 소프트웨어를 CD나 USB 등에 담아 고객에게 전달했습니다. 하드웨어 같은 장비들은 ROM이라는 저장 장치에 저장해서 배포했습니다. 요즘에는 인터넷이 발달하면서 과거의 물리적인 배포 대신 온라인으로 배포합니다. 인터넷이 연결된 서버에서 최종 결과물의 파일을 직접 내려받을 수 있습니다. 온라인 배포는 물리적 생산 비용과 유통 비용이 들지 않고, 빠르게 배포할 수 있습니다. 이렇게 배포 프로세스가 빨라지면서 코드를 안정적으로 유지하고 테스트하는 것이 더 중요해졌습니다.
따라서 개발자는 코드를 안정적인 상태로 유지하면서 쉽게 배포할 수 있는 도구들이 필요해졌습니다. 배포를 잘하려면 코드를 깔끔하게 정리할 수 있는 환경이 필요합니다. 또 사용자가 파일을 쉽게 내려받을 수 있게 해야 합니다. 이러한 이유로 깃은 코드를 배포하는 데도 많이 사용합니다.