내일배움캠프 Spring 22일차 TIL

Skadi·2024년 1월 23일
0

스프링 입문 개인과제 마무리

개인 일정을 관리하는 캘린더 API

  • ERD

구조

  • Controller : CRUD 구현
  • Dto : 클라이언트와의 소통 간 데이터를 주고받을 때 안정성 향상
  • Entity : 캘린더의 기본적인 구조 및 데이터베이스의 테이블과 연동
  • Repository : JPA 적용 밑 데이터베이스와의 소통 역할
  • Service : Controller의 세부적인 구현 내용 적용

느낀점

  1. 스프링 프로젝트의 가장 기본적인 구조를 사용해서 설계가 어렵지는 않았다.
  2. 클라이언트와의 소통을 위한 Dto에 대한 개념을 추가로 알 수 있었다.
  3. CRUD 중 조회(R)를 제외한 부분에서 @Transactional이 필요하다 생각했는데 코드를 작성하고 Update에는 왜 별도로 @Transactional를 작성해줘야하고 나머지 Create, Delete에는 필요가 없는가 중간에 의문이 생겼는데, save, delete를 simpleJpaRepository에서 받아와서 사용하니 그 안에 있다는 것을 알게 되었다.
  4. 다른 사람 코드도 몇번 둘러 보았는데 참고할 사항이 꽤 많았다.
    • @Valid : 해당 객체에 적용된 유효성 검사(annotation-based validation)가 수행된다.
    • @RestControllerAdvice는 Spring Framework에서 사용되는 어노테이션으로, 전역적으로 예외 처리를 담당하는 클래스를 지정합니다. 이 어노테이션이 붙은 클래스는 여러 컨트롤러에서 발생하는 예외를 일관된 방식으로 처리할 수 있게 해줍니다.
    • @ExceptionHandler : Spring Framework에서 사용되는 어노테이션으로, 특정 예외가 발생했을 때 해당 예외를 처리하는 메서드를 지정합니다. 이 어노테이션이 적용된 메서드는 특정 예외에 대한 처리 로직을 정의할 수 있습니다.
      - 예외처리에서 Service부분에서 try-catch사용이 마음에 안들었는데 좋은 방법인 것 같다.
    • Exception을 반환하기 위한 Dto를 별도 생성
  5. 위와 같은 적용을 한 사람들을 제외하더라도 같은 강의를 들었는데 정말 사람이 짜는 코드는 다 다른것 같다.

0개의 댓글