집사의고민 2, 3차 데모데이 회고

Retrospective of the 2, 3st Demo Day

2, 3차 데모데이 회고를 해보려고 한다. 왜 2주 차는 회고를 안 했냐고 하면 그동안 많이 바쁘기도 했고 무엇보다도 기획이 아직 확실하게 안 잡혔었기 때문에 회고를 남기기 애매했다. 2차 데모데이 발표를 내가 했지만 기획에 대해 많이 의문이 안 풀린 상태였다. 그래도 3차 데모데이를 기반으로 기획과 방향성이 잘 잡혀서 지금에서야 제대로 회고를 하게 되어서 다행이다ㅎㅎ 2, 3주 차 동안 어떤 해프닝들이 있었는지 한번 살펴보자


2차 데모데이

1차 데모데이 후 변경 점

1차 데모데이 때 구현할 기능으로 식품 상세나 소셜 로그인에 대해 얘기를 했었는데 이를 구현하지 않고 우선순위를 미뤘다. 우선 서비스의 핵심 가치를 잡는 게 우선이라고 생각했기 때문이다. 1차 데모데이 PPT에는 맞춤 리뷰에 초점을 맞춰서 발표 자료를 작성했었는데 끝나고 나서 회고를 해보니깐 사실 우리 서비스 핵심 가치는 사용자가 원하는 식품을 찾을 수 있게 도움을 주는 것이고 이 맞춤 리뷰는 그를 위한 부가적인 기능에 불과한 것이라고 생각했다.

사실 맞춤 리뷰는 다른 서비스와 차별을 주기 위한 기능이었는데 1차 기획을 할 때 다른 서비스와 어떻게 차별을 줄 수 있을까에 관심을 가지다 보니깐 그쪽으로 포커싱이 되었던 것 같다. 결국 맞춤 리뷰는 식품을 찾는 데 도움을 줄 수 있는 부가적인 정보일 뿐 우선 식품을 찾는 것에 집중하기로 했다.

그리고 이번 2차 데모데이 때는 타겟을 좁혀서 서비스 차원에서 맞춤성을 제공하려고 우선 다이어트를 위한 반려 식품으로 진행하고 후에 추가적으로 확장하려고 계획했다.

2차 데모데이 구현한 핵심 기능

이번 2차 데모데이 때 구현한 핵심 기능으로는 다음과 같이 다이어트 특화 식품 필터 버튼을 누르면 전체 식품에서 다이어트 식품을 보여주는 기능밖에 없다. 기획이 완전하게 잡히지 않아서 그에 대해 회의를 많이 하다 보니 기능은 많이 구현 못한 거 같아 아쉬웠다. 하지만 좀 있다 설명할 3차 때부터 정말 달라지니 기대해도 좋다ㅋㅋㅋ

사료에 대한 데이터는 어디서?

반려동물 사료에 대한 데이터를 가져올 방법이 없어서 참 곤란했다. 그렇다고 막 크롤링 해올 수도 없는 노릇이고.. 이것 때문에 프로젝트 주제를 바꿀 생각까지 하였다. 실제로 이틀 정도 새로운 프로젝트 주제에 대해 생각해 보았고 의논해 보려고 코치님들께 요청까지 드렸었다!

구구와 얘기한 결과 정말 실제 데이터들을 사용 못 한다면 mock 데이터를 사용해서 하는 것도 괜찮다고 하셔서 우선 최후의 보루로 mock 데이터를 생각하는 방향으로 얘기하였다.

하지만, 정말 다행이게도 몇몇 회사들에게 이메일을 보내놨었는데 데이터를 사용해도 된다는 허락을 받아서 실제 데이터로 운영할 수 있게 되었다!! 😭😭 (물론, 거절하거나 안 온 곳이 더 많음ㅠ)

Merge 전략

집고팀의 branch와 Merge 전략에 대해 궁금하다면 이게 머지? 브랜치 Merge 전략 방법 글을 참고

CI/CD

현재 우리 CI/CD 구조를 보면 다음과 같은데

간단히 설명해보면

  1. 코드를 푸시하고 나면 github action으로 제대로 build 되는지 확인
  2. 그 후 머지가 되면 Jenkins로 trigger
  3. Jenkins에 구축해 놓은 Pipeline 실행
  4. git clone으로 레포 클론 받은 후
  5. 빌드 해서 jar파일 생성
  6. scp를 이용해 jar파일과 배포 스크립트 prod ec2로 전송
  7. 배포 스크립트 실행

API 문서화

보통 Spring Rest Docs를 사용하는 이유는 테스트 코드의 강제화와 비즈니스 로직에 API 문서 관련 코드를 넣지 않아도 되는 장점으로 많이 사용하고 있을 것이다. 하지만 우리는 Swagger의 직관적인 UI와 API 테스트 기능도 포기하기 아쉬웠다.

과연 우리는 어떤 선택을 했을까? 어느 하나를 포기할 수 없던 우리는 둘 다 쓰는 것을 택하였다.

