본문 바로가기
Learning-log/Spring & JPA

MVC와 템플릿 엔진 / API

by why제곱 2023. 3. 9.

1. MVC(Model, View, Controller)

- 예전에는 view에 모든 걸 다 하고 controller가 따로 있지 않았음.

- view 란  : 화면을 그리는 데에 모든 역량을 집중

- controller :  비즈니스 로직과 관련있거나 내부적인걸 처리하는데에 관심 있음

- 요즘엔 컨트롤러와 뷰를 쪼개는게 기본 ! 

- 비즈니스 로직, 서버와 관련된건 컨트롤러 쪽에서 다 처리하고 model에다 관련된 화면에 필요한 것을 담아서 view에 넘겨주는 패턴 많이 활용

 

- controller

- 웹브라우저에서 localhost:8080/hello-mvc를 보내면 스프링 부트가 띄울 때 같이 띄우는 내장 톰켓서버를 먼저 거쳐. helloController에 저 메서드에 매핑이 돼있는 걸 확인하고 return을 html이름을 return하고 model에 name이 spring으로 전달 되니 그걸 viewResolver가 html에 name부분 템플릿엔진 처리해서 html변환 후 웹브라우저에 전달

 

2. API 

- 정적 컨텐츠를 제외하면 HTML로 내리냐 API 방식으로 데이터를 바로 내리냐! 이 두가지 방식만 기억하면 된다.

- '@ResponseBody' : http에서 헤더부, 바디부가 있는데 바디부에 해당 데이터를 직접 넣어주겠다는 의미(viewResolver에게 던지지 않고 http응답에 그대로 얘를 던져야 한다고 응답. 객체가 오면 Json 방식으로 만들어서 http응답에 반환(이 때, JsonConverter 동작)

- 이전 템플릿 엔진은 화면을 가지고 view라는 템플릿이 있는 상황에서 그걸 조작하는 방식이라면 이번 방식은 입력한 데이터를 그대로 내보내주는 방식임