- 프로젝트명: "뉴스피드 만들기"
- 프로젝트 소개: 내 게시물을 포함한 모든 게시물을 볼 수 있는 공간입니다.
- 시연 영상: https://www.youtube.com/watch?v=DeojTSjR9dY
- 사용 기술: #SpringBoot #JPA #MySQL #Redis
GitHub: https://github.com/k-jaehyun/NewsFeed
>KPT 회고
길다면 길고 짧다면 짧은 팀프로젝트가 끝났다.
부족한 팀장을 적극적으로 따라준 팀원분들께 감사하다.
좋은 팀을 만나 함께 최선을 다했고, 그만큼 얻어가는 것이 많은 시간이었다.
뿐만 아니라 기획했던 것 이상의 결과물을 낼 수 있었다.
앞으로의 시간 또한 기대된다.
결과물을 제출하고 모든 조가 결과물과 그 과정에 대한 발표를 진행했다.
그 과정에서 메모 해 둔 것을 정리한다.
(KPT 회고에 들어간 내용은 뺐다.)
다른 조에서 시연을 보일 때, 프로그램이 갑자기 작동하지 않았다.
환경에 따라 작동 여부가 달라 질 수도 있는 것이다.
만약 이게 실무였다면 회의 분위기가 암울해졌겠지...
우리 조는 패키지를 Controller, Service, Repository 등 기능에 따라 나눴다.
하지만 프로젝트의 규모가 커질 수록 해당하는 엔터티의 개수가 엄청나게 증가하기 때문에 이런 식으로 나눌 경우 알아보기 힘들다는 단점이 있다는걸 알았다.
따라서 아래와 같이 엔터티별로 묶어서 리팩토링을 진행해야함을 알고 적용했다.
Query Parameter 보단 Json형태로 데이터를 전달하는 Path Variable을 많이 쓰는 추세라는 글을 읽었던 기억이 있다. 또한 사용하기 편리하기하기 때문에 이번 프로젝트에서는 Path Variable만 사용하였다.
그 예로 /api/posts/mypost
로 로그인 한 사용자의 게시글 조회하는 API가 있었다. 하지만 이것 보다는 Query Parameter를 이용하여 /api/posts/?id=value
형태로 받아오는 것이 더 RESTful해보이는 것이었다!
어떤 resource를 식별하고 싶으면 Path Variable을 사용하고,
정렬이나 필터링을 한다면 Query Parameter를 사용하는 것이 적절한 것이다.
물론 Path Variable의 장점이 크긴 하지만, 경우에 따라 잘 섞어 써야겠다.