본문 바로가기

Backend/Spring7

[김영한 Spring MVC 1편] 스프링 MVC - 구조 이해 본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 내용이 포함되어 있습니다. 스프링 MVC 전체 구조직접 만든 MVC 프레임워크 구조 SpringMVC 구조 직접 만든 프레임워크 -> 스프링 MVC 비교FrontController -> DispatcherServlethandleMappingMap -> HandlerMappingMyHandlerAdapter -> HandlerAdapterModelView -> ModelAndViewviewResolver -> ViewResolverMyView -> ViewDispatcherServlet 구조org.springframework.web.servlet.DispatcherServlet 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.스프링 MVC의.. 2024. 5. 29.
[김영한 Spring MVC 1편] MVC 프레임워크 만들기 2024/05/17프론트 컨트롤러 패턴 소개프론트 컨트롤러 도입전 프론트 컨트롤러 도입 후 FrontController 패턴 특징프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받는다.프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다.입구가 하나이다.공통 처리가 가능하다.프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 스프링 웹 MVC와 프론트 컨트롤러스프링 웹 MVC의 핵심도 바로 FrontController스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있다. V1구조 ControllerV1package com.example.servlet.basic.web.frontcontroller.v1;import jakart.. 2024. 5. 17.
[김영한 Spring DB 1편] 커넥션풀과 데이터 소스 2024/05/16커넥션 풀 이해데이터베이스 커넥션을 매번 획득데이터베이스 커넥션을 획득할 때 거치는 과정애플리케이션 로직 DB 드라이버를 통해 커넥션을 조회한다.DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 3 way handshake 같은 TCP/IP 연결을 위한 네트워크 동작이 발생한다.DB 드라이버는 TCP/IP 커넥션이 연결되면, ID, PW와 기타 부가정보를 DB에 전달한다.DB는 ID, PW를 통해 내부 인증을 완료하고, 내부 DB에 세션을 생성한다.DB는 커넥션 생성이 완료되었다는 응답을 보낸다.DB드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다.커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 소모되는 일이다.DB는 물론이고 애플리케이션 서버에서도 TCP.. 2024. 5. 16.
[김영한 Spring MVC 1편] 서블릿, JPS, MVC 패턴 2024/05/09(목)회원 관리 웹 애플리케이션 요구사항회원 정보이름: username나이: age 기능 요구사항회원 저장회원 목록 조회회원 도메인 모델package com.example.servlet.basic.domain;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { this.username = username; this.age = age.. 2024. 5. 9.
[김영한 Spring MVC 1편] HTTP 응답 데이터 HttpServletResponse 역할HTTP 응답 메시지 작성HTTP 응답 코드 지정헤더 생성바디 생성편의 기능 제공Content-Type, 쿠키, Redirectpackage com.example.servlet.basic.response;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.Cookie;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import .. 2024. 5. 8.
[김영한 Spring MVC 1편] HTTP 요청 데이터 2024/04/26HTTP 요청 데이터 - 개요HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법 주로 3가지 방법을 사용한다. (1) GET 쿼리 파라미터/url"?username=hello&age=20"메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달ex) 검색, 필터, 페이징등에서 많이 사용하는 방식 (2) POST - HTML Formcontent-type: application/x-www-form-urlencoded메시지 바디에 쿼리 파라미터 형식으로 전달 username=hello&age=20ex) 회원 가입, 상품 주문, HTML Form 사용 (3) HTTP message body에 데이터를 직접 담아서 요청HTTP API에서 주로 사용, JSON, .. 2024. 4. 26.
@PostConstruct @PostConstruct란? @PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드 사용하는 이유 (1) 생성자가 호출된 경우, Bean은 초기화가 되지 않았다. @PostConstruct를 사용하면 Bean이 초기화 됨과 동시에 의존성을 확이할 수 있다. (2) bean lifecycle에서 오직 한 번만 수행이된다. bean이 여러번 초기화 되는 것을 방지할 수 있다. 코드 사용 @Value("${jwt-secret-key}") private String secretKey; @Value("${jwt-access-token-expiration-time}") private long ACCESS_TOKEN_EXPIRED_TIME; @Value("${jwt-refresh-token.. 2023. 12. 13.