토이프로젝트 3 : 여행 여정을 기록하고 관리하는 SNS 프로젝트 후기
밑의 글에서 발전된 글.
토이 프로젝트2 : 여행 여정을 기록과 관리하는 SNS 서비스 2단계 회고
🌟 지난 프로젝트의 피드백 ✔️ MVC 패턴이 잘 지켜지지 않았다. -> DDD 구조를 바탕으로 역할을 명확하게 나누어 진행. ✔️ 변수와 메소드 이름이 불분명 및 통일이 안됐다. -> 리팩토링 과정에
nebulaisme.tistory.com
📌 2차 프로젝트의 피드백
예외처리 더 신경 쓸 것.
띄어쓰기 등 코드를 보기 쉽게 할것
📌 3차 프로젝트의 목표
스프링 시큐리티
더욱 꼼꼼한 예외처리
성능 개선
단위 테스트 공부
🌟 프로젝트 배운점
시큐리티를 공부하였다. 근데 아직은 부족한 것 같다.
예외 처리 하는 방법에서 enum을 인터페이스로 구현할 수 있었다.
🌟 프로젝트 잘한 점
여러 가지 시도해보면서 많이 배울 수 있었다.
특히나 예외 처리 부분을 많이 배웠다.
1) 성능 개선
[성능 개선] 비동기 방식, saveAll을 활용한 2초 ▶️ 0.2초로 개선하기
📌 원래의 방식 여정들을 부를 때 마다 각각의 API를 호출하기 때문에 삽입 부분에서 많은 시간이 걸렸었다. 📝 기존 코드 List saveItineraryList = new ArrayList(); for (ItineraryRequest ir : itineraryRequests) { Iti
nebulaisme.tistory.com
2) 예외 처리 쉽게 만들기
[리팩토링 & 예외처리] 인터페이스를 이용한 enum으로 예외처리 정돈하기.
📌 문제점 기존의 예외 처리들을 하기 위해서는 RuntimeException을 상속받은 예외들을 각각 클래스를 만들어서 처리하였다. 하지만, 이렇게 예외 하나당 파일 하나를 만들면 각각 에러마다 핸들러
nebulaisme.tistory.com
3) 예외 처리 : valid message 처리 및 꼼꼼하게 예외처리를 한 것이 좋았다@
[예외처리] @Valid message를 response에 담아 출력하는 방법.
▶️ 해당 reqeust 파일이 있다고 해보자. 내가 만약 [ tripName ]을 입력하지 않았다면, 사용자에게 해당 [ message ]를 출력하고 싶다. @Getter @Builder @AllArgsConstructor @NoArgsConstructor public class TripRequest { @Not
nebulaisme.tistory.com
4) 깃북을 통한 API 문서 작성
Introduction - Toyproject 03
여행과 여정들을 관리하고 기록할 수 있는 sns 입니다.
trip-itinerary-sns-api.gitbook.io
깃북을 통해 API 문서를 작성하였다.
한글 써지는게 불편하지만 그래도 UI가 이뻐서 만족스럽다.
🥹 프로젝트 아쉬운 점
일정이 너무 바빠서 원하던 기능들을 더 삽입하지 못했다.
단위 테스트를 정확히 이해를 통해 작성하지 못했다.
다음에는 TDD를 더 잘 이해해서 도입하고 싶다!
⛑️ 피드백 정리 (12.11 추가)
- 테이블이 너무 세분화되어 있다. 그렇다면 개념들을 합치는데 오히려 더 비용이 드는 상황이 발생한다. 역정규화를 고려해볼 것.
-> 여정을 이동/숙박/체류로 3가지를 나누어서 생각하다 보니 오히려 비슷한 부분을 다룰 때 공수가 더 많이 들었다.
-> 성능 부분을 고려하며 테이블 설계를 하도록 하자.