[T.Viewer 개발일기] 6. PoC를 먼저 해보자 나의 경험담 2020. 6. 27. 17:37

PoC는 Proof of Concept 의 약자로 개념을 증명한다는 뜻으로, 일반적으로 프로토타입을 만들어 보는 것과 비슷하다. 비슷하지만 다른 개념이고, MVP라는 개념도 가끔 혼용되어서 막 사용되는데, 셋다 기본적인 목적은 동일하다. 프로젝트에서 중요한 부분을 실제 개발에 앞서 확인해 보고자 함이다.

PoC. Prototype, MVP에 대한 차이는 아래 포스트를 참고하면 좋을듯.
POC,Prototype, MVP를 구별하여 사용하자!

T.Viewer Project에서 PoC

나는 프로젝트를 진행하면 꼭 PoC를 가장 먼저 해본다. 프로젝트를 진행할 때, 어려움이 예상되는 부분, 가장 핵심적인 부분에 대해서 PoC를 진행해야 다음 UX나 기획단계의 내용들을 재작업하지 않고 진행할 수 있다.

PoC는 사실 특정 컨셉에 대해서만 확인을 하면 되는데, PoC 하면서 앞으로 구현 단계에서 겪게될 어려움도 함께 추측할 수 있는 경험을 얻을 수 있다. 이 과정을 거치면서 얻게된 경험은 일정이나 리소스 산정에 큰 도움이 된다. 간단할 것이라 생각했던 것이 들여다 보니 어려운 경우 또는 그 반대의 경우가 허다하기 때문이다.

T.Viewer 에서는 SDB를 별도의 프로세스로 실행시키고, 그 sdb dlog의 출력을 IPC를 통해서 UI를 담당하는 프로세스로 전달하는 것에 대해서 진행하였다. 당연히 될 것 같은 기본적인 동작이지만, electron는 처음이라, 자식 프로세스를 생성해서 IPC를 주고받는 것을 한번 구현해보는 경험이 되기도 했다.

nodejs에서와 같이 자식 프로세스를 생성하면 되었고, IPC는 electron에서 제공하는 ipcMainipcRenderer를 사용하였다. 사용 방법이 익숙치는 않았지만, 샘플이 많이 있어서 코드를 보고 금방 이해할 수 있었다.

ipcMain: Communicate asynchronously from the main process to renderer processes. electron ipcMain

간단하 PoC라도 가능하면 Test Case도 구성하고, 코드도 재사용 할 수 있도록 구현한다. 어차피 만들거 쓰고 버릴게 아니라 또 쓸 수 있게 만들면 더 좋으니까. 손이 많이 들어가지 않는 범위에서 가능한 제대로 구현해서 PoC를 진행하였다.

결과를 정리하기

보통 PoC를 하고 나면 코드를 다 날려 버리는 경우도 있던데, PoC도 하나의 과정이고, 공식적인 산출물을 내서 정리되어야 하는 작업이다. PoC를 진행한 후 과정과 결과를 정리하고, 코드 역시 별도의 브랜치나 파일로 정히하는 것이 좋다.

기본적으로 모든 일에는 산출물이 있다. 설사 그것이 무형의 지식이나 경험일 될 지라도 정리해두는 것이 중요하다. 다시는 안 볼 쓰레기를 만드는 것은 아닌가 의문이 들 수도 있겠지만, 종종 아주 유용하게 잘 쓰인다. 누가 어떤 것에 대해서 조사를 했고, 결과가 어땠는지. 몇명이 함께 아이디어 회의를 했는데, 결과가 어땠는지. 소소한 것들이지만 요긴하게 쓰일 일들이 꽤 많다.

일정을 관리할 때도 좋고, 회고 할 때도 요긴하게 사용된다. 시간이 지나고 "내가 뭘했더라..."를 반복하다가는 "아, 맞다. 또...ㅠ"를 반복하게 될 수 있다.ㅎ 꼭 관리에만 요긴하게 사용 되는 것은 아니다. 정리해 놓은 것들을 공유하고, 다시 살펴보는 과정에서 새로운 아이디어를 얻을 수도 있고, 다음 프로젝트나, 다음 phase 업무를 진행할 때 영감을 얻기도 한다.

나는 poc라는 브랜치에 코드와 내용을 함께 남겼다. 간단하게.ㅎ

https://github.com/msaltnet/T.Viewer/tree/poc

마치며

조금 오래 쉬었던 것 같다. 연말이라 더 바빴던 것도 있고, 여러 가지 개인적인 일도 있어서 오랫만에 T.Viewer 프로젝트에 신경을 쓰게 된 것 같다. PoC 결과를 코드와 md 파일로 정리했지만, 업무 관리도 깃헙의 Project 기능을 사용해 볼까 한다. 가능하면 깃헙 저장소 하나로 이 프로젝트의 모든 정보를 모아보는 것도 좋을 것 같아서 시도해 볼까 한다.

Project에는 지금 내가 하고 있는 일들이 무엇인지, 앞으로 할 일이 무엇인지 정리가 될 것이고, 틈틈이 번뜩번뜩 떠오른 잊지말고 해야 할 일도 정리해 두려 한다. 코드에 TODO 잔뜩 넣는 일은 좀 피해보자.ㅋ

정리하며

이 글은 1월에 작성해두고 이제서야 올리게 되었다. ipc통신 이외에 text editor등을 사용한 poc가 추가로 진행되면서 늦어진 것도 있지만, 무엇보다 회사일이 바빠서 손을 못대고 있었다.ㅎ