본문 바로가기
회고

[SoMa] 스프린트5 개인 회고

by 워냥 2024. 7. 22.

0. 회고를 시작하며

소마에서의 다섯 번째 스프린트가 끝났다.

5월부터 기획 및 PoC만을 해오던 우리가 본격적인 개발에 들어간 첫 스프린트였다.

 

첫 개발 시작이었던 만큼 초기 세팅이나 논의해야 할 내용이 많아 쉽지 않은 시간이었다.

이 기간동안 어떤 일이 있었는지 돌아보기 위해 회고를 작성한다.


1. 스프린트 목표

릴리즈 목표

이번 스프린트는 oopy로 호스팅되고 있던 노션 서비스를 우리가 직접 제작한 서비스로 릴리스하는 것이 목표였다.

노션 서비스를 이전하기로 결심한 이유는 크게 두가지다.

첫째, 로딩 속도가 느리다.

가장 큰 이유는 기존 페이지의 로딩 속도 문제이다.

 

노션 서비스를 먼저 제작한 이유는 고객의 반응을 검증하며 우리의 가설이 맞는지 확인하기 위해서였다.

하지만 서비스 자체의 속도가 느려 가설 검증에 어려움이 있었다.

 

우리 서비스는 다량의 사진과 동영상을 게시판 형식으로 보여줘야 한다.

하지만 oopy로 호스팅 한 노션 서비스의 경우 로딩 속도가 느려도 너무 느렸다.

원하는 항목을 골라 동영상을 로딩하기까지 걸리는 시간이 1분이 넘었다.

 

고객 인터뷰 중 우리의 서비스를 직접 사용해 보는 과정이 있었는데, 이때 로딩 속도가 너무 느리다는 피드백을 많이 받았다.

GA를 통한 지표 검증을 할 때도 우리의 가설이 잘못된 것인지, 속도 때문에 사용자가 사용하지 않는 것인지 알기 어려웠다.

 

속도 문제는 우리가 가설을 검증하는 과정에서 노이즈 요소로 작용하였다.

둘째, GA 분석이 어렵다.

사용자의 행동을 분석하고 가설 검증을 위해 GA(Google Analytics)를 적극적으로 활용하기로 했다.

하지만 당시 노션 호스팅 환경에서는 GA 이벤트를 넣는 것이 불가능했고, 결국 외부 호스팅 사이트인 oopy를 이용해 GA 이벤트를 넣기로 결정했다.

최근에는 노션이 업데이트 돼서 자체 호스팅에 GA 이벤트를 넣을 수 있게 되었다.

 

외부 서비스인 oopy를 이용하니 사용법이 미숙하기도 했고 GA 이벤트에 대한 자유도가 부족하다고 느꼈다.

사용자 행동 분석을 위해 우리가 원하는 대로 이벤트를 심을 수 있는 환경이 필요했다.


2. 일정 산정

빠르게 MVP 서비스를 릴리스하기 위해 7월 중순까지 출시를 목표로 하게 되었고, 스프린트 기간은 7월 2일부터 7월 15일까지 2주로 잡았다.

하지만 여러 이슈가 발생하며 릴리즈가 늦춰져 예상일보다 4일 늦은 7월 19일에 끝나게 되었다.

스프린트5 기간

왜 늦어졌을까?

결론적으로 우리가 초반에 예상했던 것보다 오래 걸리는 작업이 많았다.

백엔드 API 서버의 경우 간단한 CRUD 기능 정도일 것이라 판단하고 기간을 촉박하게 잡았다.

 

익숙하지 않은 새로운 기술의 도입

조회 성능 개선을 위해 CQRS 패턴 등 새로운 기술을 많이 시도하다 보니 막히는 부분이 많았다.

또한 한 번씩 클라우드 환경 배포 과정에서 오류가 생겨 이를 해결하는데 많은 시간을 사용하였다.

 

불명확한 기간 산정

스프린트를 시작할 때 예상했던 2주도 근거가 부족했다.

'이 정도면 2주로 충분하지 않을까?'라는 우리들의 감으로 내린 판단 하에 결정된 작업 기간이다.

 

부족한 문서 갱신

문서 갱신도 부족한 부분이 있었다.

작업을 진행하며 테이블의 ID를 Auto Increment에서 UUID로 바꾸기로 결정하였다.

하지만 ERD 문서에서 이 부분을 갱신하는 것을 놓쳤고, 다른 기능을 구현하기 위해 ERD 문서를 참고하다가 오류가 발생하게 되었다.

어떻게 개선하면 좋을까?

근거가 명확한 설계

설계 과정에서 막연한 가정으로 결정하게 된 것이 아쉬웠다.

'이 부분에서 조회 성능이 중요하니까 CQRS 패턴을 적용하자'라는 논리로 설계가 결정되었는데, 이후 DB 멘토링 결과 우리 서비스에서는 CQRS를 통한 반정규화까지는 필요 없고 인덱싱만 적용하면 충분하다는 피드백을 받았다.

결과적으로 우리는 잘못된 설계로 오버 엔지니어링을 진행한 것이 되었고, 시스템의 복잡도가 증가하여 프로젝트 기간이 늘어나게 되었다.

 

오버 엔지니어링을 막기 위해 앞으론 설계를 할 때 조금 더 명확한 근거를 가지고 진행하면 좋겠다는 생각이 들었다.

문제를 해결하기 위한 각 설루션의 개선 정도를 계산하고 이를 구현 난이도 + 유지 비용과의 trade-off를 고려하여 선택하면 좋을 것 같다.

 

물론 솔루션 별 개선 정도를 측정하는 과정이 쉽지는 않지만, 잘못된 설계로 인한 미래의 잠재적인 비용을 고려하면 충분히 시간을 써봄직하다고 생각한다.

 

스토리 포인트를 통한 명확한 기간 산정

기간 산정을 명확히 하기 위해서는 우선 우리 팀이 스프린트 기간 동안 사용할 수 있는 시간이 어느 정도인지 파악하는 것이 중요하다.

예를 들어 3인 팀이 주 5일 7시간을 일할 수 있다면, 그 팀은 일주일에 105 시간을 사용할 수 있는 것이다.

 

그리고 스프린트 플래닝을 진행할 때 각 티켓이 얼마큼의 시간이 걸릴지 팀원과 함께 플래닝 포커를 진행하여 대략적인 시간을 정의한다.

모든 티켓의 스토리 포인트 합이 우리 팀이 스프린트 기간 내에 사용할 수 있는 시간 내에 들어오는지 파악한다.

 

처음에는 이런 과정에 오차가 많을 수 있지만 프로젝트를 진행할수록 이 오차는 줄어든다고 한다.

이렇게 각 티켓에 대한 시간을 예상하며 근거 있는 기간 산정을 하면 좋을 것 같다.

 

주기적인 문서 갱신 확인

ERD나 API 명세 같은 팀에서 공유되는 주요 문서는 변경사항에 대한 즉각적인 갱신이 필요하다.

따라서 PR 체크리스트로 주요 문서 갱신을 확인하는 항목을 넣으면 좋을 것 같다는 생각이 들었다.

 

PR을 통과하기 위해서는 주요 문서에 대한 변경사항을 갱신했는지 확인하는 절차를 넣어, 주기적인 문서 갱신이 되도록 해봐야겠다.


3. 인프라 분야와의 만남

이번 스프린트에서 몇 개의 API와 이미지 및 동영상 업로드 파이프라인을 담당하게 되었다.

 

API 서버는 스프링으로 구축하였는데, 나는 소마를 시작할 때만 해도 스프링에 대한 기대감이 높았다.

그동안 개발 공부를 해오면서 스프링을 굉장히 써보고 싶었기 때문이다.

 

하지만 막상 개발에 들어가니 (아직 잘 몰라서 그럴 수 있지만) 코드를 복사 붙여 넣기 한다는 느낌을 많이 받았다.

기존 팀원이 작성한 코드나 ChatGPT가 작성해 준 코드를 그대로 사용하는 경우가 많았기 때문이라고 생각한다.

 

비디오 업로드 아키텍처

그에 반해 AWS를 이용한 업로드 파이프라인 설계는 굉장히 재미있게 하였다.

AWS에 있는 다양한 서비스를 조합하여 내가 원하는 기능을 만들어 내는 과정이 재밌었던 것 같다.

파이프라인을 제작하는 동안 개발 및 운영 환경 분리, 설정에 대한 형상 관리의 필요성 등 추가적인 학습을 하고 싶다는 열정이 생긴 것 같다.

 

여러모로 앞으로는 코드보단 인프라에 딥다이브하고 싶다는 생각이 많이 들었다.


4. Jira와 친해지기

소마에서 Jira를 처음 접하게 되었다.

실무에서 많이 사용된다는 이유로 시작했지만 처음에는 높은 자유성 때문인지 적응하기가 어려웠다.

 

에픽을 어떤 단위로 나눠야 하는지, 티켓은 어떻게 분리해야 하는지 등 무엇 하나 쉽지 않았다.

그래도 스프린트를 진행함에 따라 우리 팀만의 체계가 잡히게 되었다.

 

열심히 쓴 티켓 기록

 

Jira에 점점 익숙해지다 보니, 내가 맡은 티켓에다가 어떤 작업을 했는지 기록하는 과정에 재미를 붙이게 되었다.

기록을 더 잘하고 싶다는 마음에 정리도 열심히 하게 되는 것 같다.

 

아직 팀 차원에서 Jira 운영은 미숙한 부분도 좀 있지만 시간이 지나면 충분히 잘 사용할 것 같다.

궁극적으로는 각자가 무슨 작업을 하고 있는지 직접 물어보지 않아도 칸반보드만 보면 확인이 되는 정도까지 해보고 싶다.


5. 회고를 마치며

이번 스프린트는 첫 릴리즈를 한다는 목표가 있어서인지 팀원 모두 열정적으로 참여했던 것 같다.

나 또한 스프링, AWS 등 익숙하지 않은 환경임에도 빠르게 적응하려고 노력했고 좋은 결과를 내게 되었다.

무엇보다 인프라에 대한 흥미를 느끼고 미래를 그리게 되었다는 것이 가장 큰 성과인 것 같다.

 

하지만 기간 산정이 잘 되지 않아 휴일에도 나와서 작업을 하는 등 스트레스를 받는 상황 또한 존재했다.

아직 팀원끼리의 성향을 완벽히 파악하지 못한 부분도 있는 것 같다.

 

다음 스프린트에는 스트레스 관리나 팀원과의 싱크 맞추기 등 원활한 커뮤니케이션을 위해 노력해야겠다.

'회고' 카테고리의 다른 글

네이버 클라우드 인턴 1달 차 회고  (0) 2025.01.26
2024년 하반기 회고  (0) 2024.12.30
[SoMa] SW마에스트로 회고  (4) 2024.11.27
2024년 상반기 회고  (2) 2024.07.14
2023년 회고  (0) 2024.02.21

댓글