부트캠프 기록/Section3 13

[Spring MVC] 예외처리

1. Spring MVC 에서의 예외처리 - @ExceptionHandler를 이용한 예외처리 애플리케이션에서 예외가 발생했을 때, 내부적으로 spring에서 Response Body를 이용해 에러 정보를 전송 timestamp, status, error, path 위의 내용만으로는 요청 데이터 중에서 어떤 항목이 유효성 검증에 실패했는지 알 수 없음 Controller에 @ExceptionHandler 적용 @ExceptionHandler 인자값으로 HttpStatus 를 받을 수 있음 예외가 발생하면 위의 애너테이션이 추가된 메서드가 예외를 전달받음 getBindingResult().getFieldErrors()를 통해 에러 정보 확인 가능 위에서 얻은 에러 정보를 ResponseEntity를 통해 ..

[Spring MVC] DTO 클래스와 Entity 클래스의 역할 분리 이유

1. 계층별 관심사의 분리 DTO는 컨트롤러 같은 클라이언트 단과 직접 마주하는 계층에서 데이터 교환할 때 쓰이는 자료구조 View 와 Controller 사이에서 데이터를 주고받을 때 활용성이 높음 DTO는 자료구조의 역할만 할 뿐 어떠한 기능 및 동작이 없어야 함 Entity 객체는 실제 DB 테이블과 매핑되는 핵심 클래스 데이터 베이스의 테이블에 존재하는 칼럼들을 필드로 가지는 객체 2. 코드 구성의 단순화 3. REST API 스펙의 독립성 확보 DB로부터 조회된 Entity를 그대로 View로 넘기게 되었을 때 불필요한 정보 및 노출되면 안되는 정보까지 노출되는 것을 막음 (패스워드 같은 원하지 않는 데이터 제외 가능) API 문서로써의 역할 => 유지보수 용이 참고 더보기 https://wil..

[Spring MVC] Spring MVC 아키텍처

✅ 학습 목표 Spring MVC가 무엇인지 알 수 있다. Spring MVC 동작 방식과 구성요소를 이해할 수 있다. Spring MVC란? Spring 모듈 중 웹 계층을 담당하는 몇가지 모듈이 있는데, 그 중 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈 Spring 웹프레임워크 서블릿이란? 클라이언트의 요청을 처리하도록 특정 규약에 맞춰서 Java 코드로 작성하는 클래스 파일 아파치 톰캣은 이러한 서블릿들이 웹 애플리케이션으로 실행이 되도록 해주는 서블릿 컨테이너 중 하나 - Model 클라이언트 요청의 응답으로 돌려주는 작업의 처리 결과 데이터 서비스 계층 비즈니스 로직 - View Model 데이터를 이용해서 웹브라우저 같은 클라이언트 애플리케이션의 화면에 보여지는 리소스를 제공하..