본문 바로가기
Books/실용주의 프로그래머

프로토타이핑과 예광탄

by softserve 2023. 1. 10.
반응형

1. 프로토타이핑을 통해 학습하라

프로토타입(Prototype)이란 완제품을 만들기 전에 특정 기능이나 외관 등에 대해 시험할 용도로 만들어지는 견본품을 말합니다. 다른 분야에서도 흔히 사용되는 방법입니다. 제품을 찍어내기 전에 하나를 먼저 만들어보고 문제점을 발견, 개선하여 비용을 줄이기 위해서죠.

개발을 할 때에도 프로토타이핑은 유용합니다. 프로토타이핑을 통해 제품에 대한 사용자의 반응과 요구 사항을 미리 파악할 수 있어, 이미 완성 단계에 이르른 프로젝트를 뒤엎어 버리는 불상사를 방지할 수 있습니다. 

프로토타이핑의 대상이 되는 것은 프로토타입을 통해 시험하고 싶은 모든 것입니다.

보다 구체적으로 아키텍쳐, 새로운 기능, 외부 데이터, 써드파티 도구나 컴포넌트, 성능, UI를 프로토타이핑을 통해서 조사해볼 수 있습니다. 아키텍쳐 프로토타이핑에서 규명할 사항으로는 주요 컴포넌트 각자의 책임과 협력관계, 결합도와 중복, 인터페이스 정의와 제약사항 및 모듈이 데이터에 접근할 수 있는지 여부 등이 있습니다.

프로토타이핑의 이점은 조사해보고 싶은 것만을 구현하고 나머지는 신경을 쓰지 않아도 된다는 점입니다. 따라서 정확성, 완전성, 안정성, 스타일과 같은 세부사항은 프로토타이핑 단계에서 무시할 수 있습니다.

프로토타이핑은 수단에 구애받지 않고 실행할 수 있습니다. 가장 간단하게는 포스트잇만으로도 시스템의 로직에 대해 점검해볼 수 있고, 실제로 개발할 언어가 아닌 다른 고수준 언어(파이썬 등)로 쉽게 구현해볼 수 있습니다.

주의할 점은 특정 측면에 대한 조사가 끝난 뒤에 프로토타입은 폐기되어야 한다는 점입니다. 나무로 자동차의 모양을 만들어 볼 수는 있겠지만 굴러가지는 않죠. 굴러가도록 만들었다한들 그걸 끌고 도로로 나가려면 많은 용기가 필요할 겁니다. 

나무 자동차를 타고 러시아워에 운전할 수는 없다.

 

2. 목표물을 찾기 위해 예광탄을 써라

예광탄(tracer bullet)은 주로 신호용으로 사용되며 빛을 내는 탄입니다. 실탄을 쏘기 전에 예광탄을 발사하여 탄도를 확인할 수 있습니다. 이 책에서 소개하는 예광탄이란 본격적인 개발을 시작하기 전에 미리 예광탄 코드를 만들어봄으로써 즉각적인 반응을 얻을 수 있는 개발 방법을 말합니다.

예광탄을 통해 개발자들이 들어가서 일할 수 있는 구조가 만들어지므로 생산성, 일관성이 높아질 수 있다고 합니다. 아무것도 없는 상태에서 개발을 시작하는 막막함을 해소할 수 있고, 통합 작업을 수행할 기반이 생긴다는 것이죠.

또, 진행 상황에 대해 가시적으로 알 수 있을 뿐 아니라 사용자들에게 직접적으로 보여줄 수 있는 어떤 것이 생기게 됩니다. 이런 점에서 프로토타입과 유사한 것처럼 보이지만 앞서 본 것처럼 프로토타이핑은 시스템의 특정 측면을 테스트해보고 폐기하는 코드 또는 포스트잇 등의 수단을 말하는 반면, 예광탄은 각 요소들의 상호작용을 파악하고 전체 시스템의 골격을 만드는 것입니다. 이 예광탄 코드에 기능을 채워넣기만 하면 시스템이 완성되는 것이지요. 예광탄은 폐기되지 않고 그대로 남아서 시스템의 뼈대를 이루게 됩니다.

예광탄이 항상 목표에 맞는 것은 아닙니다. 하지만 더 적은 비용과 빠른 속도로 새로운 버전을 내놓을 수 있고, 이렇게 조준을 옮겨가며 프로그램의 완성도를 높여나갈 수 있다는 것이 이 개발 방법의 이점이라고 할 수 있습니다.

반응형

댓글