뱅크샐러드의 테크 스펙 정리

posinity·2023년 5월 4일
0

정의

기능을 구현하기 전에 이 기능을 어떻게 구현할 것인지 기술적으로 풀어 설명하고, 제안하는 글

왜 하는가?

  1. 커뮤니케이션 비용 절감 : 작업해야 할 내용이 클 때 테크 스펙을 쓰고, 마일스톤에 맞춰 하위 작업을 적어 커뮤니케이션을 도운다.

  2. 복잡한 일에 의도와 목적을 자세히 적어 일의 조율이 가능하게 한다

들어가는 내용

요약

테크 스펙을 세 줄 내외로 정의한다.
누가/무엇을/언제/어디서/왜 간략 명확하게

Bottom Navigation 영역(하단 탭)을 유저가 원하는 순서로 커스텀할 수 있게 합니다. 서버에 순서 정렬 및 저장 API를 요청할 수 없으므로, 순서를 로컬에 저장하고 불러옵니다.

배경

프로젝트의 내용을 적는다.
왜 이 기능을 만드는지, 동기는 무엇인지, 어떤 사용자 문제를 해결하려 하는지, 이전에 이런 시도가 있었는지, 있었다면 해결이 되었는지

다양한 탭을 사용하는 유저는 Segment에 따라 하단 탭의 노출 수와 사용 빈도가 다릅니다. 예를 들어, 20대와 30대의 추천 탭 노출 수 사이는 월 n만 정도입니다. 이러한 유저의 Segment에 맞춰 하단 탭 순서를 유저가 직접 커스텀할 수 있다면 뱅크샐러드가 개인화되었다고 인지할 수 있을 것입니다.

목표 (Goals)

예상 결과들을 Bullet Point 형태로 나열한다.
이 목표들과 측정 가능한 임팩트들을 이용해 추후 이 프로젝트의 성공 여부를 평가한다.

  • Bottom Navigation의 순서를 유저가 편집할 수 있게 한다.
  • 앱을 껐다 켰을 시에도 유저가 편집한 순서대로 하단 탭을 보이게 한다.

목표가 아닌 것 (Non-Goals)

목표가 아닌 것은, 프로젝트에 연관되어 있으나 의도적으로 하지 않으려 하는 것을 말한다.
Bullet Point 형태로 나열한다.
프로젝트의 범위를 명확하게 할 수 있다.

  • 사용하지 않는 탭의 삭제 기능 등 ‘순서 편집’ 외 하단 탭에 관련한 추가적인 기능 개발
  • 순서 정렬 및 저장 API 개발

계획

가장 긴 파트로, 준비한 모든 리서치, 준비 내용을 적는다.
어떻게 기술적, 엔지니어링적으로 접근할지 상세히 묘사한다.
결정하지 못한 부분은 어떤 것을 고려하고 있는지 목록화해서 적는다 > 리뷰어들이 올바른 결정을 내리도록 도움을 주게 된다.
사용자와 시스템 간의 시퀀스 다이어그램, 서비스와 API 간의 데이터 흐름 다이어그램, 데이터베이스 ERD, HTTP 응답 코드, JSON 요청 / 응답 포맷, 에러 명세 등을 포함할 수 있다

이외 고려 사항들 (Other Considerations)

고려했으나 하지 않기로 결정된 사항을 적는다.

앱 데이터 초기화 시에는 사용자가 커스텀했던 리스트를 모두 날리기로 했었으나, 기존 로직에서 앱 데이터 초기화 시에 로컬 관련 추가 핸들링이 없어 이 기능에서도 앱 데이터 초기화 때에 리스트를 날리는 등 추가적인 기능 구현을 하지 않기로 함.

마일스톤 (Milestones)

실험 계획, 배포 날짜를 포함해 최대한 자세히 적는다

~ 9/25: BPL 컴포넌트 개발
9/28 ~ 9/29: 실험 변수 추가, 로컬 변수 추가
9/30 ~ 10/4: 추석 연휴!
10/5: 하단 탭 확장 가능한 구조로 리팩토링
10/6 ~ 10/8: 비즈니스 로직 구현
10/12 ~ 10/20: 사용자 이벤트 부착 및 미진한 내용 보충
10/20: 2.45.0 코드 프리즈 (이때까지 내부 기능 테스트, 이벤트 로깅 테스트)
10/21 ~ 10/23: 2.45.0 릴리즈 QA
11/4: 2.45.0 Rollout

양식 템플릿 공유

https://docs.google.com/document/d/1nhozeUvJYKytE_b_9-YP4Fyw0wtykl9haCG4Wwjb9Ws/edit

출처

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

profile
문제를 해결하고 가치를 제공합니다

0개의 댓글