본문 바로가기

우아한테크코스

3차 데모데이 회고

3차 데모데이는 아쉬움 그 자체다....

코로나 유행이 다시 왔는지 몰랐는데 면역력이 떨어져 있는 사이 어디서 감염이 된 건지 코로나에 걸려버렸다.. 하필 월요일에 확진 판정을 받는 바람에 데모데이가 있는 주를 통째로 결석하고 말았다 😭 데모데이까지 참여하지 못하게 되어서 너무 아쉽지만 우리 팀이 3차 데모데이까지 잘 마치고 점점 서비스가 완성이 돼 가고 있는 거 같아서(아직 할 일이 많지만...!) 좋다. 

 

이번 스프린트의 목표는 고객 - 사장 간 한 사이클을 돌 수 있게 해서 서비스를 사용할 수 있도록 하는 것이었다. 2차 때는 사장 모드만 구현했었기 때문에 사장이 발급해 준 쿠폰을 확인할 수 있는 방법이 없었다. 그래서 이번 스프린트 때는 고객 모드에서 쿠폰 조회 해오는 기능과, 사장 모드에서 쿠폰 이미지를 커스텀하는 기능을 핵심 기능으로 삼아서 개발을 진행했다. 

잘한 일들

디스커션 활용

이번 스프린트 때 좋았던 점은 깃허브의 디스커션 기능을 잘 활용한 것이다. 백엔드팀은 개발을 진행하면서 논의하고 싶은 사항들을 디스커션에 쌓아뒀고, 논의할 사항이 어느 정도 쌓여 스프린트 첫 주에 함께 논의를 하였다. 서로 개발을 하면서 서로의 싱크를 맞추는 게 중요하다고 생각하는데 이러한 방식을 사용해서 서로의 싱크를 맞출 수 있었던 거 같다. 

 

좋은 의견들이 많았는데 레오가 제시한 엔티티 간에 꼭 객체참조를 해야 하나?라는 글에 첨부된 우아한 형제들 세미나 영상이 있었는데 우아한 객체지향(https://youtu.be/dJ5C4qRqAgA) 2시간짜리 영상이지만 정말 유익한 영상이었다. 사실 나는 팀프로젝트를 진행하면서 내가 그동안 설계에 너무 관심이 없었다는 사실을 깨달았었다. 그래서 우리 팀의 테이블과 객체를 중심으로 공부를 하는 중인데 이 영상을 보면서 객체를 어떤 기준으로 묶고 끊어야 하는지, 패키지 간의 의존성을 어떻게 제거할 건지에 대해서 기준을 잡을 수 있었다. 얼른 우리 서비스 객체 참조 그래프를 그려봐야겠다!! 

 

테스트 방법 통일

지금까지는 기능 개발에 급급하기도 했어서 테스트코드도 각자 편한 대로 짜고 있었다. 하지만 개발이 어느 정도 진행되다 보니 너무 중구난방으로 되어있어서 이번주 초에 논의를 통해 드디어 테스트 방법을 통일했다!

 

스탬프크러쉬의 테스트 코드 기준을 보려면 더 보기 클릭!

더보기

Domain(Entity) 테스트

  • 자바 코드로 작성
  • 단위테스트 촘촘히

Repository 테스트

  • @DataJpaTest
  • 기본으로 주어지는 메서드들은 작성할 필요 없다

Controller 테스트 (Slice)

  • @WebMvcTest

Service 테스트 (Slice)

  • 레포지토리 Mocking

인수 테스트(E2E Test)

  • @SpringBootTest
  • Mocking X
  • API 조회를 통해서 얻어온 객체를 실제 데이터베이스와 비교

개발 서버 DB 구축 

DB 구축을 하는 방법을 2차 스프린트 때까지는 학습할 시간이 많이 부족해서 인메모리 H2 데이터베이스를 사용했었다. 그러다 보니 메모리를 너무 많이 필요로 해서 2차 데모데이 발표 전에 서버가 버티질 못했고 스왑 메모리 설정을 통해 서버를 띄우고 있었다. 이번 스프린트 때 데이터베이스용으로 만들어둔 private 서버에 Mysql을 사용해서 개발 서버 DB를 구축하고 초기 데이터 설정도 해주었다!

RestDocs + Swagger UI 드디어 성공

레벨 2 때 API 명세를 RestDocs로 만들고 싶었으나 설정이 어려워서 포기한 적이 있다. 그리고  Swagger의 문서에서 바로 API를 테스트하는 장점은 가져오고 싶었다. 그때 RestDocs와 Swagger UI를 함께 쓰면 두 방법의 장점을 취할 수 있다는 말을 듣고 이번 프로젝트 때 적용해 보기로 결심했었다. 그런데.... 여기저기 블로그에 나와있는 대로 설정을 해봐도 잘 진행이 되지가 않았다... 

그러다 원치 않게 계속 집에만 있게 되어서 이번엔 성공해 보자고 생각하고 열심히 코드를 작성해 봤는 데 성공했다! 🥳

설정 방법은 따로 글로 정리를 해서 올릴 예정이다.

 

아쉬운 점

도메인 설정, https 설정

프론트 + 백엔드 협업으로 기능을 구현해야 하는 요구사항이 있었고 우리 팀은 그것을 도메인 설정하고 https 설정을 하는 것을 정했었다. 이번주 화요일에 하기로 했어서 기대하고 있었는데.... 결석을 하면서 참여를 하지 못해서 너무 아쉬웠다..

다음 주에 등교하면 nginx 설정 어떻게 되어 있는지 다시 공부를 해야겠다!!

 

데모데이 불참

사실 자가격리가 권고기도 하고 금요일은 격리 마지막날이기도 해서 리사에게 구석에서 마스크 쓰고 참여해도 되는지 여쭤봤으나 현재 캠퍼스에 코로나가 많이 발생하고 있어서 오프라인 참여는 어려울 거 같다고 답변을 받았다 (지금 선릉, 잠실 할 거 없이 너무 많이 발생하고 있다😷)

우리 팀 전통이 발표 PPT를 분업해서 같이 만드는건데 다 만들어진 PPT 를 보니 우리 팀의 서비스가 너무 예뻤다 (프론트 크루들이 구현한 쿠폰 리스트 조회 페이지가 너무 예뻤다) 시연할 때 크루와 코치들의 우와~ 반응을 보고 싶었는데 아쉽다!!

 

마무리하며

한주를 통째로 결석했는데 팀원들이 최대한 나도 참여하게 해 주려고 게더로 회의하고 카톡으로 챙겨줘서 너무 고마웠다.

4차 데모데이 때 주요하게 해야 할 일은 로그인, 운영서버에 서비스 배포, 로깅 적용, 모니터링 시스템 적용, 테스트 코드 탄탄하게 만들기 정도이려나..? (많다!) 그래도 이것들을 다 마무리하면 정말 레벨 3을 보람차게 마칠 수 있을 거 같다. 일주일 동안 잘 쉬었으니 이제 마무리를 잘하기 위해 달려야겠다.