
강의명 : 스프링 MVC 백엔드 웹 개발 핵심 기술자바 백엔드 웹 기술 소개서블릿, JSP, MVC 패턴, MVC 프레임워크까지 웹 기술 전반을 학습스프링 MVC 기본 기능 학습 후 스프링 MVC를 사용해서 기본 CRUD가 가능한 웹 페이지 개발 진행강의 링크 : ht
Spring MVC에서 사용할 수 있는 대표적인 템플릿 엔진 FreeMarker, JSP, Thymeleaf 비교JSP (JavaServer Pages) : Java 코드와 HTML을 섞어서 동적인 웹 페이지를 생성하는 전통적인 방식FreeMarker : HTML과 J

웹 - HTTP 기반
HTML Form 데이터 전송 POST 전송 - 저장 서버에서 처리해야 하는 업무 웹 애플리케이션 서버 직접 구현 서블릿을 지원하는 WAS 사용 서블릿 특징 
웹 브라우저에서 서버에 요청을 하면, 웹 애플리케이션 서버가 응답을 함서버에 요청을 하면 TCP/IP 연결이 됨그리고 서블릿을 호출해줌서블릿을 누가 호출해주는지가 중요한 포인트임※ 쓰레드가 서블릿을 호출해줌 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드자
1) 정적 리소스 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공 주로 웹 브라우저 2) HTML 페이지 동적으로 필요한 HTML 파일을 생성해서 전달 웹 브라우저 : HTML 해석 3) HTTP API HTML이 아니라 데이터를 전달 주로 JSO
1) 과거 기술 서블릿 - 1997 HTML 생성이 어려움 JSP - 1999 HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할 담당 서블릿, JSP 조합 MVC 패턴 사용 모델, 뷰 컨트롤러로 역할을 나누어 개발 MVC 프레임워크 춘추
1. 프로젝트 생성 Java 17 이상 설치 IDE : IntelliJ Project : Gradle - Groovy Project Spring Boot : 3.x.x > ※ Spring boot 3.0 선택시 확인 사항 > 1. Java 17 이상을 사용해야 함 >

😊 개요 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아봄 * 주로 사용하는 3가지 방법 (1) GET - 쿼리파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서
HTTP 응답 메시지 생성HTTP 응답 코드 지정헤더 생성바디 생성편의 기능 제공Content-Type, 쿠키, RedirectHTTP 응답 메시지는 주로 다음 내용을 담아서 전달함단순 텍스트 응답앞에서 살펴봄(write.println("ok"))HTML 응답HTMP
이름 : username나이 : age회원 저장회원 목록 조회id는 Member를 회원 저장소에 저장하면 회원 저장소가 할당회원 저장소는 싱글톤 패턴을 적용함스프링을 사용하면 스프링 빈으로 등록하면 되지만, 지금은 최대한 스프링 없이 순수 서블릿 만으로 구현하는 것이

JSP를 사용하려면 먼저 다음 라이브러리를 추가해야 함build.gradle에 추가build.gradle에 추가스프링 부트 3.0 이상이면 javax.servlet:jstl을 제거하고 위 코드를 추가해야 함main/webapp/jsp/members/new-form.js
하나의 서블릿이나 JSP 만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게 됨결과적으로 유지보수가 어려워짐비즈니스 로직을 호출하는 부분에 변경이 발생해도 해당 코드를 손대야 하고, UI를 변경할 일이 있어도 비즈니스 로직이 함께 있는 해

학습 목표 : Spring MVC의 동작 원리를 직접 구현하면서 체득

4-1에서 구현한 코드는 모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 있고 깔끔하지 않음 - 해당 부분을 깔끔하게 분리하기 위해 별도로 뷰를 처리하는 객체를 만듦

컨트롤러 입장에서 HttepServletRequest, HttpServletResponse는 필요하지 않음

서블릿 종속성을 제거하고 뷰 경로의 중복을 제거하는 등, 잘 설계된 컨트롤러하지만 실제 컨트롤러 인터페이스를 구현하는 개발자 입장에서 보면, 항상 ModelView 객체를 생성하고 반환해야 하는 부분이 조금 번거로움좋은 프레임워크는 아키텍처도 중요하지만, 그와 더불어
ControllerV3 방식과 ControllerV4 방식으로 개발하는 것을 혼용하고 싶은 경우를 위한 V5 개발지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있음ControllerV3, ControllerV4는

프론트 컨트롤러 패턴에서 클라이언트의 모든 요청을 가장 먼저 받아 처리하는 역할을 수행클라이언트 요청은 중앙 집중식 게이트웨이 역할을 하는 프론트 컨트롤러로 먼저 전달됨여기서 요청에 맞는 적절한 컨트롤러를 찾아 위임함컨트롤러가 HttpServletRequest에 직접
핸들러 매핑과 어댑터를 이해하기 위한 과거 컨트롤러 방식 구현 지금은 @Controller, @RequestMapping과 같은 애노테이션 기반의 컨트롤러를 주로 사용 예전에는 직접 인터페이스를 구현하는 방식으로 컨트롤러를 만들었음 이런 예전 방식은 핸들러 매핑과 핸들

Spring MVC에서 View Resolver와 템플릿 엔진 동작 방식 학습 : 컨트롤러의 반환값이 어떻게 실제 사용자에게 보여지는 화면(뷰)으로 연결되는지 전체 흐름 이해
스프링이 제공하는 컨트롤러는 애노테이션 기반으로 동작해서, 매우 유연하고 실용적과거에는 자바 언어에 애노테이션이 없기도 했고, 스프링도 처음부터 이런 유연한 컨트롤러를 제공한 것은 아님스프링은 애노테이션을 활용한 매우 유연하고 실용적인 컨트롤러를 만들었는데, 이것이 바
스프링 프로젝트 작성 시 디버깅을 위해 System.out.println()을 사용함하지만 운영 환경에서는 반드시 로깅 라이브러리를 통해 로그를 남겨야 함로그 레벨로 출력 범위 조절 가능 (예 : 운영 환경에서는 info만, 개발 환경은 debug 까지)출력 포맷, 시
@RestController / @Controller MappingController @Controller : 반환값이 String이면 뷰 이름으로 인식 -> 뷰 렌더링 @RestController : 반환 값으로 뷰를 찾는 것이 아니라, HTTP 응답 바디에 바로
스프링 MVC에서 HTTP 요청과 헤더 조회 관련 애노테이션 및 기능에 대한 정리 스프링 MVC는 애노테이션 기반으로 HTTP 요청의 다양한 정보를 편리하게 받을 수 있도록 지원함 특히 HTTP 헤더 정보도 쉽게 조회할 수 있음 주요 기능 및 예제 파라미터 설명