1. DI 개념 소개 및 장점 DI ( Dependency Injection ) 의존성 주입 - 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다 - 런타임 시 의존 관계를 맺는 대상을 외부에서 결정하고 주입해 주는 것 - 스프링 프레임워크는 DI 기능을 지원해주는 프레임워크 DI 장점 1. 의존성 주입을 인터페이스 기반으로 설계하면 코드가 유연해진다 - 느슨한 결합도 ( loose coupling ) 2. 변경에 유연해짐 - 결합도가 낮은 객체끼리는 부품을 쉽게 갈아끼울 수 있음 3. 테스트하기 좋은 코드가 됨 DI 프레임워크 구조 package org.example.di; import java.lang.reflect.Constructor; import java.lang.reflect.Invoca..
package org.example; import org.apache.catalina.startup.Tomcat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; public class WebApplicationServer { private static final Logger log = LoggerFactory.getLogger(WebApplicationServer.class); public static void main(String[] args) throws Exception { String webappDirLocation = "webapps/"; Tomcat tomcat = new Tomcat(); tomcat..
프런트 컨트롤러 패턴 • 모든 요청을 단일 handler(처리기)에서 처리하도록 한는 패턴 • 스프링 웹 MVC 프레임워크의 DispatcherServlet (프런트 컨트롤러 역활) 이 프런트 컨트롤러 패턴으로 구현돼 있음 Forward • 서블릿에서 클라이언트 ( 웹 브라우저) 를 거치지 않고 바로 다른 서블릿(또는 JSP)에게 요청하는 방식 • Forward 방식은 서버 내부에서 일어나는 요청이기 때문에 httpservletRequest, HttpServletResponse 객체가 새롭게 생성되지 않음 (공유됨) • RequestDispatcher dospatcher = request.getRequestDispatcher ( 포워드 할 서블릿 또는 JSP ) dispatcher.forward(requ..
Reflection • 힙 영역에 로드돼 있는 클래스 타입의 객체를 통해 필드/메소드/생성자를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API • 컴파일 시점이 아닌 런타임 시점에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법 • 주로 프레임워크 또는 라이브러리 개발 시 사용됨 https://www.baeldung.com/reflections-library A Guide to the Reflections Library | Baeldung Learn how to configure the Reflections library and use it in your Java projects www.baeldung.com Reflection 사용하는 프레임워크/라이브러리 소개 • Sprin..