티스토리 뷰

밑의 글에서 발전된 글. 

 

토이 프로젝트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가지를 나누어서 생각하다 보니 오히려 비슷한 부분을 다룰 때 공수가 더 많이 들었다. 

-> 성능 부분을 고려하며 테이블 설계를 하도록 하자.