이번에는 Spring Web MVC 에서 Formatter 를 설정하는 방법에 대해 정리 한다. Formatter 인터페이스에 대한 api 문서를 보면 크게 두 가지 인터페이스를 상속 받고 있다. Printer 는 T 타입 객체를 문자열로 출력하는 방법에 대해, Parser 는 문자열을 T 타입 객체로 출력하는 방법에 대한 것이다. 프로젝트에서 정리에 사용 할 내용만 남기고 다른 내용은 삭제 했다. package me.nimkoes; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class My..
전체
Spring Boot 의 Web MVC 설정 방법에 대해 정리 한다. 환경이 바뀌었으니 새로운 프로젝트를 만드는 것도 좋겠지만 정리에 사용중인 프로젝트를 수정하려고 한다. 우선 POM.xml 파일을 수정해서 Spring Boot 를 사용할 수 있도록 수정한다. 4.0.0 me.nimkoes SpringWebMVCSandbox 1.0-SNAPSHOT war SpringWebMVCSandbox Maven Webapp UTF-8 1.8 1.8 javax.servlet javax.servlet-api 4.0.1 provided org.springframework spring-webmvc 5.1.3.RELEASE maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 ma..
framework 와 library 는 명확한 차이가 있다. library 는 사용자가 능동적으로 어떤 도구를 사용할지 고르고 골라 필요한걸 선택해서 사용한다. framework 는 이미 구조가 짜여져 있고, 고정된 틀과 흐름이 있고 사용자는 그 흐름에 맞춰 원하는 결과가 나올 수 있도록 재료들을 제공해줘야 한다. 좀 더 쉽게 정리하면 library 는 사용자가 골라서 사용하는 거고, framework 는 사용자가 맞춰줘야 한다. 갑자기 library 와 framework 의 차이를 정리한 이유는 Spring 은 library 가 아니고 framework 이기 때문이다. 즉, framework 의 생명주기(lifecycle)에 대해 알고 언제 무슨 일이 일어나며 그 일이 일어날 때 사용자가 무엇을 제공해..
Spring Web MVC 를 사용할 때 Front Controller 로 사용하는 Servlet WebApplicationContext 를 생성하는 DispatcherServlet 클래스가 사용하는 interface 에 대해 전체적으로 훑어보며 간략하게 정리한다. DispatcherServlet 클래스는 이 servlet 이 초기화 되는 과정에서 자신이 사용 할 전략들을 등록 하는 작업을 한다. /** * Initialize the strategy objects that this servlet uses. * May be overridden in subclasses in order to initialize further strategy objects. */ protected void initStrateg..
Spring Web MVC 로 웹 애플리케이션 개발을 할 때 Servlet WebApplicationContext 를 만드는 가장 중요한 클래스인 DispatcherServlet 에 대해 알아보기 위해 IntelliJ IDEA 로 프로젝트를 새로 만들었다. IntelliJ IDEA 를 실행하고 Create New Project 를 클릭해서 프로젝트 생성을 시작한다. Spring Boot 가 아닌 maven 프로젝트에 Spring web 에 대한 의존성만 추가해서 Spring Web MVC 를 사용한다. Maven 프로젝트를 선택하고 archetype 중 maven-archetype-webapp 을 선택했다. 적당한 GroupId 와 ArtifactId 를 입력한다. 내가 설치한 maven 을 사용하도록 ..
Spring Web MVC 의 가장 핵심이 되는 DispatcherServlet 에 대해 정리한다. DispatcherServlet 클래스는 Spring 으로 웹 애플리케이션을 개발할 때 일반적으로 사용하는 Front Controller Pattern 에서 Front Controller 역할을 한다. 현재 작성되어있는 web.xml 코드에서 정리 내용에 불필요한 내용들을 삭제해서 다음과 같이 만들어 주었다. 삭제한 내용은 filter 와 MyServlet servlet 그리고 welcome-file-list 이다. OldStyleDynamicWebApplication contextClass org.springframework.web.context.support.AnnotationConfigWebAppli..
이제부터 본격적으로 Spring 을 사용해서 웹 애플리케이션을 만들어 본다. Spring 을 사용한다는 것은 크게 두 가지 의미가 있는데, IoC (Inversion of Control, 제어의 역전) Container 를 사용 한다는 것 또는 Spring Web MVC 를 사용한다는 것이다. 앞서 만들었던 Dynamic Web Project 를 Spring 을 사용하는 프로젝트로 바꿔보자. Spring 을 사용하는 프로젝트로 바꾸기 전에 의존성이 무엇인지 생각해보려 한다. 자바에서 하나의 클래스가 다른 클래스를 사용할 때 의존 관계가 성립 한다. class MyClass { public static void main(String[] ar) { AnotherClass ac = new AnotherClas..
MVC 는 Model, View, Controller 이 세가지를 줄여 표현한 약어 이다. MVC 에 대해 검색을 해보면 '패턴' 이라는 말을 같이 볼 수 있다. 패턴이라는 것에 대해 쉽게 설명하면, 예로부터 전해 내려오는 가장 이상적인 방법 이라고 할 수 있다. 패턴에 대해 찾아보면 GoF 라는 것도 볼 수 있는데, GoF 는 Gang of Four 의 줄임 말로 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 네 사람을 뜻한다. GoF 와 패턴이 무슨 상관이냐 할 수 있겠지만, 앞서 얘기한 가장 이상적인 방법에 대한 표준을 정리하신 분들이다. 다시 MVC 에 대해 얘기하면, 보통 MVC 를 MVC1 과 MVC2 로 구분해서 얘기 한다. 하지만 사실..