Spring Web MVC

Spring

  • Java 기반의 오픈 소스 프레임워크

  • 애플리케이션 개발에 필요한 여러 모듈 제공으로 개발 생산성을 높여줌

  • 주요 기능으로 IoC/DI, AOP, MVC, 보안 등을 제공

Spring Boot

  • 스프링의 설정 및 환경 구성을 간편하게 만들어줌

  • 내장형 톰캣 등의 WAS를 제공하여 개발자가 WAS 설정에 대한 부담을 덜어줌

  • 간단한 설정과 자동화된 설정 기능 등의 장점으로 빠른 개발이 가능해짐

Spring Initializer

  • Spring 프로젝트를 쉽게 생성할 수 있는 온라인 도구 및 CLI(Command Line Interface) 도구

  • 프로젝트의 의존성(Dependency), 빌드 도구(Build tool), 언어(Language) 등을 선택하여 생성 가능

Web Server와 Web Application Server(WAS)

  • Web Server : 정적인 컨텐츠(html, css, js 등)를 제공하는 서버

  • Web Application Server : 동적인 컨텐츠(JSP, Servlet 등)를 생성하고 제공하는 서버

  • Tomcat : Apache Foundation에서 개발한 오픈 소스 WAS

Model-View-Controller(MVC) 아키텍처 패턴

  • 애플리케이션의 구조를 컴포넌트 단위로 나누어 관리하는 패턴

  • Model : 데이터와 데이터 조작을 담당하는 부분

  • View : 화면 출력을 담당하는 부분

  • Controller : 요청을 받고, 처리 후 응답을 반환하는 부분

관심사의 분리(Seperation of Concern)

  • 애플리케이션의 기능을 서로 다른 영역으로 나누어 관리하는 것

  • 하나의 코드가 여러가지 기능을 겸하고 있는 것보다, 하나의 코드가 단 하나의 책임만 지니도록 구현하는 것이 유지보수 및 확장성면에서 유리함

Spring MVC

  • Spring에서 제공하는 MVC 패턴 구현을 위한 프레임워크

  • DispatcherServlet을 중심으로 HandlerMapping, Controller, ViewResolver 등으로 구성됨

Java Annotation

  • 자바 코드에 메타데이터를 표현하는 기능

  • 컴파일러, 빌드 툴, 프레임워크, 런타임 등이 어노테이션 정보를 활용하여 동작하는 경우가 많음

Spring Annotation

  • 스프링에서 제공하는 어노테이션으로, 애플리케이션 개발에 필요한 다양한 기능을 제공함.

  • 대표적인 어노테이션으로는 @RestController, @Controller, @ResponseBody, @GetMapping, @RequestMapping 등이 있음.

@RestController

  • Spring에서 RESTful 웹 서비스를 구현할 때 사용되는 어노테이션입니다.

@Controller와 @ResponseBody

  • Spring MVC에서 컨트롤러를 지정하고 해당 컨트롤러의 반환값이 HTTP 응답 본문으로 전송되도록 지정하는 어노테이션입니다.

@GetMapping과 @RequestMapping

  • Spring MVC에서 HTTP GET 요청에 대한 핸들러 메소드를 지정할 때 사용되는 어노테이션입니다. @RequestMapping 어노테이션은 HTTP 요청 메소드(GET, POST 등)에 따라 적절한 핸들러 메소드를 지정할 수 있도록 도와줍니다.

예시

}

@ExceptionHandler: 예외가 발생했을 때 처리하는 메소드를 지정하는 어노테이션입니다.

예시

@ResponseStatus: 요청 처리 후 반환하는 HTTP 응답 상태 코드를 지정하는 어노테이션입니다. 예를 들어, @ResponseStatus(HttpStatus.OK)는 요청 처리가 성공했음을 나타내는 200 상태 코드를 반환합니다.

Last updated