본문 바로가기

❓ @Controller, @RestController 차이점 시작하기 앞서 스프링에서 컨트롤러에 대한 어노테이션은 @Controller와 @RestController가 있다. 두 어노테이션의 가장 큰 차이점은 전통적인 스프링 MVC 컨트롤러에서 HTTP Response Body 생성 방식에 따라 구분되는데 더 자세히 알아보자. @Controller(Spring MVC Controller) 전통적인 스프링 MVC 컨트롤러 @Controller는 주로 View를 반환하기 위해 사용하며, 그림[1] 같은 과정을 거친다. @Controller는 주로 View를 반환하기 위해 사용하지만, @ResponseBody를 사용하여 객체를 반환 할 수도 있다. @Controller public class BasicController { @GetMapping("/good") publ..
👐 OSIV(Open Session In View) OSIV를 만나게 된 이유? 이동욱님의 글을 보면서 배포 환경을 구축했다. "JPA 사용시 OSIV 옵션은 끌것" 이라는 문구가 있었다. OSIV (...?) 설정을 하더라도 이게 뭔지는 알아야 한다고 생각해서 OSIV에 대해 알아봤다. OSIV란? Spring Boot에서는 Default로Open Session In View를 true로 설정하고 있다고 한다. OSIV는영속성 컨텍스트를 뷰 렌더링이 끝나는 시점까지 개방한 상태로 유지한다는 의미이다. 그렇다면 왜 등장하게 되었을까? 등장하게 된 이유? OSIV가 등장하게된 이유는 View 레이어에 연관된 객체를 사용하면,LazyInitializationException이 발생하게 되는데 이 부분에 대해 예제로 알아보자. findAll 메서드를 사용한다고..