아래 사진은 우리가 rest docs와 swagger를 같이 적용하고 난 뒤에 얻은 UI들이다. 이 과정을 통해 우리는 rest docs의 장점인 테스트 코드 강제화와 비즈니스 코드 오염을 방지하였고 동시에 swagger의 장점인 직관적인 UI와, api 테스트도 얻게 되었다.

적용 방법은 로지가 작성한 restassured 와 restdocs에 swagger ui 곁들이기를 참고하면 된다!


3차 데모데이

자 이제 대격변이 일어난 3차 데모데이를 한번 살펴보도록 하자!! 😎

1, 2차 피드백 적용

우선, 이 과정에서 가장 큰 역활을 한 갓첵스에게 감사를 드립니다.. 🙌 🙌 🙌

다음과 같은 피드백들이 있었고 이를 좀 더 신경써서 서비스를 다듬었다.

초보집사라면, 내 반려동물에 맞는 사료를 찾아나가는 기준을 모를 수도 있을 거 같다. 그 선택을 도와주는 픽쳐도 있지 않을까?

클릭 한번으로 어떤 과정을 처리해주는지 조금 더 드러나면 좋을 것 같다. 결정에 필요한 거를 상세정보에서 다루면 좋을 것 같다. 의사결정에 도움이 되는 것들을 신경쓰면 좋을 것 같다.

사용자 피드백을 통해서 핵심가치를 뾰족하게 만들어 나갈 것이다라고 했는데 이 사이클이 길면 길수록 맞춤이 어렵다. 반려동물을 키우는 크루들이 많기 때문에 이런 가설과 실험을 2주 단위가 아니라 하루에도 바로바로 실험할 수 있는 사이클을 만들면 조금 더 원하는 방향으로 맞춰나가면 좋을 듯. 다른 팀 개발속도는 신경쓰지 말고 규모가 크진 않더라도 정말 유용한 서비스를 만들면 좋을 것 같아요.

사용자들이 뭔가 내가 키우는 반려동물이 다이어트가 필요한 사람들이 쓰게 되는 거잖아요 그럼 서비스를 통해 사료를 구매했어요 그럼 서비스의 유용함을 언제 느낄 수 있을까요? 단시간에 다이어트의 유용성을 느낄 수 없을 것 같은데.. 피드백 받는 텀이 너무 길지 않을까 서비스 유용함을 사용자들이 느껴야 알 수 있을 텐데 어떻게 피드백을 받을지 어떤 피드백을 받고 싶은지에 대한 계획이 있을지 궁금합니다.

맞다. 우리가 현재 선택한 타겟은 피드백 주기가 길다는 문제가 있었기에 타겟 재탐색이 필요했고 식품을 고르는데 고통이 많은 초보 집사로 변경하였다.

  • 초보집사
    • 정보 수집 곤란
    • 반려동물 입맛에 맞는 사료 보는 눈 없음 등
    • 전문성 특히 부족

그리고 식품 상세정보에서 제공하는 정보들도 많이 바뀌게 되었다. 기존에는 원재료 정보나 영양성분, 알레르기 정보 등 제공하려고 했었다. 하지만 데이터 수집도 어렵고 사용자가 과연 상세한 성분을 얼마나 볼까 의문이 들었다. 그래서 새로운 방식의 신뢰성을 제공할 수 있는 정보들을 찾게 되었다. 어떻게 바뀌게 되었는지 한번 보자.

우선 예전에 한 설문조사를 정리해보면 집사들의 고통은 다음과 같다.

  • 정보 수집 곤란
  • 리뷰 신뢰성 문제(전문성 부족, 광고)
  • 사료 품질(성분표기) 신뢰성 문제
  • 반려동물 입맛에 맞는 사료 선택의 어려움
  • 반려동물 특성에 맞는 사료 선택의 어려움(ex. 노령묘+신장질환)

그리고 전문가가 사료를 고르는 기준은 다음과 같다고 한다.

  • AAFCO(미국), FEDIAF(유럽) 영양소 기준 만족
  • 기호성 및 대변상태 확인 -> 가장 추천하는 기준
  • 신뢰할 수 있는 국가의 브랜드(미국, 유럽, 호주)
  • 역사가 오래된 브랜드
  • 브랜드에 전용 연구센터가 존재하는지
  • 브랜드에 상주하는 수의사가 있는지
  • 나이, 견종, 기저질환(알레르기 등) 고려하기

그래서 다음과 같은 느낌으로 제안이 되었고

결국 식품 상세 정보에 영양소 기준(AAFCO, FEDIAF) 만족, 기본적인 식품 정보, 브랜드 정보(창립 연도, 연구센터 유무, 상주 수의사 여부) 리뷰에 기호성, 대변 상태가 들어가게 되었다. 이제 실제로 구현한 기능들을 한번 봐보자.

3차 데모데이 구현한 핵심 기능

