티스토리 뷰
@RestController 도입 이전:
model 을 사용해서 entity 를 model 에 addAttribute 해주었다. 그래서 View(화면)에 띄울 수 있었다.
이는 @Controller 는 MVC Controller를 사용하겠다는 의미이기 때문이다. 주로 결과값을 View 로 전달하는 방식이며, 함수의 리턴 값을 문자열 형태의 View 의 이름으로 지정해 반환하게 된다.
컨트롤러에서 View 를 거치지 않기 위해서는 바로 데이터를 @ResponseBody 에 넣어서 응답할 수 있었다.
@RestController 도입 이후:
JSON 형태 데이터를 앞단으로 보낼 수 있다. 엔티티 내에서 간단히 static 메서드 of 를 구현해서 entity 를 response body 화 해줄 수 있다. @RestController가 붙어있을 땐 바로 ResponseEntity 형태로 앞단으로 보낼 수 있다.
컨트롤러 테스트를 만들기 까다로운 이유
1. DB 를 의지한다
2. 무려 세 개가 합쳐진 복잡한 요소이다:
- Request 받는 부분
- 특정 Service 를 이용하기 위해 호출하는 부분
- View 또는 JSON 데이터로 Return 하는 부분
스프링 부트 핵심 가이드 pg. 173 - 7.4.6 컨트롤러 객체의 테스트
리포지토리와 컨트롤러를 바로 연결하는 것은 좋은 방법이 아니다 왜? 레이어드 아키텍처에 기반한 방법이 아니다.
그래서 레이어드 아키텍처에 따르는 모양으로 분리할 것이다.
레이어드 아키텍처가 유지보수, 확장성에 그나마 유리한 아키텍처이다.
'Web Framework' 카테고리의 다른 글
[Spring Security] 경로에 @PathVariable 을 포함하는 API 를 인증 없이도 호출하도록 설정하기 (5) | 2023.01.05 |
---|---|
[Spring Security] HandlerExceptionResolver 를 사용한 토큰 필터에서의 예외 처리 (0) | 2022.12.26 |
[Spring Security] 토큰 발행 후 API에 토큰 인증 절차 추가하기 (2) | 2022.12.06 |
[Spring Security] Spring Security 적용 후 컨트롤러 테스트 (0) | 2022.12.02 |
[Spring] ResponseEntity (0) | 2022.11.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java Data Types
- google cloud
- gitlab
- 기지국 설치
- N+1
- @RequestBody
- 인증/인가
- DTO
- JOIN FETCH
- 프로그래머스
- 역직렬화
- 코테
- ci/cd
- 가상 서버
- docker
- Spring Boot
- JPA
- Jackson
- json web token
- 알고리즘
- 도커
- Firebase
- 실시간데이터
- 지연 로딩
- LazyInitializationException
- FCM
- spring
- DeSerialization
- 깃랩
- JPQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함