2009년 2월 5일 목요일

깨끗한 개발 환경, 빌드 환경, 테스트 환경

개발, 빌드, 테스트 환경을 별도로 두지 않고 그냥 개발자 PC에서 수행하는 경우들이 많습니다.
이렇게 되면 자칫 빌드 시 개발 환경에 영향을 받아서 의도하지 않는 문제가 발생할 수 있습니다.
따라서 개발, 빌드, 테스트 환경은 각각 어떻게 구성을 해야 할지 미리 정하고, 그에 따라야 합니다.

일반적인 경우 빌드는 깨끗한 환경에서 항상 원하는 빌드를 만들어 낼 수 있도록 하며, 테스트는 스펙에서 요구하는 테스트 요구사항에 따라서 각각의 테스트 환경을 구축해야 합니다. 여러 플랫폼을 지원하는 경우 테스트 환경 구축이 아주 복잡하고 비용이 많이 들기도 합니다. 테스트 환경에 대한 이해는 많이들 하고 있다고 가정하고, 빌드 환경에 대해서 조금 더 얘기를 해보고자 합니다.

빌드가 무엇인지 먼저 얘기를 해보죠. 개발자 Visual Studio나 Eclipse 같은 IDE을 이용해서 빌드하는 것은 여기서 말하는 빌드는 아닙니다. 여기서 말하는 빌드는 공식 빌드입니다. 공식 빌드는 Release를 위해서 빌드하는 것을 말합니다. 개발자들이 하는 빌드는 그냥 개발의 일부이죠.

많은 개발자들이 자신의 개발 환경에서 그냥 빌드한 결과물을 묶어서 제품을 만들어 고객에게 전달하곤 합니다. 그렇게 되면 IDE의 빌드 설정에 따라서 빌드의 결과가 달라져서 예기치 못한 문제가 발생하기도 하고, 개발자가 퇴사하고 새로운 개발자가 빌드를 하려고 하니 빌드가 안되기도 합니다. 또는 개발자 PC의 환경에 영향을 받아서 개발자 PC에서는 잘 동작했으나, 고객의 환경에서는 문제가 발생하기도 합니다.




각각의 환경의 관리는 개발팀, B/R팀, 테스트 팀이 맡고 있고 함부로 건드리지 못합니다. 

지금까지 이러한 구분없이 개발을 하고 계셨다면 혹시 이로 인한 문제는 없었는지 생각해보세요. 없었다면 정말 운이 좋은 겁니다. 시스템이 점점 커지고 고객이 많아지는데도 계속 운만을 바랄 수는 없겠죠. 

댓글 6개:

  1. Dev bed, RC bed, test bed 의 구분도 없이...
    RC나 test bed에 직접 컨펌하고... 하는 프로세스를 겪어 본 적이 있습니다.

    끔직하더군요... 처음엔 번거로운 것 같지만 소프트웨어를 개발하는 데 필수적인 요소라고 생각합니다 :-)

    답글삭제
  2. 막 뜨끔뜨끔합니다.. ㅠㅠ

    답글삭제
  3. Noel님 안녕하세요.
    XX회사인데요. 실제 운영서버에서 테스트하고, 개발자PC에서 빌드하고 하는 회사도 본 적있습니다. 그리고 왜 문제가 되는지 이해 못하는 회사도 있습니다.

    답글삭제
  4. kkommy 님 안녕하세요.
    원칙을 소개해 드린 것이니, 그렇지 않고 아직 문제가 터진 적이 없다면 문제가 생기기 전에 대비를 하는 것이 좋겠습니다. 그리고 문제 때문만이 아니고 이렇게 하는 것이 더 효율적입니다.

    답글삭제
  5. "XX회사인데요. 실제 운영서버에서 테스트하고, 개발자PC에서 빌드하고 하는 회사도 본 적있습니다. 그리고 왜 문제가 되는지 이해 못하는 회사도 있습니다."
    현재 있는 회사가 그렇습니다. 나름 서비스 및 솔루션 회사라 QA 수준의 테스트가 필요한데, 말 그대로 진흙탕 입니다. 현재 입사한지 얼마 안되었죠. 입사 후 개발 및 배포에 관한 것을 보고 한숨이 나오더군요. 복합적인 문제로 인해 된 것은 알겠지만, 과장급 개발자 급에서도 어떠한 인식도 없습니다. 개선도 없을 것 같구요. 팀 분위기도 너무 방어적이며 공격적이구요. 간단한 것에 대해 개선 혹은 제안해도 생각조차 하려 들지 않습니다. 얼마나 해결할지를 넘어서 얼마나 버틸지 부터 걱정되네요.

    답글삭제
  6. deneb님 안녕하세요.
    deneb님이 바꿔나가야겠네요. 도움이 필요하면 연락주세요. 감사합니다.

    답글삭제