@Controller

Controller - View

@Controller는 주로 View를 반환하기 위해 사용합니다. 

  1.  Client는 URI 형식으로 웹 서비스에 요청을 보낸다.

  2. DispatcherServlet이 Handler Mapping에 요청해 해당 Controller를 찾는다.

  3. 해당 Controller에서 요청을 처리한 후 응답을 DispatcherServlet으로 반환하고, View를 Client에게 반환한다.

 

Controller - Data

Data를 반환해야하는 경우 @ResponseBody 어노테이션을 활용해 Json형태로 데이터를 반환할 수 있습니다.

  1. Client는 URI 형식으로 웹 서비스에 요청을 보낸다.

  2. DispatcherServlet이 Handler Mapping에 요청해 해당 Controller를 찾는다.

  3. @ResponseBody를 사용하여 Client에게 Json형태로 데이터를 반환합니다.

 

@RestController

RestController

@RestController는 @Controller + @ResponseBody 이고, 주용도는 Json 형태로 객체 데이터를 반환하는 것입니다.

  1. Client는 URI 형식으로 웹 서비스에 요청을 보낸다.

  2. DispatcherServlet이 Handler Mapping에 요청해 해당 RestController를 찾는다.

  3. RestController는 요청을 처리한 후 데이터를 반환한다.

 

'Web > Spring' 카테고리의 다른 글

[Spring] IoC 컨테이너 와 Spring Bean  (0) 2020.12.28
[Spring] POJO 와 Java Beans  (0) 2020.12.28
[Spring] DAO 와 DTO  (0) 2020.12.25
[Spring] Spring MVC 구조  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17

DAO (Data Access Object)

  • 실제로 DB에 접근하는 객체
  • Persistence Layer(DB에 data를 CRUD하는 계층) 이다.
  • Service와 DB를 연결하는 역할

 

DTO (Data Transfer Object)

  • 계층간 데이터 교환을 위한 객체(Java Beans)
  • DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다.
  • 로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖는다.

 

'Web > Spring' 카테고리의 다른 글

[Spring] POJO 와 Java Beans  (0) 2020.12.28
[Spring] @Controller 와 @RestController  (0) 2020.12.28
[Spring] Spring MVC 구조  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17
[Spring] MyBatis 란?  (0) 2020.12.15

Model

  • Java Beans
  • 애플리케이션 상태(data)를 나타낸다.
  • 일반적으로 POJO로 구성

 

View

  • JSP
  • Model data의 렌더링을 담당, HTML output을 생성

 

Controller

  • Servlet
  • View와 Model 사이의 인터페이스 역할
  • Model/View에 대한 사용자 입력 및 요청을 수신하여 그에 따라 적절한 결과를 Model에 담아 View에 전달
  • 즉, Model 객체와 이 Model을 화면에 출력한 View Name을 반환
  • Controller --> Service --> DAO --> DB

 

Spring Framework가 제공하는 Class

DispatcherServlet

  • Spring Framework가 제공하는 Servlet 클래스
  • 사용자의 요청을 받는다.
  • DispatcherServlet이 받은 요청은 HandlerMapping으로 넘어간다.

 

HandlerMapping

  • 사용자의 요청을 처리할 Controller를 찾는다. (Controller URL Mapping)
  • @RequestMapping("/url") annotation을 명시하면 해당 URL에 대한 요청이 들어 왔을 때 해당 클래스 또는 메서드에 Mapping한다.

 

ViewResolver

  • Controller가 반환한 View Name에 prefix, suffix를 적용하여 View Object를 반환
  • View에 Controller에게 받은 Model을 전달

'Web > Spring' 카테고리의 다른 글

[Spring] @Controller 와 @RestController  (0) 2020.12.28
[Spring] DAO 와 DTO  (0) 2020.12.25
[Spring] DI (Dependency Injection, 의존성 주입)  (0) 2020.12.17
[Spring] MyBatis 란?  (0) 2020.12.15
[Spring] Maven 과 Gradle  (0) 2020.12.13

Web Server

  • Web Server는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .css 등)를 제공하는 프로그램
  • 즉, HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능
  • 동적인 컨텐츠 제공을 위한 요청을 전달한다.
  • 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달한다.
  • 예) Apache Server, Nginx

 

WAS (Web Application Server)

  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
  • WAS = Web Server + Web Container
  • Web Server의 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시
  • 업무를 처리하는 비즈니스 로직 수행
  • 예) Tomcat, Jeus

 

Web Server 와 WAS를 분리하는 이유?

  • 자원 이용의 효율성 및 장애극복
  • 배포 및 유지보수의 편의성
  • 효율적인 분산처리 가능

+ Recent posts