개발환경은 프로젝트 진행에 있어서 상당히 중요한 부분이다. 하지만 상당수의 기업은 이를 무시하는 경향이 많다.
사업기회를 놓치지 않기위해 촉박하게 프로젝트 일정을 잡기 때문에 급한 마음에 ‘구현되는게 우선이다’라는 생각으로 접근하기 때문이 아닐까 한다. 이러한 성급한 결정은 위험요소를 가지고 있다. 구성원간 개발한 소스의 충돌을 일으키기도 하며 심지어 소스를 지우기도 한다. 또한 개발자는 프로젝트의 로직을 생각하는것 말고도 신경써야하는 부분이 많아진다. 결국 촉박하게 진행된 프로젝트는 일정안에 끝나지 못하게 되며 난잡하게 구성된 결과물만 남게되어 리펙토링시 더욱 험난한 길을 가게된다. 결과적으로 기업의 입장에서는 마이너스인 것이다.
프로젝트가 원활히 진행되기 위해서는 다음사항을 고려하여 구성원간 충분히 공유하고 대화하여 최대의 효율을 낼 수 있도록 진행 되어야 한다.
무조건 이렇게 되어야 한다는 것은 아니며 필요없다고 생각하는 구성은 생략해도 된다.
1. 로컬개발환경
로컬에 웹서비스를 구성하고 개발자별 단위 테스트를 하는 것이 좋다. 이때 디비는 개발서버의 것을 사용해도 좋다.
2. SVN서버
로컬에서 개발된 소스는 팀원별로 SVN서버에 커밋하여 종합한다. 충돌이 나지 않는 것이 최선이지만 그렇게 되기는 힘들고 팀원간의 대화로 개선해 최소화 해나간다.
3. 개발서버
SVN서버에 종합된 소스를 개발서버로 옮겨 테스트 해야한다. 문제점이 발견된다면 팀원간의 회의로 해결할 수 있도록 한다.
4. 테스트서버
개발이 완료 되어 개발서버에서 문제가 없다면 별도의 테스트서버에서 QA(Quality Assurance) 를 진행해야 한다.
5. 폴더구성
프로젝트 구성원간에 동일하게 구성하는 것이 좋다. 폴더구성을 변수화 해서 다르게 갈수도 있지만 많은 폴더의 구조를 모두 변수화 하기에는 무리가 아닐까 생각한다.