[TIL] 아웃소싱 - 팀 프로젝트 KPT 회고

phdljr·2023년 12월 11일
0

TIL

목록 보기
44/70
post-custom-banner

https://github.com/phdljr/spring_dp_out

서문

스프링으로 팀 프로젝트를 진행하는 시간을 갖게 되었고, 성공적으로 마무리를 지을 수 있었다. 이러한 경험을 토대로 KPT 회고를 작성하려 한다.

KPT 회고란 Keep, Problem, Try의 약자로 회고 방법 중 하나라고 한다.

Keep은 좋았거나 계속 이어갔으면 하는 부분
Problem은 부족했거나 개선이 필요한 부분
Try는 어떻게 개선할 것인지에 대한 부분

KPT를 진행하기 전에 나의 느낀 점

주어진 시간은 주말을 포함해서 6일이었지만, 저번 팀 프로젝트와 마찬가지로 주어진 요구사항은 절대로 6일 안으로 다 구현하지 못할 양이었다. 필수 요구사항만 먼저 구현하고 나머지 요구사항을 추가하는 방식으로 진행했어야 했지만, 욕심이 불타오른 나머지, 다 구현하겠다는 다짐을 하고 팀원들과 설계에 들어갔었다.

매번 게시판을 주제로 프로젝트를 진행하다보니 이번에는 키오스크로 주제를 바꿔서 진행하게 되었다. 확실히, 게시판과는 달리 새로운 여러 도메인들이 도출되었고 이들간에 연관관계를 생각하는 부분에서 시간이 많이 걸렸다. 그래도, 구현 단계에서 고생하는 것보단, 설계 단계에서 최대한 오류를 잡고 시작하는 것이 시간적인 측면에선 이득을 볼 수 있을거라 생각하며 끝까지 세세하게 진행하였다.

https://www.erdcloud.com/d/KSXe7seXT4ftQCYD9

물론, 구현 단계에서도 살짝 수정된 부분이 있었지만, 설계가 잘 돼있어서 많은 시간을 들이진 않았다. 여기서 설계의 중요성을 느끼게 되었다.

설계를 다 하고 구현에 들어가기 전에, 팀원들과 github 컨벤션을 정하게 되었다. 여기서 커밋 메세지와 브랜치 전략, 그리고 Issue와 PR을 같이 써보는 기능도 활용해보는 기회를 가지게 되었다.




이번 프로젝트에선 저번 프로젝트때 구현하지 못한 기능들을 추가하기 위해 노력했던 것 같았다. 그렇게 Refresh Token이메일 인증 기능을 구현하게 됐다. 이를 이해하고 사용할 줄 안다면 다른 프로젝트에서 재활용될 가능성이 매우 높아보였다. 필자가 구현한 부분은 아니라서, 이를 재활용 한다면 코드를 다시 한 번 보면서 이해할 필요가 있어보였다.

소셜 로그인이랑 AWS EC2의 배포, HTTPS 설정은 진행하지 못하였지만, 좀 더 공부해서 다음 기회에 적용해보는 시간을 가져보도록 다짐하게 되었다. 특히, AWS EC2에 배포를 하려 했으나, EC2와 RDS가 서로간에 연결이 잘 되지 않아서 삽질하다가 결국 구현하지 못하였다. 각각의 서비스에 대해 좀 더 알아보고 적용해보는 시간을 가졌으면한다.

다음으로, 팀원들과의 KPT 내용을 적어본다.


Keep

  • 깃허브의 이슈나 커밋 메세지에 이슈 번호를 남기면서 개발하던 방식이 너무나 좋았다.
  • 새로운 기능을 구현할 때, 항상 효율과 최적화를 중요시하며 진행하던 모습이 인상적이었다.
  • 상세한 코드 리뷰를 통해 배운 부분이 많았다.
  • git을 활용한 협업 시스템, 유스케이스를 작성함으로써 전반적인 비즈니스 로직 체크
  • Github : Issue 활용, 태그 기능, 커밋에 이슈 포함, Git Action 기능, 커밋 컨벤션, 풀리퀘 이슈 템플릿 사용
  • Postman 자동화 : 새로 안 지식에 대해서 팀원에게 잘 공유하는 부분

Problem

  • API명세서에 request, response -> filed를 더 명확히 설계하지 못해 이 부분에서 코드의 통일성이 살짝 아쉬웠다
  • 테스트코드 작성 시 통합테스트로 진행하다보니 기능이 추가될수록 관리하기가 어려워지는 부분이 있었다.
  • 좀 더 안정성있게 테스트 코드를 짜는 부분이 필요해 보였다.
  • 통합 테스트뿐만 아니라, 단위 테스트도 진행할 필요가 있어보였다.
  • 코드 컨벤션을 기능을 구현하기 전에 정하고 진행됐어야 했는데 그 부분이 아쉬웠다.

Try

  • API 명세서 보다 구체적으로 작성하기
  • 다음 프로젝트에서는 단위테스트를 잘 사용해 보면 좋을 같다
  • 구현하지 못한 기능에 대해 한번 더 생각해보고 구현해보는 시간을 가져본다.
  • 다음 프로젝트를 진행하게 된다면, CI/CD와 배포까지 구현해보는 시간을 가져본다.

마무리

Refresh Token과 Redis, 이메일 인증 기능에 대해 알아보는 시간을 갖게 되어 좋았다.
또한, 깃허브의 다양한 기능을 사용하게 돼서 많은 걸 배우게 되었다.

다음 프로젝트때는 시간을 전략적으로 사용해서 배포까지 진행해보자.

profile
난 Java도 좋고, 다른 것들도 좋아
post-custom-banner

0개의 댓글