본문 바로가기

etc

SSAFY 2학기 공통 프로젝트 회고

7주간의 공통 프로젝트 기간이 끝났다.

 

부족한 실력이지만 팀의 백엔드 리드가 돼서 공수 기간에 맞춰 MVP를 정한 뒤, 각 팀원이 하나의 기능을 전담할 수 있도록 초기 문서화를 진행했다.

또한, 인프라를 관리하고 merge conflict 시 상황별 해결책들을 제시해 주면서 통해 팀원들이 목표로 했던 spring 스택의 숙련도 향상, 깃을 통한 협업 능력 향상을 할 수 있도록 했다.

 

결과는 꽤 성공적이었다. 예상했던 것보다 MVP 구현이 2일 빠르게 끝났고, 시연도 매끄럽게 진행됐다. 특히 초반부 브랜치 병합 등에 대해 어려움을 겪었던 팀원들이 후반부에선 내 도움 없이 매끄럽게 진행했다.

 

물론, 병합 과정에 자신이 붙은 나머지 잘못된 코드들이 병합되던 문제도 있었지만, 그런 문제를 해결하는 것이 리더로서 내 역할이었기에 크게 문제는 없었다.

성공적으로 끝난 프로젝트

초기 문서화 작업은 비용이 아닌 투자다

백엔드 리드겸 서기를 맡아 팀의 전반적인 문서화를 책임졌다.

뱅크샐러드에서 운영하는 테크 스펙 문서를 적용해 팀원들이 갖는 혼란을 최소화했다.

https://blog.banksalad.com/tech/we-work-by-tech-spec/

 

뱅크샐러드의 특별한 스펙, '테크 스펙' | 뱅크샐러드

blog.banksalad.com

 

이 과정에서 기획이 1주 더 진행됐지만, 서로가 목표를 다르게 이해한 것을 조율한 과정이었다.

또한, API 문서에선 Notion Memeraid를 통해 시퀀스 다이어그램을 그려 데이터 흐름을 시각화했다.

시퀀스 다이어그램 일부

프로젝트의 전반적인 기획을 모두가 이해한 결과 온전히 개발에 집중할 수 있었고, 예정보다 2일 빨리 끝낼 수 있었다.

예제를 이해하고 커스텀하는 것도 중요하다.

개발 기간 4주 중 마지막 1주를 통합 테스트 기간으로 정했기 때문에, 실제 개발 기간은 3주로 상당히 빡빡한 일정이었다.

내가 메인 리드였기 때문에 가장 어렵고 중요한 WebRTC 환경을 만들어야 했지만, 관련 경험이 없단 것이 리스크였다.

다행히도, 이를 도와주는 openVidu 라이브러리를 알게 됐고 튜토리얼 환경을 빠르게 구축했다.

 

하지만, 튜토리얼 기능들은 필요한 모든 것을 제공했지만 우리 서비스에 맞지 않은 형태였다.

다른 예제 코드들을 보고 원하는 기능이 나오는 테스트 코드들을 만들어, 우리 프로젝트에 맞는 형태로 바꿀 수 있었다.

향후 계획

이번에 WebRTC란 고급 스택을 사용하면서, 해당 부분 MVP를 최소한으로 잡았음에도 많은 노력이 필요했다.

다음 프로젝트는 이것보다 더 고급 스택을 사용하기 때문에 어떻게 MVP를 축소할지에 따라 성공 유무가 갈릴 것 같다.

 

다행히 팀원들이 1학기에 같이 공부를 했던 친구들이고, 내 우려를 알고 있기에 메인 스택 MVP를 축소하는 것에는 동의했다. 게다가 서로의 성향과 원하는 것이 일치하기 때문에 간단히 즐길 수 있는 서비스를 개발해 SSAFY 활동이 끝나고도 서비스할 수 있도록 하는 것을 목표로 하고 있다.