본문 바로가기

Framework/Spring

(4)
API 스프링 웹 개발을 할 때에는 API의 방식을 활용하기도 한다. 사실 정적 컨텐츠(static content) 방식을 제외하면 MVC 방식에서 view를 찾아서 템플릿 엔진을 통해 화면을 렌더링해서 html을 웹 브라우저에 넘겨주는 방식이 있고, 그 다음에 API를 써서 html이 아니라 데이터를 바로 내리는 방식이 있다. @ResponseBody를 사용 HTTP의 BODY에 문자 내용을 직접 반환 viewResolver 대신에 HttpMessageConverter가 동작 기본 문자처리: StringHttpMessageConverter 기본 객체처리: MappingJackson2HttpMessageConverter byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음..
MVC와 템플릿 엔진 MVC: Model, View, Controller 프로그래밍을 할 때에는 관심사를 분리해야 한다. 역할과 책임. View는 화면을 그리는 데에 모든 역량을 집중해야 한다. 반면 Controller나 Model과 관련된 부분들은 비즈니스 로직과 관련이 있거나, 무언가 내부적인 것을 처리하는 데에 집중해야 한다. 그래서 Model, View, Controller를 나누는 것이다. 요즘에는 Controller와 View를 쪼개는 것이 기본이다. 요즘에는 이러한 방식으로 웹 개발을 많이 한다. 웹 브라우저에서 localhost:8080/hello-mvc를 넘기면, 일단 스프링 부트가 띄울 때 같이 띄우는 내장 톰캣 서버를 먼저 거친다. 내장 톰캣 서버는 "어, hello-mvc라는 것이 왔어"라고 하면서 스프..
정적 컨텐츠 (Static Content) 웹을 개발한다는 것은 크게 3가지 방법이 있다. 정적 컨텐츠, MVC와 템플릿 엔진, 그리고 API이다. 스프링 부트는 정적 컨텐츠(static content)를 자동으로 제공한다. 정적 컨텐츠는 서버에서 무언가 하는 것 없이 그냥 파일을 그대로 웹브라우저에 내려주는 것이다. 웹브라우저에서 localhost:8080/hello-static.html을 입력하면, 내장 톰캣 서버가 우선 요청을 받는다. 그리고 톰캣은 스프링에게 이것을 넘긴다. 스프링은 먼저 컨트롤러 쪽에서 hello-static이라는 컨트롤러가 있는지 찾는다. 그런데 hello-static과 관련되어 매핑된 컨트롤러가 없다. 그러면 스프링 부트는 내부의 resources에 있는 static 폴더 안의 hello-static.html을 찾는다..
스프링 부트 (Spring Boot) 동작 환경 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다. 스프링 부트 템플릿 엔진은 기본적으로 viewName 매핑이 된다. `resources:templates/` + {ViewName} + `.html` 위 그림을 볼 때, 웹 브라우저에서 'localhost:8080/hello'라고 해서 던지면, 스프링 부트는 톰캣이라는 웹 서버를 내장하고 있다. 톰캣에서 이것을 받아서 "어, /hello네" 하고 스프링에게 물어본다. 스프링의 helloController를 보면 @GetMapping("hello")라는 것이 있다. package hello.hellospring.controller; import org.springframework.stereotype.Co..