스프링 웹 MVC 최신 버전으로 제작된 강의로 초급에서 중.고급에 이르기까지 스프링 웹 MVC 기본 개념부터 API 사용법과 내부 아키텍처를 및 원리, 흐름들을 학습하게 되고 이를 바탕으로 스프링 웹 MVC 의 핵심적인 기술들을 익히게 됩니다.
스프링 웹 MVC 기초 및 개념
스프링 웹 MVC 아키텍처와 원리 이해
스프링 웹 MVC 핵심 실행 구조 이해
스프링 웹 MVC 어노테이션 기법
스프링 웹 MVC 기능 확장 및 응용
이번 스프링 웹 MVC 강좌는 스프링 웹 MVC 의 핵심 기능들을 상세히 분석하고 파헤침으로써 수강생 여러분들이 본 강의의 이론과 실습을 통해 각 기능과 API 를 확실하게 익힌다면 스프링 웹 MVC 가 어떤 프레임워크이며 무엇을 할 수 있는 도구이며 어떻게 사용 및 활용할 수 있는지를 명확히 알게 되고 실무 환경에서 웹 어플리케이션을 개발하는데 있어 필요한 전반적인 지식을 대부분 습득할 수 있게 됩니다.나아가 스프링 웹 MVC 를 확장하고 응용하는 수준까지 발전하게 됩니다.
핵심 기능의 원리와 흐름들을 분석하고 파헤침으로써 단순 기본 사용법을 넘어 이를 확장하고 응용할 수 있는 방법을 터득하게 되며 개발적 관점에서 인사이트를 가질 수 있게 됩니다. 그리고 이는 곧 개발자로서의 역량과 경쟁력을 다지는 밑거름이 될 수 있을 것입니다.
본 강의는 스프링 웹 MVC 를 처음 접하는 입문자부터 기초적인 지식이나 사용 경험은 있지만 좀 더 깊이 있는 지식 습득과 스프링 웹 MVC 의 핵심 원리, 내부 구조, 동작 방식 등을 심도 있게 이해하고 이를 응용하고자 하는 중·고급자를 위해 제작하였습니다.
본 강의는 스프링 웹 MVC 를 위한 핵심 주제로 서블릿, 스프링 웹 MVC 기본, 스프링 웹 MVC 활용, 스프링 웹 MVC 실행 구조, 공통 기능 의 다섯 가지 축을 중심으로 수업을 진행합니다.
서블릿 파트에서는 자바 웹 기술의 발전 과정을 통해 웹 애플리케이션 아키텍처가 어떻게 진화해왔는지를 학습하게 됩니다. 서블릿 기반의 모델1 구조에서 MVC 패턴을 도입한 모델2 구조로 전환되면서 어떤 문제를 해결했는지 이해하게 될 것입니다. 또한, 프론트 컨트롤러 패턴이 도입되며 요청 처리를 중앙 집중화한 방식이 어떻게 확장성과 유지보수성을 높였는지도 살펴보게 됩니다. 서블릿이 웹 컨테이너에서 어떻게 동작하고 생명주기를 가지는지, 그리고 스프링이 이러한 서블릿 환경 위에서 어떻게 통합되어 동작하는지도 함께 분석하게 될 것입니다.
스프링 웹 MVC 기본 파트에서는 Spring Boot 기반의 웹 애플리케이션이 실행되면서 어떤 초기화 과정을 거치는지를 학습하게 됩니다. 서블릿 컨테이너와 스프링 컨테이너가 어떻게 분리되고 연결되는지를 이해하게 되며, DispatcherServlet이 어떻게 동작하며 어디에 위치하는지도 분석하게 됩니다. 이 과정을 통해 스프링의 웹 요청 처리 흐름을 구조적으로 파악할 수 있게 될 것입니다.
스프링 웹 MVC 활용 파트에서 Spring MVC에서의 실제 요청 처리 흐름과 다양한 어노테이션 기반 매핑 기법들을 학습하게 됩니다. @RequestMapping, @GetMapping 등 어노테이션이 내부적으로 어떻게 작동하는지, HandlerAdapter, ViewResolver 같은 컴포넌트들이 어떤 역할을 수행하는지에 대해서도 상세히 배울 것입니다. 그리고 리플렉션을 통해 컨트롤러 메서드가 실행되는 과정을 살펴보게 됩니다. 타입 변환 기능에서는 Converter, Formatter, ConversionService 등을 통해 데이터 변환이 어떻게 이루어지는지를 배우고, 커스텀 변환기를 직접 구현해보게 됩니다. 또한 Validator 인터페이스와 Bean Validation을 활용하여 요청 데이터에 대한 유효성 검사를 어떻게 수행하는지도 실습하게 됩니다.
스프링 웹 MVC 실행 구조 이해 파트에서는 Spring MVC의 내부 실행 구조를 더욱 깊이 있게 분석하게 됩니다. HTTP 요청이 컨트롤러로 매핑되고, 해당 메서드가 실행되기까지의 전체 과정에서 어떤 내부 동작이 이루어지는지를 학습합니다. 자바 리플렉션이 요청 매핑 및 메서드 실행에 어떻게 활용되는지 원리적으로 이해하게 되며, 메서드 파라미터 바인딩과 타입 변환이 어떤 구조로 이루어지는지도 함께 분석하게 됩니다. 이 과정을 통해 여러분은 스프링의 요청 처리 흐름을 단순히 사용하는 수준을 넘어서, 내부 구조까지 이해하는 고급 개발자의 시각을 갖게 될 것입니다.
스프링 웹 MVC 공통 기능 파트에서는 Spring MVC가 제공하는 다양한 공통 기능들을 실무 관점에서 학습하게 됩니다. 모델 객체 바인딩, 폼 검증, 서블릿 필터 및 인터셉터의 동작 방식, 뷰 처리 과정 등 웹 개발 전반에 걸친 필수 요소들을 심층적으로 다루게 됩니다. 또한 예외 처리 구조를 통해 @ExceptionHandler와 HandlerExceptionResolver가 어떻게 동작하는지 살펴보고, 전체 예외 처리 흐름을 다이어그램으로 분석하게 됩니다. 마지막으로, 파일 업로드와 REST API 호출을 처리하는 방식도 실습을 통해 배우게 되며, 실무에서 자주 사용되는 기능들을 종합적으로 경험할 수 있게 됩니다.
1. 자바 웹 변천사 – 서블릿, 모델1, 모델2
자바 웹 기술의 발전 과정을 단순한 개념 학습이 아닌, 근본적인 원리와 아키텍처의 변화 관점에서 분석한다.
서블릿 기반의 초기 웹 애플리케이션(모델1)에서 MVC 패턴을 도입한 모델2로의 전환 과정과 그로 인한 구조적 장점 및 단점을 비교한다.
도식 및 흐름도를 활용하여 각 아키텍처의 동작 원리를 시각적으로 이해한다.
2. 프론트 컨트롤러 패턴 – 프론트 컨트롤러 패턴과 스프링 MVC
웹 애플리케이션에서 요청을 중앙 집중적으로 처리하는 프론트 컨트롤러 패턴을 학습하며, Spring MVC의 DispatcherServlet이 이를 어떻게 구현하는지 원리를 분석한다.
단순한 기능 학습을 넘어 핸들러 매핑, 핸들러 어댑터, 뷰 리졸버 등의 내부 동작 과정을 다이어그램과 함께 탐구한다.
3. 서블릿 이해 – 서블릿 개념, 이벤트 및 생명주기, 요청 프로세스, 컨테이너 동작 원리 등
서블릿의 기본 개념을 넘어서 웹 컨테이너에서 서블릿이 어떻게 동작하는지를 내부 아키텍처 관점에서 분석한다.
요청이 들어오고 응답이 반환되는 과정에서 서블릿 컨테이너가 수행하는 단계별 작업을 심층적으로 탐구하며, 다이어그램을 활용하여 전체 흐름을 이해한다.
4. 서블릿과 스프링 – 서블릿 컨테이너와 스프링 컨테이너 연결 구조, 스프링 구동 원리
서블릿 컨테이너와 스프링 컨테이너의 차이점과 연결 구조를 심층 분석한다.
Spring이 어떻게 서블릿 기반 웹 애플리케이션과 통합되는지 내부 컴포넌트 간의 연계 과정을 구조적으로 분석하고, 스프링의 IoC 컨테이너와 서블릿 컨테이너의 역할을 명확히 구분하여 학습한다.
5. 스프링 웹 MVC 초기화 – 스프링 부트 기반 초기화 과정, 서블릿 컨테이너& 스프링 컨테이너, 초기화 클래스들
Spring Boot 기반의 웹 애플리케이션 초기화 과정에서 이루어지는 내부 컴포넌트의 초기화 단계를 도식화하여 학습한다.
서블릿 컨테이너와 스프링 컨테이너의 상호 연결 관계 및 구조를 알아보고 컨테이너 초기화 시점에 이루어지는 자동 설정 초기화 클래스들에 대해서 살펴본다
6. 스프링 웹 MVC 기본 – 아키텍처, DispatcherServlet 외 핵심 클래스
Spring MVC의 핵심 아키텍처를 도식화하여 요청이 들어오고 응답이 반환되는 전체 흐름을 분석한다.
DispatcherServlet을 중심으로 동작하는 핵심 컴포넌트(HandlerMapping, HandlerAdapter, ViewResolver 등)의 역할과 내부 동작 원리를 학습한다.
7. 스프링 웹 MVC 활용 – 요청 프로세스, 핸들러 메서드, 다양한 어노테이션 기법, 내부 실행 구조 분석
Spring MVC의 요청 처리 과정에서 수행되는 내부 연산을 심층 분석한다.
@RequestMapping, @GetMapping, @PostMapping 등 요청 매핑의 원리를 학습하며, 리플렉션을 활용한 핸들러 실행 과정과 매핑 프로세스를 흐름도로 설명한다.
8. 타입변환 – 데이터 변환 방법과 적용하기, Converter, ConversionService, Formatter
Spring의 데이터 변환 기능을 단순한 사용법을 넘어 내부 동작 방식까지 분석한다.
Converter, ConversionService, Formatter가 어떻게 동작하며, 이를 활용한 커스텀 타입 변환을 설계하는 방법을 실습한다.
9. 검증 – 폼 검증(Form Validation), Validator 검증, Bean Validation
Spring MVC에서 제공하는 검증 기능을 아키텍처 수준에서 분석한다.
Validator 인터페이스를 활용한 수동 검증과 Bean Validation(@Valid, @Validated)의 동작 원리를 내부 구조와 함께 탐구하며, 글로벌 검증 적용 방법을 학습한다.
10. 스프링 웹 MVC 실행 구조 이해 – 자바 리플렉션 이해, 요청 매핑 및 메서드 파라미터 실행 원리 및 구조 이해
Spring MVC에서 요청 매핑과 핸들러 실행 과정이 리플렉션을 활용하여 어떻게 동작하는지 원리적으로 분석한다.
요청이 컨트롤러 메서드로 전달되는 과정에서의 메서드 파라미터 변환 및 실행 구조를 다이어그램과 함께 설명하며 내부 클래스를 활용하여 커스텀한 고급 기능을 구현 해 본다
11. 스프링 웹 MVC 공통 기능 – 모델, 바인딩, 검증, 서블릿 필터, 인터셉터, 뷰 처리, 로깅
Spring MVC에서 제공하는 공통 기능을 개별 API 사용법과 더불어 내부 동작 원리와 흐름을 중심으로 학습한다.
데이터 바인딩 과정, 서블릿 필터와 인터셉터의 동작 방식, 뷰 처리 과정 및 로깅 설정을 단계별로 분석한다.
12. 예외 처리 – 예외 처리 종류와 방법, @ExceptionHandler, HandlerExceptionResolver
Spring MVC의 예외 처리 기법을 단계적으로 학습하며 내부 구현 원리를 중심으로 학습한다.
@ExceptionHandler, HandlerExceptionResolver가 어떻게 동작하는지 분석하고, 다이어그램을 활용하여 전체 예외 처리 흐름을 깊이 이해한다.
13. Multipart – 스프링의 파일 처리 개념, 파일 업로드
Spring의 MultipartFile을 활용한 파일 업로드 기능을 내부적으로 어떻게 처리하는지 분석하고 폼 방식과 Rest 방식의 파일 업로드를 구현하는 방법을 살펴 본다.
MultipartResolver 와 MultipartHttpServletRequest 의 흐름과 처리 과정을 이해한다
14. Rest Clients – RestClient, HTTP Interface
Spring에서 RESTful API를 호출하는 두가지 방법인 RestClient와 HTTP Interface의 개념과 활용법을 살펴보고 실제 REST API와의 연동을 통해 기본적인 CRUD 요청을 처리하는 실습을 진행한다
학습 대상은
누구일까요?
스프링 웹 MVC 의 기초.기본을 확실하게 마스터 하고 싶은 분
스프링 웹 MVC 의 기본을 넘어 내부 원리를 이해하고 이를 확장하고 싶은 분
스프링 웹 MVC 의 중. 고급 수준의 기술을 익히고자 하는 분
선수 지식,
필요할까요?
자바(필수)
스프링 기초(필수)
스프링 부트(권장)
9,244
명
수강생
265
개
수강평
1,193
개
답변
4.8
점
강의 평점
5
개
강의
다양한 프로젝트에서 웹/모바일/솔루션 제품 개발과 관련된 업무를 진행해 오고 있으며 분석/설계/개발 Role 을 맡아 오고 있습니다.
공공기간, 교육프로그램, 기업 프로젝트, 쇼핑몰 등의 웹 개발 및 솔루션 프로그램, 프레임워크, 오픈소스 연동 등의 아키텍처 설계 및 구조적 고도화 개선 등을 해 오고 있으며 개발, PL 등의 역할을 맡았습니다.
다양한 Open Source 와 여러 기술적인 경험들을 통해 웹의 전반적인 기술 흐름들을 익혔으며 개발 경험이 거듭될 수록 요구사항의 기능 구현에만 거치지 않고 좀 더 OOP 적인 구조의 소프트웨어로서 안전성과 성능을 고려한 아키텍처링과 튜닝의 기술들을 접목시켜 지속적으로 더 훌륭한 소프트웨어를 완성하기 위한 연구와 개발 실무를 책임감 있게 맡아 오고 있습니다.
전체
119개 ∙ (41시간 5분)
해당 강의에서 제공:
인트로
02:02
커리큘럼 소개 및 개발환경
10:32
디버깅 사용법
14:12
서블릿 방식 - Servlet
27:16
모델 1 방식 - JSP
18:20
모델 2 방식 - MVC
26:58
프론트 컨트롤러 패턴 이해
35:27
스프링 MVC 간단 예제
14:19
서블릿(Servlet)
23:27
HttpServletRequest
31:30
HttpServletResponse
19:34
초기화 클래스들
29:45
아키텍처 이해 (1)
27:35
아키텍처 이해 (2)
23:27
DispatcherServlet 개요
09:34
HandlerMapping 이해
23:18
@RequestMapping (1)
27:31
@RequestMapping (2)
15:54
HandlerAdapter 이해
36:17
Method Arguments
27:16
메서드 기본 매개변수
12:21
@RquestParam (1)
17:33
@RquestParam (2)
19:27
@PathVariable
16:42
@ModelAttribute (1)
24:11
@ModelAttribute (2)
24:05
@ModelAttribute (3)
24:28
@RequestBody
15:53
Model
14:53
@SessionAttribute
13:31
바인딩 - DataBinder (1)
16:35
바인딩 - DataBinder (2)
23:38
@InitBinder
31:21
개요
06:38
Converter
19:48
ConversionService
13:54
Converter 스프링 적용
26:23
바인딩과 타입변환 관계 (1)
16:48
바인딩과 타입변환 관계 (2)
15:12
Formatter
11:48
Formatter 스프링 적용
29:26
어노테이션 기반 포매팅 (1)
21:53
어노테이션 기반 포매팅 (2)
28:46
개요
08:26
BindingResult 기본 (1)
16:48
BindingResult 기본 (2)
18:41
Validator (1)
14:48
Validator (2)
28:30
Bean Validation 개요
19:32
커스텀 검증 어노테이션 구현하기
18:50
Return Values 개요
22:09
@ResponseBody
17:12
ResponseEntity<T>
15:22
View_ViewResolver
19:08
Thymeleaf
13:10
자바 리플렉션 이해
21:21
리플렉션 실전 예제 (1)
07:34
리플렉션 실전 예제 (2)
36:36
핸들러 메서드 호출 원리 (1)
17:59
핸들러 메서드 호출 원리 (2)
19:31
메서드 파라미터 실행 구조 이해
26:45
서블릿 예외 처리
34:53
스프링의 통합 예외 전략 개요
07:06
개요
26:53
파일 업로드 (1)
14:29
파일 업로드 (2)
20:27
파일 업로드 (3)
16:07
RestClient (1)
12:24
RestClient (2)
26:40
RestClient - 오류 처리
17:31
HTTP Interface (1)
20:35
HTTP Interface (2)
21:49