티스토리 뷰

요즘 계속 node.js 서버와 angular 클라이언트 시스템을 개발하느라 서브 프로젝트에 전혀 신경을 쓰고 있지 않은 상황이다. 어떻게 보면 역대로 기간대비 규모가 큰 프로젝트를 진행하고 있는 상황이라 시작할 때 기대도 많이 되었지만 부담이 없었던 것은 아니었다. 서버는 안드로이드, 아이폰 앱과도 연동이 되는 API 개발이 들어가야 했다. 말하자면 앱, 웹, 서버가 있고 웹과 서버는 내가 맡은 부분이었기 때문에 스크럼 방식으로 따지자면 나는 프로젝트 매니저 정도 되는 위치이다. 전반적인 프로젝트 관리 -- 특히 일정 관리나 요구사항 관리 및 인프라를 관리하는 -- 를 맡으신 분이 따로 계셨기 때문에 나는 비교적으로 클라이언트와의 직접적인 미팅이나 요구사항 관리를 하지 않아도 되어서 개발에 조금 더 집중을 할 수 있었다.

 

 

개발 기간은 정해져 있는데다 여유가 있는 것도 아니었기 때문에 앱과 서버, 관리가 개발이 병행되어야 했다. 물론 서버와 관리자는 모두 내가 맡았기 때문에 동시에 진행될 수는 없지만 어느 한 쪽을 완전히 완료하고 나머지 한 쪽을 개발하는 것이 아니라 모듈 단위로 왔다갔다하면서 개발이 가능하도록 프로세스를 짰다. 아무래도 둘 다 내가 독립적으로 개발할 수 있기 때문에 좀 더 유연하게 프로세스를 짤 수 있는 점도 있었다.

 

 

문제는 앱 개발을 어떻게 독립적으로 진행되도록 하느냐였는데, 기존 프로젝트와 가장 큰 차이이기도 했고, 내가 이번 프로젝트에서 가장 기대했던 부분이기도 한 앱과 서버 개발의 분리는 의외로 쉽게 해결이 되었다. 그 과정을 넘긴 지금에서야 쉽게 해결이 되었다고 말을 할 수 있는 것 같기도 하지만 해결방식이 간단하긴 했다. 바로 목업 서버를 사용하는 것. 물론 목업서버를 만들기 위해 목업 데이터를 만들고 공유를 하기 위해 문서를 좀 더 정리하는데 다른 프로젝트에 비해 시간이 좀 더 들기는 했지만 한번 제대로 만들어 두니 문서화하는 것도 편했고 (자연스럽게 api 문서를 업데이트하게 되었다) API와 목업 데이터를 만드는 과정에서 기능에 대해 좀 더 고민을 하는 시간이 생겨 실제 개발을 하면서 변경되는 사항을 줄이거나 개발시간을 단축하는 효과도 있었다. (얼마나 효율적이었는지는 잘 모르겠지만.. api 문서 없이 개발을 했던 때보다는 좀 더 성숙한 방식이었고, 프로젝트 추적성이나 유지보수적 측면에서의 장점도 있다는 생각이 들었다.)

 

 

목업서버는 처음에는 Postman을 사용했는데 Postman은 API의 문서도 생성해주기 때문에 아주 편했다. 다만 무료버전에서 공유가능한 API 개수가 25개 한정이고 목업 서버를 생성할 때 요청수를 1000번으로 제한했기 때문에 개발하면서 테스트하기에는 턱없이 부족했다. 유료 버전을 구매하기에는 무료로 된 목업 도구도 많은데 굳이 그래야 될까 해서 우선은 API 문서 공유용도로만 Postman을 사용했고 앱단에서는 각자 익숙한 목업도구로 테스트를 하는 방식으로 진행했다. Postman을 쓰면 테스트 수트도 제작이 가능한 것 같던데 서버는 TDD 방식으로 개발을 하고 있었기 때문에 따로 사용하지 않았다.

 

 

TDD 개발 방식은 초반에 보일러플레이트 작업이 안할 때에 비해 꽤 크기 때문에 부담스러운 부분이 있었는데 한번도 TDD 방식 개발을 해보지 않은 상황에서는 더더군다나 막상 시도하는게 리스크가 크게 느껴져 제대로 시작을 하게된건 작년 말부터였다. 사실 E2E 테스트는 아직도 사용하지 못하고 백엔드만 TDD 방식으로 테스트하는 중이다. 하지만 그 정도만으로도 개발을 하는게 안정적이라는 느낌을 많이 받는다. 개발을 하다보면 절대 처음 정의한 API대로 되지 않는다. 많은 API 수정과 DB 테이블 수정작업이 들어가게 되는데 수정될 때마다 의존성을 확인하는건 미친짓이기 때문이다. 개발이 완료되고 나서도 사용성테스트가 충분하기 전까지 불안했던건 그런 불안정성에 대한 이슈도 있었다. 물론 TDD를 한다고 해서 문제가 아주 없다는 것은 아니지만 적어도 최소한 내가 예상한 시나리오 내에서는 문제가 없다는 것을 검증할 수 있기 때문에 어떻게 보면 기능적 위력에 비해 정신적인 위안을 더 크게 느끼고 있는 것 같긴 하다. (하하)

 

 

아무튼 두서없이 요즘 진행중인 프로젝트 관리 이야기를 해보았다. 조금 더 정리가 되면 구체적인 프로세스 과정에 대해서도 기록을 해보고 싶다.

 

 

 

댓글