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