728x90
반응형
MVC 패턴은 Web Application 개발에 있어서 Model, View Controller의 세 가지 주요 구성 요소를 기반으로 하는 디자인 패턴이다.
이 패턴은 Application의 구조를 명확하게 분리함으로써, 유지보수성, 확장성 및 개발 효율성을 향상 시킨다.
Model
- 애플리케이션의 데이터와 비즈니스 로직을 담당한다.
- 모델은 데이터베이스, 서비스 또는 다른 소스로부터 데이터를 가져와 컨트롤러에 전달한다.
View
- 사용자에게 정보를 표시하는 역할을 한다.
- HTML, JSP 등 다양한 템플릿을 사용하여 사용자 인터페이스를 구성할 수 있다.
Controller
- 사용자의 요청을 받아 처리한 후, 그 결과를 뷰에 전달한다.
- Controller는 사용자의 입력을 Model로 전달하고, Model로 받은 데이터를 View로 전송하여 사용자에게 표시한다.
Spring MVC 작동 원리
1. DispatcherServlet
- Spring MVC에서는 DispatcherServlet이 Front Controller을 한다.
- 모든 웹 요청은 먼저 DispatcherServlet을 통과하게 되며, 이는 요청을 적절한 Controller로 라우팅한다.
2. Handler Mapping
- 요청 URL을 어떤 컨트롤러가 처리할지 결정한다.
- Spring MVC는 다양한 방식의 Handler Mapping을 제공한다.
3. Controller 실행
- Handler Mapping에 의해 결정된 Controller가 요청을 처리한다.
- Controller는 필요한 데이터를 Model로부터 가져오고, 결과를 View에 전달하기 위해 Model 객체를 생성하거나 업데이트한다.
4. View Resolver
- Controller가 반환한 View 이름을 기반으로 실제 View를 찾아 사용자에게 응답을 제공한다.
- View Resolver는 View 이름을 실제 View 경로로 변환하는 역할을 한다.
5. View Rendering
- 최종적으로 View가 Rendering되어 사용자에게 응답으로 전송된다.
Spring Boot는 Tomcat, Dispatcher Sevlet을 자동으로 구성(Auto-configuration)해주고 pom.xml, build.gradle 파일에 의존성 추가로 다양한 라이브러리를 쉽게 관리할 수 있도록 해준다.
Example
// main : KotlinexampleApplication.kt
package com.springboot.kotlinexample
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class KotlinexampleApplication
fun main(args: Array<String>) {
runApplication<KotlinexampleApplication>(*args)
}
package com.springboot.kotlinexample.controller
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
@RestController
class MessageController {
@GetMapping("/")
// fun index(@RequestParam("name") name: String) = "Hello, $name!"
fun index(@RequestParam("name") name: String):String {
return "Hello, $name!"
}
}
이렇게 파일을 나누고 별다른 연결이 없이도 동작하는 이유는 Spring Boot의 Auto-configuration과 Component Scan 덕분이다.
Auto-Configuration
- @SpringBootApplication 어노테이션은 Spring Boot의 자동 구성을 활성화 한다.
- Spring Boot가 Application을 실행할 때 필요한 Bean들을 자동으로 설정하고 Application의 실행 환경을 구성하도록 돕는다.
Component Scan
- @SpringBootApplication 어노테이션은 컴포넌트 스캔을 활성화 한다.
- main 함수가 존재하는 파일이 위치한 패키지와 그 하위 패키지에서 Spring의 스테레오타입 어노테이션(@Component, @Service, @Repository, @Controller 등)이 붙은 클래스를 자동으로 찾아 Spring Application 컨텍스트에 Bean으로 등록한다.
728x90
반응형
'Back-end & Server > Spring Boot with Kotlin' 카테고리의 다른 글
[Spring Boot] Thymeleaf (0) | 2024.03.28 |
---|---|
[Spring Boot] JSP(Java Server Pages) (0) | 2024.03.28 |
[Spring Boot] JPA(Java Persistence API) (0) | 2024.03.27 |
[Spring Boot] DAO, DTO (0) | 2024.03.27 |
[Spring Boot] 스프링 부트 개요 (0) | 2024.03.25 |