기반시스템(Infrastructure System)란 용어를 들어보신 적이 있나요?
기반시스템(Infrastructure system)은 소프트웨어를 개발하는데 꼭 필요한 기초 환경입니다.
여러분들도 쓰고 계시는 것이 있을 겁니다. 소스코드를 CVS에 저장하고 버그를 관리하기 위해서Bugzilla나 Mantis를 사용하고 있다면 바로 그러한것들이 기반시스템(Infrastructure System)입니다.
이러한 것들은 매우 다양한 분야에서 소프트웨어 개발을 돕고 있습니다.
기반시스템 없이는 생산적으로 소프트웨어 개발할수 없습니다. 기반시스템은 소스코드를 안전하게 보관해주고, 프로젝트 구성원 간의 의사소통을 원활하게 해주는 등 프로젝트의 모든 활동이 잘 진행되도록 돕습니다. 또, 개발자들을 편하게 해주고, 불필요하게 노력을 낭비하지 않게 해주며, 개발에 집중할수 있게 해줍니다. 성공적인 프로젝트는 거의 다 적절한 기반시스템 하에서 개발 된 것이라고 보면 됩니다.
기반시스템에는 좋은 오픈 소스(Open Source) 솔루션이 아주 많습니다. 세계적인 소프트웨어 회사들도 기반시스템으로 오픈 소스 솔루션을 애용하고 있습니다. 특별한 이유가 있는 경우가 아니라면 비싼유료 제품을 사서 쓸 필요가 없습니다.
그러면 수많은 기반시스템 중에서 무엇은 꼭 필요하고 어떤 것은 당장 필요하지 않을까요?
이는 회사에 따라서 상황이 달라질 수 있습니다.
아래 그림은 각 기반시스템의 난이도와 효과를 설명한 것이다. 오른쪽으로 갈수록 도입이 쉽고, 도입시 쉽게 적응할 수 있는 시스템이다. 또 위로 갈수록 도입 시 효과가 크고 프로젝트에 많은 영향을 미치는 것들이다. 아직 아무런 시스템을 도입하고 있지 않는 회사라면 오른 쪽 윗부분의 영역에 있는 시스템부터 차례대로 도입하는 것이 좋을 것이다.
아직 소스코드관리시스템과 버그관리시스템을 사용하고 있지 않다면 가능하면 빨리 도입해야 합니다. 이 두 기반시스템은 어떤 소프트웨어 회사이건 필수적으로 필요하기 때문입니다.
'Infrastructure System'이란 표현은 Wikipedia에도 없고, 검색을 해도 쓰이는 곳이 많지 않던데...
답글삭제용어의 기원이 어디인가요?
마지막의 도표가 직관적이어서 좋습니다. (방향이 반대로 표기되었으면 조금더 좋았을듯). 저희 팀은 StarTeam이라는 소스코드관리툴의 진짜 오래된 버전을 사용중인데 곧 Subversion으로 갈아타려고 하고있습니다. ^^
답글삭제영회님 반갑습니다.
답글삭제Infrastructure System이란 용어 또는 Software Infrastructure System은 소프트웨어 개발을 돕는 전사적인 시스템을 총칭하는 말로써 우리 컨설팅회사에서 나름대로 사용하고 있던 용어이고요 미국의 소프트웨어 개발자에게 얘기를 하면 거의 무슨 뜻인지 알아 듣습니다. 최근에는 몇몇 소프트웨어 공학 책에서 Infrastructure System이란 용어를 사용하기 시작하더군요. 앞으로 이에 관련된 많은 이슈들을 계속 연재를 할 생각입니다.
영회님 블로그는 들어가 봤던이 소프트웨어 관련된 좋은 내용들이 참 많더군요. RSS등록해서 보고 있습니다.
감사합니다.
헝그리맨님 반갑습니다.
답글삭제코드리뷰 열심히 하고 계신가요? :)
도표는 그동안 수많은 회사를 컨설팅을 하면서 자신의 회사에 알맞은 적절한 시스템을 사용하고 있지 못하고 과도하게 또는 너무 주먹구구식으로 사용하는 것을 보고 각 회사의 역량에 맞게 사용할 수 있도록 제가 제시하는 도표입니다. Subversion으로 갈아타기로 하셨다는 것은 참 좋은 결정이네요. 제 경험에 의하면 지금까지 써본 소스코드관리시스템 중에서는 Subversion이 가장 좋습니다. 몇몇 더 업그레이드된 기능을 포함한 제품이 있지만 Subversion으로도 충분하지요.
소스코드관리시스템을 제대로 사용하는 방법은 또 매우 어렵습니다. 추후 궁금하신 것이 있다면 얼마든지 말씀해주세요. 같이 좋은 의견 나눠요.
감사합니다.