Synap soft | 2007/04/12 (목) 09:54

사이냅 개발체계
타이틀 라인
software that works

 품질 좋은 소프트웨어 개발에 전념할 수 있는 개발 프로세스를 갖추고 있습니다.

여러가지 다채로운 운영환경을 지원하는 프로그램이라면 사용될 수 있는 여러 환경에서 직접 테스트를 해봐야 합니다. 그러나 현실적으로 고객들이 갖고 있는 모든 환경을 사내에 구축 하고 있기란 불가능 합니다. 그렇다고 매번 고객의 장비를 사용하기도 힘든 일이지요. 이런 문제를 해결하기 위해 VMWare 를 사용합니다. 개발된 제품을 여러 환경에서 테스트 해보고 포팅 하기 위해 VMWare 만큼 좋은 프로그램은 없습니다. 많은 운영환경을 VMWare 이미지로 작성해두고 개발자 PC 에서 직접 운영환경을 구동하여 되도록 많은 테스트를 할 수 있도록 합니다.
   
사내 표준 개발 플랫폼은 Fedora Core 6로서 여기에 Cubrid DB(MySQL,BDB 보조)를 메인 DB로, Java, Python 을 주 언어로 채택하여 사용합니다.프로젝트 중 인원이 추가될 때 VMWare 이미지를 던져주면 즉시 개발 환경이 세팅될 수 있으며 오류처리는 오류가 발생한 동일한 환경에서 해결이 가능하게 됩니다.
   
 
 
너무도 잘 알려진 형상관리 프로그램인 CVS 를 이용하여 소스코드를 관리하고 있고 출근해서 cvs update, 퇴근전에 cvs commit 를 생활화 하려고 노력 하고 있습니다.
   
또한 "CVS 는 최소 3개 이상의 서버로 동기화 되어 안전하게 관리되고 있습니다."개발자 장비가 고장나거나 문제가 생겨도 걱정이 없습니다. CVS에 commit 된 프로그램은 주기적으로 자동 백업 되도록 되어 있으며, 두 개의 CVS 장비로 백업되기 때문에 소스가 삭제되거나 실수가 발생하여도 바로 바로 복구가 가능 합니다.
   
  소스관리
 
프로그램 개발에서 빠질 수 없는 것이 코드리뷰입니다. 다른 사람의 코드를 보고 배울점을 찾고, 나 보다 나은 사람이 코드를 봐주고 새로운 아이디어를 얻을 수 있는 최고의 방법입니다.물론 제품의 품질도 훨씬 좋아지고, 버그 발생 확률이 낮아져 여러모로 득이 되는 일입니다.
   
그러나 코드리뷰가 쉽지는 않습니다. 많은 부분이 변경되고 변경점을 일일이 찾아서 확인하기에는 너무 힘든 일입니다. Winmerge 를 이용하여 최근 변경된 부분을 집중 리뷰합니다.Winmerge 는 UI가 상당히 편리한 diff 툴입니다.
   
  소스리뷰
 
프로젝트 완료 후 문서 만들기가 새로운 일이 되지 않도록 자동 문서화 툴인 Doxygen 을 사용합니다. 소스코드에 회사에서 표준화된 형태의 주석을 작성하면 자동으로 문서화해 줍니다. Doxygen 을 이용하면 자동으로 HTML 문서와 chm 메뉴얼 까지 한번에 생성이 됩니다.
   
주석이 달린 코드가 리뷰하기도 좋고 나중에 업무 인계에도 좋습니다.
   
  소스코드 문서화
 
Issue Tracking 시스템으로 Mantis 를 사용하고 있고, 일반 업무와 프로젝트 이슈를 관리하고 있습니다. Mantis를 이용한 이슈관리는 개발자가 현재 자신이 맡은 업무와 전체 프로젝트에 남은 업무를 확인 할 수 있도록 하여, 개발자 스스로 일정(업무)관리를 할 수 있도록 도와줍니다.
   
관리자는 이슈 전체를 확인 할 수 있으며, 개발자별 업무량 관리도 쉽게 할 수 있도록 합니다.물론 Mantis DB 도 이원화 되어 관리됩니다.
   
  프로젝트 관리
 
사내 내부에서 전용으로 사용하는 WiKi가 있습니다. WiKi 정보를 등록하여 공유하는 기능으로 사용해도 됩니다.그러나 WiKi 가 Mantis 와 만나 연동하기 시작 하면 이야기는 달라집니다.
   
최초에 작성된 프로그램 스펙이나 기획은 요구 사항에 맞춰 계속해서 달라져야 합니다. 실제 파일로 존재 하는 문서는 빠르게 변경되는 요구 사항에 대처하기 어렵습니다. 하지만 WiKi 가 해결해줍니다. WiKi 에 최초로 작성된 프로그램 스펙이나 기획은 급변하는 요구사항에 맞춰 계속 달라질 수 있고 모두에게 공유가 됩니다.
   
프로젝트 진행 내내 고객이나 기획자의 의도가 WiKi 에 반영이 되고 Mantis를 통해 개발자에게로 전달되어 프로그램에 반영이 됩니다.
   
  문서관리
 
한달에 두 번 정도 외부 초청 세미나가 이루어 집니다. 사내의 직원들간의 세미나가 도움이 되기는 하지만 한계가 있는 것은 사실입니다. 좀 더 뛰어난 분들의 새로운 이야기를 듣고 실제로 좋은 프로그램의 개발 방법이나 서비스 운영 방법 등을 알게 되면 더 좋은 아이디어가 나올 수 있습니다.국내외 유명한 기업의 개발 관련된 분이나 좋은 책을 쓰신 교수님을 직접 모셔서 세미나를 진행합니다.평소 자주 보던 책을 쓰신 분이나 말로만 듣던 프로그램을 만든 분을 직접 만나 이야기도 나누고 질문을 할 수 있는 그런 자리가 마련이 됩니다.
   
최근 세미나 간략 소개
 
- “열혈강의 Python” 저자 이강성님의 Python 세미나
- CUBRID CTO 김평철 이사님의 "MS에서 배운다“
- NAVER 블로그 시즌2 개발 주역이신 배상용 랩장님의 "블로그 개발 기술맵"


AND