[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] HttpServletRequest
·
Back-End/Spring
[작성일: 2024. 04. 11] HttpServletRequest 역할HTTP 요청 메시지를 개발자가 직접 파싱해서 사용하면 매우 불편해진다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱하고, 그 결과를 HttpServletRequest 객체에 담아서 제공한다.  POST /save HTTP/1.1Host: localhost:8080Content-Type: application/x-www-form-urlencodedusername=kim&age=20  HttpServletRequest를 사용하면 HTTP 메시지를 편리하게 조회할 수 있다. Start Line에는 HTTP 메소드, URL, 쿼리 스트링, 스키마, 프로토콜의 정보를 제공한..
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] Hello Servlet
·
Back-End/Spring
[작성일: 2024. 04. 03] Hello Servlet스프링 부트 서블릿 환경 구성스프링부트는 서블릿을 직접 등록해서 사용할 수 있도록 @servletComponentScan을 지원한다. package hello.servlet;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComponentScan;@ServletComponentScan // 서블릿 자동 등록 애노테이션@SpringBootApplicationpublic class ServletApp..
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 웹 애플리케이션 이해
·
Back-End/Spring
[작성일: 2023. 11. 27] 웹 서버와 웹 애플리케이션 서버웹 서버(Web Server)HTTP 기반으로 동작하며 정적 리소스, 기타 부가기능을 제공한다.정적(파일) HTML, CSS, JS, 이미지, 영상 등NGINX, APACHE   웹 애플리케이션 서버(WAS - Web Applicaion Server)HTTP 기반으로 동작하며 웹 서버 기능을 포함하여 정적 리소스 제공이 가능하다.프로그램 코드를 실행해서 애플리케이션 로직을 수행한다.동적 HTML, HTTP API(JSON)서블릿, JSP, 스프링 MVC톰캣(Tomcat), Jetty, Undertow   웹 시스템 구성 - WEB, WAS, DB정적 리소스는 웹 서버가 처리한다.웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS..
[스프링 핵심 원리 - 기본편] 빈 스코프
·
Back-End/Spring
[작성일: 2023. 08. 16] 빈 스코프스프링은 다음과 같은 다양한 스코프(빈이 존재할 수 있는 범위)를 지원한다. 싱글톤: 기본 스코프, 스플이 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프웹 관련 스코프request: 웹 요청이 들어오고 나갈 때까지 유지되는 스코프session: 웹 세션이 생성되고 종료될 때까지 유지되는 스코프application: 웹 서블릿 컨텍스트와 같은 범위로 유지되는 스코프    프로토타입 스코프싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈을 반환한다. 프로토타입 스코프를 스프링 컨테이너에 조회하면 ..
[스프링 핵심 원리 - 기본편] 빈 생명주기 콜백
·
Back-End/Spring
[작성일: 2023. 08. 15] 빈 생명주기 콜백 시작데이터베이스 커넥션 풀이나 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 직업을 진행하려면 객체의 초기화와 종료 작업이 필요하다. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. 이 NetworkClient는 애플리케이션 시작 시점에 connect()를 호출해서 연결을 맺어두어야 하고 애플리케이션이 종료되면 disConnect()를 호출해서 연결을 끊어야 한다. public class NetworkClient { private String url; public NetworkClient() { System.out.println("..
[스프링 핵심 원리 - 기본편] 의존관계 자동 주입
·
Back-End/Spring
[작성일: 2023. 08. 13] 다양한 의존관계 주입 방법 의존관계 주입에는 크게 생성자 주입, setter 주입, 필드 주입, 일만 메서드 주입 등이 있다. 생성자 주입 생성자 주입은 생성자 호출 시에 딱 1번만 호출되는 것이 보장되며 불변, 필수 의존관계에 사용된다. 생성자가 1개만 있으면 @Autowired를 생략 할 수 있다.(스프링 빈에만 해당) @Componentpublic class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderSe..