실용주의 개발자를 위한 개발 환경 – 11. 전체 구성
이 글은 S/W 개발에 가장 기본이 되는 이슈 추적(Issue Tracker), 버전 관리(Version Control), 빌드(Build), 지속적인 통합(CI) 시스템을 구성하는 방법에 대한 일련의 글 중 열한 번째입니다.
그동안 여러 오픈 소스 S/W를 사용해 개발 환경 구성하는 방법만 주절주절 늘어 놨는데 이번에는 그런 것 없이 전체 구성을 그림 한 장으로 간단히 보겠습니다. 대략 어떤 식으로 구성하는지 보는 것도 운영에 도움이 되지 않을까 합니다. 다만 전체 구성도에는 지금까지 내용에서 다루지 않은 부분도 있습니다.
특히 주목할 부분은 저장소 관리 시스템입니다. 지금까지 구성한 시스템에서는 웹을 통해 저장소에 접근하므로 접근 제어가 간단하지 않았습니다. Mercurial 확장 중 하나인 ACL Extention을 써 볼 수도 있겠지만 쓰기 제한만 할 수 있을 뿐 읽기 제한은 못 합니다. SSH를 쓰면 제어 하기가 좀 더 낫지만 심볼 서버를 운영하려면 반드시 HTTP로 접근해야 하므로 여러모로 간단한 문제는 아닙니다. 하지만 이 시스템을 사용해 간단히 해결할 수 있습니다. BitBucket 또는 GitHub 같은 시스템을 직접 운영한다고 생각하면 간단히 이해할 수 있으리라 생각합니다. 아무튼 이에 대한 자세한 내용은 다음에 다루기로 합니다.