brunch

You can make anything
by writing

C.S.Lewis

by Entangled Dimensions Mar 20. 2023

최소 기능 제품 (MVP) 만들기

첫 동작

https://brunch.co.kr/magazine/realworldcanvas


현실 세계의 이미지 스트리밍 위에 그림을 그리는 앱을 구상하고선, 맥북 구입 후 Apple Developer 등록 및 Xcode 환경 구축을 마쳤다. 필요한 준비물은 갖춰졌으나, 막상 시작하려고 보니 조금 막막한 기분이 들었다. 마지막으로 iOS 프로그래밍을 한 지 10년이 넘었고, 그 사이 낯선 언어인 Swift가 도입되었다. 또한 그 사이 iOS 그래픽스 API인 Metal이 출시되어 쓰이고 있다는 것도 알게 되었다. 그러다 보니 자연스레 공부가 필요하다는 생각이 들었고, 처음 머릿속에 떠올랐던 계획은 다음 단계를 차근차근 밟아보는 것이었다. 


1. iOS 앱 개발을 위한 책을 하나 사서 공부해 본다. 

2. Swift 언어 문법책을 정독한다. 

3. iOS에서 Graphics 사용을 위해 만들어진 Metal을 깊이 공부한다 (OpenGL, Vulkan을 써 본 경험은 있으나 Metal은 처음이었다.)

4. 오픈소스 드로잉 앱인 MaLiang의 소스 코드를 하나하나 뜯어보며 작동 원리를 파악한다. 


하지만 이렇게 공부를 한 뒤에 작업을 시작하면 기약이 없다. 그 사이 지쳐서 작업 자체에 흥미를 잃을 수도 있고, 또 꼭 필요하지 않은 부분을 공부하느라 시간을 허비할 수도 있다. 배경 지식이나 숙련도가 갖춰지길 기다리기보다는, 스타트업 업계에서 흔히 말하는 최소 기능 제품 (Minimum Viable Product)을 만들어내 보는 것이 어떤 종류의 프로젝트에서든 중요하다고 생각한다. 아주 단순한 기능 만을 가지고 있더라도 실제로 동작하는 프로그램을 확보한다면, 상상만 하던 것을 구체적으로 체험해 볼 수 있고 무엇보다 앞으로 더 나아가도록 만드는 큰 원동력이 된다. 그래서 공부에 시간을 쏟고 싶은 유혹을 애써 잠재우고, 다음의 순서로 일을 진행하였다. 


1. 오픈소스 드로잉 앱 MaLiang를 빌드한 후 써보면서 기능을 파악한다. 

2. 카메라 프리뷰를 보여주는 기능을 구현하거나 오픈소스 코드를 확보한다. 

3. 1번과 2번을 결합하여 카메라 이미지 위에 그림을 그릴 수 있는지 확인한다. 


곧바로 위의 작업에 착수하여, 생각보다 훨씬 빠른 일주일 정도 만에 상상하던 앱의 초기 버전이 구현되었다. 물론 iOS 프로그래밍 경험이 있었고, 어느 정도 Graphics 프로그래밍에 대한 지식이 있었기에 가능한 일이긴 하지만, 배경 지식 공부에 시간을 오래 쏟지 않은 것은 무척 잘한 일이었다. 실제로 동작하는 앱을 마주하니 어렴풋이 추측하고 상상했던 내용들이 선명해지고, 생각하지도 못했던 문제들을 발견했기 때문이다.  

앱의 첫 작동 버전. 주황색 글자들을 써 보았다! 책상 위에서 작업하다 보니 아이패드 카메라 시야에는 보통 키보드가 잡혔다. 

화면에 보이는 카메라 이미지에 애플 펜슬을 대어 선을 그으니 그대로 그어졌을 때, '실제로 되는구나!' 생각이 들며 무척 가슴이 뛰었다. 그냥 선을 하나 그었을 뿐인데, 하얀 캔버스에 그릴 때와는 다른 굉장히 묘한 느낌이 들었다. 그리고 기쁨도 잠시, 해결해야 할 문제들이 하나둘씩 파악되기 시작하였다. 


- RGB 개별 슬라이드로 색을 선택하는 방식은 너무 불편하다. 편리한 Color picker를 추가해야 한다. 

- 현재 프로그램은 레이어 기능을 제공하지 않지만, 최소한 2~3개의 레이어는 지원할 수 있어야 좀 더 편하게 그림을 그릴 수 있을 것 같다.  

- 그림을 그리기 위해서는 아이패드가 정확히 고정되어 있어야 하며, 그림을 편하게 그릴 수 있는 카메라 구도가 매우 한정적이다. 

- 현재는 카메라 화면이 앱 전체를 가득 채우고 있다. 따로 캔버스 영역을 지정하고 그 안에 카메라 이미지를 띄우는 방법을 찾아야 한다. 


이제부터 차근차근 하나씩 해결해나가 보자. 









매거진의 이전글 프로젝트를 시도해 봐도 괜찮을까
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari