프로젝트의 설계와 완성까지

hyerin·2024년 9월 1일

우테코에서 레벨 3이 되면서 '방끗' 이라는 프로젝트를 진행했다. 방끗은
다음과 같은 서비스이다.

방을 구할 때 쉽게 체크리스트를 작성할 수 있는 서비스 

이미 이 프로젝트는 완성 후 시연까지 완료한 상태이다. 중간중간 기록을 했으면 베스트였겠지만, 구현과 완성에 치중한 나머지 기록을 하지 못했다.😅

사실 이미 너무 회고하기에 너무 늦은게 아닐까..? 라는 생각이 들기도 한다. 하지만 내가 좋아하는 박명수 아찌의 말을 되새기면서 조금이라도 기억에 남을 때 하는 것이 좋을 것 같다.

다 게으른 나의 업보라고 생각하고, 다시 그 과정을 하나씩 되새기면서 오랫동안 멈춰왔던 나의 블로그의 엔진을 다시 돌려보고자 한다. 또한 프로젝트를 시작하려는 사람이 이 글을 읽고 조금이라도 도움이 되기를 바라며 글을 써보고자 한다.

우선 8주라는 시간동안 이 프로젝트를 어떤 과정으로 완성했는지, 간단하게 정리해보고자 한다.
프로젝트는 각 2주동안 진행되는 4번의 스프린트로 진행되었다. 각 스프린트 때 진행한 내용은 다음과 같다.

1차 스프린트 (7/2 ~ 7/12)

☀️ 1차 스프린트때 한 일

  • 프로젝트 기획
  • 팀 문화 세우기
  • 유저 시나리오 생성 및 기능 명세 작성
  • webpack 기반의 환경 프로젝트 기본 환경 세팅

아이디어 회의

1차 때 가장 시간을 많이 쓴 것은 아무래도 기획이다. 우리 팀은 다행히도 미리 팀원들이 아이디어를 생각해와서, 첫날부터 아이디어를 정하고 진행할 수 있었다. 치열한 아이디어 공방전 끝에, 다음과 같이 부동산을 구할 떄 필요한 체크 리스트를 보여주는 사이트로 아이디어가 정해지게 되었다!

나도 아이디어를 2-3개 정도 준비해 갔지만, 해당 아이디어가 재밌을 것 같았다. 비록 집 구해본 경험이 없었던 나였지만, 집을 구할 때 어려움을 느꼈던 팀원의 문제에 공감이 갔고 팀원들 중에 자취하는 사람들이 무려 5명이라 안심하고 해당 주제에 찬성했다!

주제가 정해지고 나서는 밑과 같이 간단하게 아이디어 스케치도 하고 필요한 기능 목록들을 정리하기 시작했다.

(초창기의 우리 팀의 마스코트의 방긋이는 좀 무섭게 생겼다..ㅋㅋ)

지금 생각해보면 반영이 된 아이디어도, 안된 아이디어도 있지만 초반의 아이디어 루트를 많이 따라간 것 같다. 확실히 현재의 '방끗' 이 되기 까지는 기존의 치열한 기획 회의를 많이 거친 덕이 가장 큰 것 같다..😁

브랜치 & PR & 이슈 전략

우리는 gitflow 브랜치 전략을 차용하여 다음과 같은 브랜치 전략을 만들었다.

우선 작업을 하려면 다음과 같이 이슈를 하고, 해당 기능 브랜치는 이슈 번호를 붙여서 만든다. 예를 들어 체크리스트 페이지 퍼블리싱 이라는 기능을 해야 한다면, 해당 기능을 이슈로 파고 (#1)
기능에 맞는 브랜치를 만들어 작업한다. (feature/1-checklistStyle)

실제로 우리 프로젝트에 존재하는 브랜치들이다. 브랜치 명만 보아도, 해당 기능의 이슈 번호와 내용, 성격을 알 수 있어서 정말 편리한 방법이었다.👍

또한 이슈와 PR 제목은 앞에 BE/FE 를 적고 완성형 문장 으로 적기로 하였다. 이것은 내가 건의했는데, 처음에는 팀원들이 어색해했지만 하다보니 가독성이 호평했다. 또한 라벨을 붙여 해당 PR 의 성격을 바로 알 수 있도록 하였다.

또한 깃허브의 projects 기능을 사용해서, 현재 프로젝트의 진행 상황을 파악했다. 하지만 다른 컨벤션에 비해 이는 팀원들이 모두 익숙해지는데 시간이 걸렸다. 아무래도 이슈와 PR 을 투두 리스트로 같이 활용하는 방식에 대해 익숙하지 않아서인 듯 하다.

나중에 규모가 큰 프로젝트를 한다면linear 를 사용해서 이슈 관리를 하는 것이 좋겠다는 생각이 들었다. 예전에 linear를 사용해서 battleTalk 이라는 프로젝트를 만들었을 때 매우 편리했었기 때문이다.

가장 후회되는 것 - 핵심 기능 정리

새로운 프로젝트를 기획할 때 가장 중요한 것이 무엇일까? 많은 것들이 떠오르겠지만, 내가 '방끗' 프로젝트를 하면서 느낀 것은 핵심 기능 정리 만큼 중요한 것이 없다는 것이다. 핵심 기능이란 여러개가 아닌 딱 하나, 우리가 이 서비스를 통해 사용자에게 어떤 가치를 전달하고 싶은가? 이다.

우리 방끗 팀도 이에 대해 많은 고민을 했었고, 중간부터는 욕심이 점점 많아져 다른 새로운 기능 아이디어들이 추가되면서 길을 잃기도 했었다.

우리는 다음과 같은 서비스를 기획했는데

방을 구할 때 쉽게 체크리스트를 작성할 수 있는 서비스

회의를 거듭하고 시간이 지나고 보니

방을 구할 때 쉽게 체크리스트를 작성할 수 있는데,
지도에 매물별로 다른 사람들의 체크리스트도 확인할 수 있고,
그 매물에 대한 다른 사람들의 실거주 후기도 볼 수 있는
아주 다양한 기능을 제공하는 서비스

위와 같은 기획 목적을 파악하기 힘든 서비스가 되어 버렸다.
이에 대해서 팀끼리 많은 고민을 하고, 코치들과 의견을 많이 주고 받은 결과
우리의 기획 목적인 방을 구할 때 도움을 주는 체크리스트 기능 에 집중하기로 했고,
지금의 방끗이 탄생한 것이다.

사실 우리끼리도 이것이 최우선 과제라는 것을 무의식중에 알고 있었다. 바로 처음 기능으로 정의한 것이 방을 구할 때 도움을 주는 체크리스트 기능 이었으니까...!!

위와 같이 체크리스트에 들어갈 질문들을 많이 고민했는데, 우리의 서비스의 가치는 이 체크리스트의 질문의 퀄리티에서 결정이 된다고 생각했기 때문이다.

지금 생각해보면, 이 기능에 대해 생각하고 회의한 시간은 아깝지 않은데, 이 외에 기능에 대해 얘기한 시간이 너무 아깝다..

만약 프로젝트를 기획하거나, 처음 아이디어 스케치 단계에 있는 분이 계시다면

어떤 가치가 사용자(소비자)에게 전달할 최우선 가치인가? 에 대해서 잘 생각해보시면 좋을 것 같다.

그 외에 욕심이 나는 것들은 최우선 기능을 잘 만든 다음에, 기획해도 전혀 늦지 않기 때문이다!!

profile
글쓰기의 시작은 나를 위해, 끝은 읽는 당신을 위해

0개의 댓글