2011년 11월 3일 목요일

프로토타입이란?

프로토타입 (경제/경영)

양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을 취할 경우 양자간에 서로 다른 이해를 가져올 수 있으므로 프로토타입이라는 의사소통도구를 만들자는 것이다. 프로토타이핑은 그 목적에 따라 여러가지 형태가 있다.

by 다음 백과사전 (http://100.daum.net)

소프트웨어 개발을 할 때 프로토타입은 여러 용도로 사용된다. 특히 고객과 스펙을 의논할 때 고객의 이해를 돕기 위해서 UI프로토타입을 만든다. 

이외에도 기술적인 검증을 위해서 프로토타입을 만들어 보는 경우도 있다.
스펙을 작성하다보면 이것이 가능할지 불가능할지 잘 모른 경우가 있다. 스펙이 이렇게 불분명한 부분이 가득하다면 십중팔구 프로젝트는 산으로 갈 것이다.

그래서 스펙을 쓰면서 나중에 코딩에 들어가기 전에 미리 한번 만들어보는 것이다. 이렇게 만드는 프로토타입은 되는지 안되는지만 검증을 하는 것이므로 최대한 간단하게 만든다.

회사의 코딩 규칙을 따르지도 않고
에러 처리도 제대로 하지 않고
주석도 달 필요가 없다.

제대로 개발하려면 1주일 이상 걸릴 것도 몇시간에 걸쳐서 되는지만 확인해보는 것이다.
그렇기 때문에 이때 작성한 소스코드는 버리는 것이다. 절대 재활용하면 안된다. 규칙도 따르지 않고 에러처리도 안되고 주석도 없는 코드를 재활용하는 것은 대단히 불안한 일이다.

이렇게 검증을 해나가면서 스펙을 적으면 프로젝트가 계획된 시간에 끝날 가능성이 점점 높아지게 된다.

그렇다고 모든 내용을 다 검증해가면서 스펙을 적을 수는 없다. 어떤 항목은 된다는 감을 믿고 그냥 적어야 할 때도 있다. 모든 것을 다 검증하면 비용과 시간이 너무 많이 들기 때문이다. 따라서 검증할 것을 적당히 조율하면서 어느정도 Risk도 감수를 하면서 프로젝트를 진행해야 한다. 이때 발생한 Risk는 별도의 Risk 관리를 통해서 제어를 해야 한다.

프로젝트는 "해봤더니 안되더라"가 아니다.
그렇다고 모든 것을 검증하면서 할 수는 더욱 없다.
적절한 프로토타입을 통한 검증과 적절한 Risk관리를 병행하는 것이 가장 효율적이다.

댓글 8개:

  1. 프로토 타입 코드는 가능성을 타진하는 것이니 품질에서는 상관없이, 오로지 가능성 타진에 초점을 둬야 하고, 그 때 쓴 코드는 절대로 재활용해서는 안되고, 폐기 처분 해야 한다!!!
    항상 이 말을 하는데도, 담당자들은 뭐가 아쉬운지, 재활용하려고 하네요... Copy & Paste 신공이 있는데 왜 못 쓰게 하냐고...

    "모든 로직은 네 머리 속에 있잖아... 너를 믿어..." 라고 말해줍니다.

    답글삭제
  2. 안녕하세요. 디밥님

    Copy & Paste는 지옥의 시작이라는 것을 알아야 하는데 말이죠.

    답글삭제
  3. copy & paste 와 reuse의 차이점이 무얼까 갑자기 고민이 들게 되네요 ㅎㅎ

    프로토타입이라고 해서 거기에 들어가는 라이브러리나 함수이름들이
    실제 개발시에 사용하지 않는것도 아니고 단지 예외처리부분이 빠졌을 뿐 실제 작성될 코드와 거의
    코어로직은 동일할텐데 다시 백지에서 부터 개발하라고 한다면
    개발자에게 조금 잔인한 처사 같은데요 ㅠ.ㅠ

    답글삭제
  4. 구차니님 안녕하세요.

    Copy & Paste의 진정한 지옥은 소스코드를 여기저기 복사해서 회사에 비슷한 소스가 여러벌 존재하는 것이죠.

    프로토타입은 버린다고 생각하고 만드는 것이지만, 그 Logic은 다시 쓸 수 있죠.
    그렇다고 프로토타입을 만들 때 복사해서 쓸 것을 예상해서 코딩 규칙도 지키고 제대로 하려면 시간이 더 많이 걸립니다.
    백지부터 타입을 하는 것은 아니죠. ^^
    가장 빠르게 검증 목적으로 만든 경우는
    기존 소스코드를 그대로 붙여 넣기를 할 수는 없고, 붙여넣더라도 함수이름도 다 바뀌고 90%는 바뀔 겁니다.
    프로토타입이 재사용이 충분히 가능하도록 잘 만들어졌다면 시간을 좀 많이 쏟은 것이 아닌가 생각해볼 필요도 있을 것 같습니다.

    답글삭제
  5. 저는 프로토타입을 꼼꼼하게 만드는 사람을 많이 봤습니다 ㅡ.-;;;
    프로토타입만드는데 변수명하나하나까지 고민하죠;;

    속으로
    "그 정성으로 주석이나 재대로 달라고!!!"
    라는 생각을 했습니다.

    답글삭제
  6. 프로토타입의 재사용에 대해서는 의견이 분분할 수 밖에 없을것 같습니다. 코딩을 많이 하다보면, 변수 이름, 함수 이름등은 당연히 다시 사용할만큼의 이름을 가질 것 같습니다. 코딩 규칙도 마찬가지구요. 주석이야 없을 수 있다고 하지만, 경험자에 의해서 잘 만들어진 프로토타입의 소스는 다시 쓸 가치가 있을 것 같습니다.

    꼭 버려야만한다고 생각하지는 않습니다.

    답글삭제
  7. 당근천국님 안녕하세요.
    동감입니다.

    답글삭제
  8. zelon님 안녕하세요.

    이분법으로 얘기하기 어렵지만 원칙은 있습니다. 이에 관련된 글을 한번 올릴께요.

    감사합니다.

    답글삭제