노션에 정리한 집사의고민 기능 명세인데 3차에 다 몰린 게 ㅋㅋㅋㅋㅋㅋㅋ 그동안 얼마나 기획으로 고생을 많이 한지 체감이 된다… 하 너무 힘들었다.

  • 소셜로그인
  • 식품 상세
  • 리뷰 기능
  • 식품 목록 필터링

과 같은 기능들을 추가했다. 드디어 기능들을 구현할 수 있어 행복한 3차가 아닌가 싶다. 기능들의 실제 구현 사진을 보고 싶다면 아래 토글을 펼쳐보자!

핵심 기능 상세히 보기

4차 구현 예정 핵심 기능

자신의 반려동물에 맞게 사료를 필터링 해주기 위해 사용자가 반려동물 정보를 등록할 수 있는 기능을 추가할 것같다. 그리고 리뷰와 식품 상세를 고도화 하려고 한다.

현재 예상하고 있는 바로는 다음과 같다.

반려 동물 정보 등록

  • (선택) 반려동물 사진
  • 반려동물 이름
  • 반려동물 성별
  • 반려동물 나이
  • 견종
  • 몸무게
  • 등..

리뷰 고도화

  • 반려동물 정보를 확인할 수 있다
  • 리뷰 필터링
  • 다른 유저의 리뷰에 ‘도움이 돼요’ 반응을 추가
  • 리뷰 요약 정보(평점, 기호성, 변상태, 이상반응)를 확인할 수 있다.
  • 리뷰 정렬

식품 상세 고도화

  • 정보 설명기능 - 툴팁으로 구현 예정
    • 이 정보들이 ‘왜’ 중요한지 의문을 가질 수 있기 때문

2, 3차 데모데이 후 회고

3차 데모데이 부분에 가장 핵심적으로 변화가 일어난 부분만 적어내려고 프로덕션 환경 구축, https, 협업 에피소드 등 다른 부분은 적지 않았다. 이 부분은 나중에 시간이 되면 추가적으로 작성하려고 한다.

드디어 Level3에서는 마지막 데모데이만 남게 되었는데 그전에 기획을 확정하고 서비스를 구현해나갈 수 있어서 정말 다행이다. 진짜 프로젝트를 바꾸려고 다른 주제를 생각했을 때만 해도 정말 우리 프로젝트가 어떻게 될지 가늠이 안되었고 어질어질했다. 그리고 1, 2차 데모데이 때도 기획이 아직 제대로 이해가 안 되었고..? 뭔가 말장난 아닌가라는 생각이 많이 들었었다. 실제로 피드백 부분에서 상당수 제대로 답하지 못하였다.

하지만, 3차 때부터 1, 2차 피드백 기반으로 많은 변화가 있었고 그에 따라 안정화되기 시작하고 개발도 같이 스무스하게 진행되었다. 그렇게 3차 데모데이가 잘 마무리되었고 팀원들이 정리해 준 3차 피드백을 한번 보면(코로나로 인해 데모데이 날 참석을 못 해 직접 못 들음ㅠㅜㅠ)

지표들이 제가 반려동물을 키우진 않지만 식품이나 화장품 창립연도 굉장히 유의미한 지표가 맞거든요. 유효한 지표를 잘 찾아내신 것 같아서 궁금했습니다

3차 때 자신감이 좀더 생긴 것 같다. 좀더 믿음이 있는 그런 느낌을 받았어요. 2차와 3차 데모데이 사이 이때 뭔가 전환점 같은게 있었는지 그런 것을 극복한 경험같은게 있는지 경험해주면 좋겠다

방향성이 좀더 명확하고 앞으로 이 서비스는 초보 집사들의 좋은 먹거리를 ~ 방향성을 잘 잡힌 것 같고 매력적인 것 같다.

완벽하게 해낸 건 아니겠지만 뭔가 1, 2차 때 한계를 어느 정도 극복해낸 거 같아 매우 감격스럽다.. 3차 데모데이 당일 팀원들과 함께 기쁨을 만끽하지 못한 것이 매우 아쉽다ㅠ 코로나로 인해 그날 24시간 동안 기절을 해버려서 어떤 상황인지 전혀 몰랐다.

1차 데모데이 회고 때 적었던 말이다. 물론 잘하면 베스트겠지만 누구나 잘할 순 없다. 일단 열심히 달려보자. 잘이 따라오면 더 좋고 아니면 뭐라도 따라오지 않을까? 달렸는데 뭐가 안 따라온다? 제대로 안 달렸는 게 아닌가라는 생각이 최근에 들어서 든다.

이번에 열심히 달렸는데 그래도 뭔가가 조금 따라온 거 같아 4차를 할 수 있는 원동력이 된 거 같다. 물론, 3차 때 받은 지적도 잘 보완해서 4차 잘 마무리할 수 있도록 다시 달려야겠다.

오늘의 교훈: 아 기획자님들 존경합니다..


*틀린 부분이 있으면 언제든지 말씀해 주시면 공부해서 수정하겠습니다.


© 2022. All rights reserved.

Powered by 애송이