본문 바로가기

Spring/인프런 토비의 Spring Boot49

섹션 4-2 [독립 실행형 스프링 애플리케이션] 의존 오브젝트 추가 의존 오브젝트 추가스프링 컨테이너는 어떤 타입의 오브젝트를 만들때 딱 한번만 생성합니다. 스프링 컨테이너가 가지고 있는 오브젝트를 필요로 하는 여러 오브젝트들이 있을 수 있는데 스프링 컨테이너에 어떤 타입의 빈을 요청할때마다 새로운 오브젝트를 만들어서 제공하는게 아니라 초기에 생성해둔 오브젝트 단하나를 계속해서 제공하여 재사용할 수 있게 합니다. 스프링 컨테이너는 싱글턴 패턴을 사용한 것과 유사하게 어떤 타입의 오브젝트를 딱 한번만 만들어두고 이 오브젝트를 계속 재상용할 수 있게 해주는 기능을 제공합니다. 그래서 스프링 컨테이너를 싱글톤 레지스트리라고도 부릅니다. 이제 HelloController의 책임을 줄여보도록 하겠습니다. HelloController는 클라이언트의 요청만 검증하고 비즈니스 로직은 .. 2024. 6. 1.
섹션 4-1 [독립 실행형 스프링 애플리케이션] 스프링 컨테이너 사용 스프링 컨테이너 사용지난 시간에는 프론트 컨트롤러에 HelloController라는 오브젝트를 하나 만든다음 HelloController를 사용하는 방식으로 구현을 했는데  이제는 스프링 컨테이너 안에서 관리될 수 있도록 HelloController를 구현해보도록 하겠습니다. 스프링 컨테이너는 크게 두가지를 필요로 하는데 비즈니스 오브젝트 포조 라고 하는 자바 오브젝트를 가 필요합니다. 또한 포조 자바 객체를 만든 코드를 어떤식으로 구성할지에 대한 정보를 담고있는 Configuration Metadata를 필요로 합니다. package com.tobyspring.tobyspringboot; import java.io.IOException; import javax.servlet.ServletCo.. 2024. 6. 1.
섹션 3-7 [독립 실행형 서블릿 애플리케이션] Hello 컨트롤러 맵핑과 바인딩 Hello 컨트롤러 매핑과 바인딩맵핑은 웹 요청에 들어있는 정보를 활용해서 어떤 로직을 수행하는 코드를 호출할 것인가 결정하는 작업이다. /hello 요청이 들어오면 helloController에 hello메소드를 호출해서 로직을 수행하고 그 결과를 리턴하게 한다.바인딩은 헬로 컨트롤러는 웹 요청이나 웹 응답을 직접 노출하는 기술적인 타입을 사용하지 않았습니다. 컨트롤러를 구현한다 하더라도 직접적으로 웹 요청과 응답을 다루는 오브젝트를 사용하지 않습니다. 따라서 파라미터로 넘어온 name값을 String  타입으로 hello 메소드를 호출할 때 인자값으로 넘겨주는 작업을 바인딩이라고 합니다. form을 통해서 굉장히 많은 정보들이 넘어왔을때 dto등을 java bean 형태의 오브젝트를 만들어서 그 안에.. 2024. 5. 30.
섹션 3-6 [독립 실행형 서블릿 애플리케이션] 프론트 컨트롤러 전환 프론트 컨트롤러 전환package com.tobyspring.tobyspringboot; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.spri.. 2024. 5. 30.
섹션 3-5 [독립 실행형 서블릿 애플리케이션] 프론트 컨트롤러 프론트 컨트롤러서블릿은 요청마다 하나하나 매핑하여 구현이 필요하여 보일러 플레이트가 발생하는 문제점이 있다. 따라서 서블릿에 접근방법을 개선이 필요로 했고 또한 서블릿은 웹 요청과 응답을 직접적으로 request Object와 response Object를 다뤄줘야 하는 방식이기 때문에 자연스럽지 않는 문제가 있었습니다. 따라서 기본적인 서블릿으로만 기능을 개발하는데 한계가 있었습니다.  이러한 한계를 극복하기 위해 프론트 컨트롤러가 등장하게되었습니다.프론트 컨트롤러는 서블릿은 각 URL에 맞게 맵핑을 해서 각기 다른 서블릿이 다른 서블릿 URL로 들어오는 요청을 맡아서 처리하는 방식으로 동작을 해야하는데 서블릿에 공통적으로 등장하는 코드를 중앙화된 제일 앞단에 존재하는 컨트롤러라고 이름 붙이는 오브젝트.. 2024. 5. 30.
섹션 3-4 [독립 실행형 서블릿 애플리케이션] 서블릿 요청 처리 서블릿 요청 처리이전에 구현한 HelloController처럼 name을 파라미터로 전달받아 요청을 처리할 수 있도록 서블릿 코드를 개선한다. package com.tobyspring.tobyspringboot; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.boo.. 2024. 5. 30.