티스토리 뷰

실제로 프로젝트를 진행할 때, 프로토타입을 만든다는 이야기를 많이 합니다.
이런 프로토타입(prototype)의 사전적인 의미를 살펴보도록 하죠.

prototype  [출처 : 네이버영어사전]
━ n.
1 원형(原型)(archetype);견본, 전형;(후대 사물의) 선조, 원조(元祖)
   the prototype of a character (소설에서) 인물의 원형
2【생물】 원형(原形)
━ vt. …의 원형[견본]을 만들다

원형이나 견본이라는 의미로 주로 사용되고 있는데요..
프로그래밍에서는 언제 프로토타입(원형, 견본)을 만들어야 할까요?
당연히 이미 해봤던 것이나, 전체적인 로직과 흐름을 잘 알고 있으며, 구현이 가능한 것에 대해서는 프로토타입이 필요 없을 것입니다.
처음 시도해 보는, 이 기능이 구현될지 안될지.. 의심스러운 부분에 대해서 프로토타이핑을 해야 하지 않을까 합니다.

실용주의프로그래머란 책에서 다음과 같이 이야기 하고 있습니다.

프로토타이핑은 배움의 경험이다. 프로토타이핑의 가치는 만들어낸 코드에 있지 않고,
여러분이 배운 교훈에 있다.

몇몇 고객들이 잘못 이해하고 있는 것 중의 하나가
프로토타입이 완성되면 기능 구현이 완료되었다고 생각하는 경향이 있습니다.
물론 프로토타입이 제대로 만들어졌다면, 실제 구현에 있어서 개발속도나 기술구현에 큰 어려움은 없을 것입니다.

하지만, 위에서 이야기 했듯이 프로토타입의 가치는 학습에 있으므로…
프로토타입의 완료가 해당 기능의 완성이라고 보기에는 무리가 있다는 것이죠.
고객들에게 프로토타입에서 만들어진 코드는 폐기할 것이고, 불완전하며 완성할 수 없다는 사실을 분명히 주지시켜야 합니다.

또한 프로토타입에서 가장 중요한 요소는 바로 스피드라고 생각합니다.
물론 프로젝트 규모에 따라 다르겠지만 너무 오래 걸리는 프로토타입은 좀 생각해 봐야겠죠~~
최대한 빠르게 구현하고, 실제 필요한 기능들을 습득하는 것이 프로토타입이라고 생각합니다.

어쨌든 개발자에게 있어 프로토타입이라는 것은 매우 중요합니다.
실제 구현할 기능을 테스트해 보기도 하고~
새로운 기술을 배울 수 있으며..
향후 보다 안정된 프로젝트 진행을 할 수 있기 때문입니다.

다음은 프로토타입을 만들 때 무시해도 좋은 세부사항이라고 합니다.

Correctness : 적절한 Dummy Data의 사용
Completeness : 제한된 기능만을 사용
Robustness : 불완전할 수 있음
Style : 코드에 주석등이 필요하지 않음 (그러나 학습한 내용을 따로 문서화 하는 것은 의미가 있다고 봅니다.)

윗 부분에서는 개발과 관련된 부분의 프로토타입에 대해 이야기 했습니다만,
좀 더 내공을 키워 아키텍처 프로토타입까지 나아간다면
어떤 프로젝트의 진행에 있어서도 자신감을 가질 수 있지 않을까 생각합니다.

 

댓글
댓글쓰기 폼