본문 바로가기

spring mvc19

[스프링 MVC - 백엔드 웹 개발 기술] 요청 매핑 핸들러 어뎁터 구조 - RequestMappingHandlerAdapter 01. 요청 매핑 핸들러 어뎁터 구조이번 시간에는 요청 매핑 핸들러 어뎁터(RequestMappingHandlerAdapter) 구조에 대해서 알아본다이전에 HTTP 메시지 컨버터에 대해 배웠지만 아래 사진에서는 메시지 컨버터 관련한 부분이 보이지 않는다.이러한 HttpMessageConverter 는 아래 사진에서 어떠한 부분에 해당이 되는 것일까?이번 시간의 주요 포인트는 요청 매핑 핸들러 어댑터, 그리고 HTTP 메시지 컨버터가 어디에서 사용이 되는지 확인해보자HTTP 메시지 컨버터는 스프링 MVC의 어느곳에서 사용되는 것일까?위 그림만 봤을때는 HTTP 메시지 컨버터가 사용되는 곳은 보이지 않는다비밀은 어노테이션 기반의 컨트롤러인 @RequestMapping을 처리하는 핸들러 어댑터인 요청 매핑 .. 2024. 1. 23.
[스프링 MVC - 백엔드 웹 개발 기술] HTTP 메시지 컨버터(Message Converter) 01. 요청 매핑 핸들러 어뎁터 구조RequestMappingHandlerAdapterHTTP 메시지 컨버터는 스프링 MVC의 어느곳에서 사용되는 것일까?위 그림을 봤을대 HTTP 메시지 컨버터가 사용되는 곳은 보이지 않는다모든 비밀은 어노테이션 기반의 컨트롤러인 @RequestMapping을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdaptor(요청 매핑 핸들러 어뎁터)에 있다01-1. RequestMappingHandlerAdaptor 동작 방식ArgumentResolver(요청시)RequestMapping 핸들러 어댑터 → ArgumentResolver에게 문의(파라미터 존재?) → 핸들러 전달@GetMapping("/test1")public ResponseEntity tes.. 2024. 1. 11.
[스프링 MVC - 백엔드 웹 개발 기술] HTTP 요청 파라미터 - 쿼리 스트링과 HTML Form, @RequestParam, @ModelAttribute, 텍스트, JSON 요청 방식 01. HTTP 요청 파라미터 - QueryString, HTML Form이번 시간에는 쿼리 스트링와 HTML Form 데이터 전송 방식에 대해 알아본다.01-1. 클라이언트 → 서버 → 데이터 전송 방식클라이언트 → 서버로 데이터 전송하는 방식은 아래 3가지 존재GET - 쿼리 스트링(Query String)/user?username=hello&age=20URL 쿼리 파라미터에 데이터 포함 후 전달예) 검색, 필터, 페이징 등에서 사용POST - HTML FormContent-type : application/x-www-form-urlencoded메시지 바디에 쿼리 파라미터 형식으로 전달username=hello&age=20HTTP Message BodyHTTP API에서 사용 - JSON, XML, .. 2024. 1. 5.
[스프링 MVC - 백엔드 웹 개발 기술] MVC 프레임워크 만들기 01. 프론트 컨트롤러 패턴 소개이번 시간에는 MVC 패턴을 개선하는 시간을 가져보자.키워드는 공통 로직을 갖는 각각의 컨트롤러를 추상화하는 것.01-1. 프론트 컨트롤러 패턴 도입 전이전 프론트 컨트롤러(Front Controller) 도입 전에는 각 컨트롤러가 하나의 공통 로직을 가지고 있었음이러한 부분은 “코드의 중복” 이라 볼 수 있기 때문에 좋은 구조가 아님😶 그렇다면 이러한 중복을 어떻게 없앨 수 있는 것일까?.. 그것은 바로 프론트 컨트롤러 패턴! 스프링에서는 프론트 컨트롤러(Front Controller) 패턴을 도입하여 이러한 중복을 추상화 하였다. 다음으로 프론트 컨트롤러에 대해 간단히 알아보고 넘어가자.01-2. 프론트 컨트롤러 패턴 도입 후프론트 컨트롤러 도입 후 공통 로직은 1개.. 2023. 9. 11.
[스프링 MVC - 백엔드 웹 개발 기술] 서블릿, JSP, MVC 패턴 01. 회원 관리 웹 애플리케이션 요구사항이번 시간에는 아주 간단한 회원 관리 웹 애플리케이션을 구축하는 시간을 갖는다Core 도메인 모듈을 생성 한다서블릿을 통해 구현JSP를 통해 구현MVC 패턴으로 구현01-1. 요구사항회원 정보seq를 위해 id 필드 생성이름은 username 필드 생성나이는 age 필드 생성01-2. 도메인 객체 생성 - Memberpackage hello.servlet.domain.member;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; // seq private String username; private int age; publi.. 2023. 8. 26.
[스프링 MVC - 백엔드 웹 개발 기술] HttpServletResponse와 HTTP 응답 방식 - TEXT, HTML, API JSON 01. HttpServletResponse - 기본 사용법01-1. HttpServletResponse 역할개발자가 일일이 HTTP 응답 메시지를 생성하기에는 힘들다서블릿은 HTTP 응답 메시지 생성하는 역할을 담당HTTP 응답코드 지정헤더 생성바디 생성편의 기능 제공Content-Type쿠키Redirect01-2. HttpServletResponse - 기본 사용법package hello.servlet.basic.response;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServle.. 2023. 8. 13.
[스프링 MVC - 백엔드 웹 개발 기술] HTTP 요청 방식 - GET, POST, HTTP API 01. HTTP 요청 데이터 - 개요HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자.즉, 데이터를 전달하는 방식에 대해 숙지 한다.01-1. 주로 다음 3가지 방법을 사용GET, POST, HTTP APIGET - 쿼리 파라미터/url?username=hello&age=20메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달예) 검색, 필터, 페이지등에서 많이 사용하는 방식POST - HTML Formcontent-type: application/x-www-form-urlencoded메시지 바디에 쿼리 파라미터 형식으로 전달 username=hello&age=20예) 회원 가입, 상품 주문, HTML Form 사용HTTP message body에 데이터를.. 2023. 5. 14.
[스프링 MVC - 백엔드 웹 개발 기술] HttpServletRequest 개요와 기본 사용법 01. HttpServletRequest의 개요01-1. HttpServletRequest 역할HTTP 요청 메시지를 개발자가 직접 파싱해도 되지만, 매우 불편하다서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 HTTP 요청 메시지를 파싱한다결과는 HttpServletRequest 객체에 담아서 제공한다ex) protected void service(HttpServletRequest request, HttpServletResponse response) { }HttpServletRequest를 사용하면 HTTP Body의 내용을 편리하게 사용 가능01-2. HTTP 요청 메시지POST /save HTTP/1.1 # 시작 라인Host: localhost:8080 # 헤더 정보Conten.. 2023. 5. 7.
[스프링 MVC - 백엔드 웹 개발 기술] 서블릿 생성 해보기 01. Hello 서블릿이번 시간에는 스프링 부트 환경에서 서블릿을 등록하고 사용하는 시간을 갖는다Spring F/W 만으로 등록하는 환경 역시 가능하지만 손이 많이 가기에 Spring Boot 사용서블릿은 톰캣 같은 WAS 서버를 직접 설치해야 함이렇게 설치 된 WAS 위에 서블릿 코드를 클래스 파일로 빌드해서 올려야함톰캣 서버를 실행(이미 구동 중인 경우 재실행) 해주면 된다하지만 Spring Boot는 이미 내부 모듈에 내장 WAS(Tomcat, Undertow, Netty)를 가지고 있기 때문에 Spring Boot를 기반으로 하여 WAS를 구성한다01-1. 스프링 부트 서블릿 환경 구성?package hello.servlet;import org.springframework.boot.SpringA.. 2023. 5. 7.
[스프링 MVC - 백엔드 웹 개발 기술] Spring Boot MVC 프로젝트 생성 01. 프로젝트 생성https://start.spring.io/스프링 MVC 환경을 구성하기 위해 프로젝트 생성특정 경로에 프로젝트를 이동 시킨 후 IDE(Intellij)를 통해 Openbuild.gradle의 plugins의 id가 war로 설정되어 있는지 확인서버를 실행하여 Tomcat 동작 확인프로젝트 생성 과정의 상세한 내용은 기재하지 않았습니다 2023. 5. 7.
[스프링 MVC - 백엔드 웹 개발 기술] HTML, HTTP API, CSR, SSR, 자바 백엔드 기술 웹 역사 이번 시간에는 Client(Browser)와 Server 간의 통신 방법의 종류에 대해 알아볼 것이다. 대표적인 케이스는 아래와 같다.정적 리소스동적 페이지(JSP, Thymleaf)HTTP API 요청위 키워드를 잠시 보고 다음 글을 읽어주시면 감사하겠습니다.01. 데이터를 주고받는 방식01-1. 정적 리소스 반환정적 리소스 제공시에는 고정된 HTML 파일, CSS, JS, 이미지, 영상 등을 제공주로 웹 브라우저에서 Web Server(Apache, Nginx)에 요청을 한다Web Server(Apache, Nginx)는 특정 경로에 있는 리소스를 반환Web Server는 DB 작업이나, 애플리케이션 로직 수행 요청이 아닌 경우 직접 처리 후 반환01-2. 동적 HTML 페이지(템플릿 엔진) 반환We.. 2023. 4. 30.
[Spring MVC - 핵심 원리 기본] 빈 스코프 01. 빈 스코프란?지금까지 우리는 스프링 빈이 “스프링 컨테이너의 시작”과 함께 생성되어서 “스프링 컨테이너가 종료” 될 때까지 유지된다고 학습 하였다이것은 스프링 빈이 기본적으로 싱글톤 스코프로 생성되기 때문이다스코프는 번역 그대로 빈이 존재할 수 있는 범위를 뜻함01-1. 스프링이 지원하는 다양한 스코프싱글톤기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 스코프프로토타입스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여, 더는 관리하지 않는 매우 짧은 범위의 스코프웹 관련 스코프request : 웹 요청이 들어오고 나갈때 까지 유지되는 스코프session : 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는.. 2023. 4. 25.