개발서적읽기/Spring in Action 제 5판
-
[스프링 인 액션] Chapter 2 - 웹 애플리케이션 개발하기 :: 뷰 컨트롤러로 작업하기개발서적읽기/Spring in Action 제 5판 2020. 7. 29. 12:34
지금까지 타코 클라우드 애플리케이션의 세 가지 컨트롤러를 작성하였다. 1. HomeController 2. DesignTacoController 3. OrderController HomeController는 나머지 두개 컨트롤러와 다르게 모델 데이터나 사용자 입력을 처리하지 않는다. 이러한 간단한 컨트롤러의 경우는 다른 방법으로 컨트롤러를 정의할 수 있다. 이를 뷰 컨트롤러 라고 한다.package tacos; /* * @USER JungHyun * @DATE 2020-07-29 * @DESCRIPTION */ import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.an..
-
[스프링 인 액션] Chapter 2 - 웹 애플리케이션 개발하기 :: 폼 입력 유효성 검사하기개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:42
폼의 유효성 검사를 하는 방법으로 processDesign과 processOrder 메서드에 수많은 if/then블록을 너저분하게 하는 것이 있다. 이 경우 데이터가 적합한지 각 필드에서 일일이 확인해야 한다. 그러나 이것은 무척 번거롭고 코드 파악과 디버깅이 어렵다.다행히 스프링은 자바의 빈 유효성 검사(Bean Validation)를 지원한다. 이것을 사용하면 애플리케이션에 추가 코드를 작성하지 않고 유효성 검사 규칙을 쉽게 선언할 수 있다. 또한 스프링 부트를 사용하면 유혀성 검사 라이브러리를 프로젝트에 쉽게 추가할 수 있다. 유효성 검사 API와 이 API를 구현한 Hibernate 컴포넌트는 스프링 부트의 웹 스타터 의존성으로 자동 추가되기 때문이다.스프링 MVC에 유효성 검사를 적용하려면 다음..
-
[스프링 인 액션] Chapter 2 - 웹 애플리케이션 개발하기 :: 폼 제출 처리하기개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:41
타코 홈페이지의 Submit your taco 버튼에 대한 요청을 처리해보자뷰(design.html)의 form 태그를 보면 method 속성이 POST로 설정되어 있는데도 form에는 action 속성이 선언되지 않은 것을 알 수 있다. 이 경우 폼이 제출되면 브라우저가 폼의 모든 데이터를 모아서 폼에 나타난 GET 요청과 같은 경로(/design)로 서버에 HTTP POST 요청을 전송한다. 따라서 이 요청을 처리하는 컨트롤러의 메서드가 있어야 한다.@PostMapping public String processDesign(Taco design) { log.info("Processing design: " + design); return "redirect:/orders/current"; }타코 디자인 폼..
-
[스프링 인 액션] Chapter 2 - 웹 애플리케이션 개발하기 :: 정보 보여주기개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:39
1장에서는 애플리케이션 홈페이지를 보여주기 위해 최초의 스프링 MVC 컨트롤러를 생성하였다. 이번 장에서는 타코 클라우드 애플리케이션에 가장 중요한 커스텀 타고 디자인 기능을 추가할 것이다. 그리고 이렇게 하면서 스프링 MVC를 더 깊이 있게 알아볼 것이다. 또한 모델 데이터를 보여주고 사용자 입력을 처리하는 방법을 알게 될 것이다.웹 브라우저를 사용하는 클라이언트가 타코를 커스터마이징할 수 있도록 DB로부터 식자재를 가져와 브라우저에 보여줘야 한다. 스프링 웹 어플리케이션에서는 데이터를 가져오고 처리하는 것이 컨트롤러의 일이다. 그리고 브라우저에 보여주는 데이터를 HTML로 나타내는 것은 뷰가 하는 일이다. 컨트롤러와 뷰를 이용해 식자재를 브라우저에 보여주도록 하자. 먼저 다음 컴포넌트를 생성해야 한다..
-
[스프링 인 액션] Chapter 1 - 스프링 시작하기 :: 스프링 애플리케이션 작성하기개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:35
■웹 요청 처리스프링은 스프링 MVC라고 하는 강력한 웹 프레임워크를 갖고 있다. 스프링 MVC의 중심에는 컨트롤러가 있다. 컨트롤러는 웹 요청과 응답을 처리하는 컴포넌트다. 웹 브라우저를 상대하는 애플리케이션의 경우 컨트롤러는 선택적으로 모델 데이터를 채워서 응답한다. 그리고 브라우저에 반환되는 HTML을 생성하기 위해 해당 응답의 웹 요청을 뷰에 전달한다.package tacos; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String..
-
[스프링 인 액션] Chapter 1 - 스프링 시작하기 :: 스프링 애플리케이션 초기 설정하기개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:31
■스프링 애플리케이션 초기 설정mvnw.cmd 메이븐 래퍼 스크립트. 메이븐이 각자 컴퓨터에 설치되어 있지 않더라도 이 스크립트를 사용하여 프로젝트를 빌드할 수 있다.( 하위의) org.springframework.boot spring-boot-starter-parent 2.3.1.RELEASE 'spring-boot-starter-parent를 부모 POM으로 한다'는 것을 의미. 이 부모 POM은 스프링 프로젝트에 사용되는 여러 라이브러리의 의존성 관리를 제공한다. 따라서 부모 POM이 제공하는 라이브러리들은 버전을 지정할 필요가 없다. 또한 부모 POM이 제공하는 라이브러리들의 버전은 부모 POM의 버전을 계승한다.spring-boot-starter-?? org.springframework.boot..
-
[스프링 인 액션] Chapter 1 - 스프링 시작하기 :: 스프링이란?개발서적읽기/Spring in Action 제 5판 2020. 7. 28. 13:29
■스프링 애플리케이션 컨텍스트 스프링은 스프링 애플리케이션 컨텍스트라는 컨테이너를 제공한다. 이 컨테이너는 컴포넌트들을 생성하고 관리한다. 그리고 컴포넌트 또는 빈들은 스프링 애플리케이션 컨텍스트내부에서 서로 연결되어 완전한 애플리케이션을 만든다. 이 상호 연결은 의존성 주입이라고 알려진 패턴을 기반으로 수행된다. 즉 컴포넌트와 컴포넌트가 의존하는 관계를 스프링 애플리케이션 컨텍스트라는 컨테이너가 담당하여 수행한다. 스프링 애플리케이션 컨텍스트는 모든 컴포넌트의 생성, 관리를 담당하고 해당 컴포넌트를 필요로 하는 빈에 주입(연결)한다. ■스프링의 자동-구성 스프링은 스스로 컴포넌트들을 구성한다. 이 기능을 자동-구성이라고 한다. 스프링의 자동-구성 기능 덕분에 스프링을 사용하는 개발자는 별도의 빈 상호 ..