Java
DispatcherServlet
Spring MVC를 이해하는 것은 Dispatcher Servlet이 어떻게 동작하는지를 이해하는 것이다. Dispatcher Servlet이 요청을 받아서 결과를 출력하기까지 여러가지 Component들을 사용한다. Handler Mapping Handler Adapter MultipartResolver LocaleResolver ThemeResolver HandlerExceptionResolver RequestToViewNameTranslator ViewResolver FlashMapManager DispatcherServlet 프론트 컨트롤러(Front Controller) 클라이언트의 모든 요청을 받을 후 이를 처리할 핸들러에게 넘기고 핸들러가 처리한 결과를 받아 사용자에게 응답 결과를 보여준다..
Spring MVC 기본 동작 흐름
Spring MVC는 MVC Model2의 발전된 형태로 구성되어 있다. 구성요소 이름 설명 DispatcherServlet 클라이언트의 요청을 받아 컨트롤러에게 전달, 컨트롤러가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다. HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정한다. HandlerAdapter DispatcherServlet의 처리 요청을 변환해서 컨트롤러에게 전달, 그 응답 결과를 DispatcherServlet이 요구하는 형식으로 변환한다. Controller 클라이언트의 요청을 처리한 뒤, 결과를 리턴한다. ModelAndView 컨트롤러가 처리한 결과 정보 및 뷰 선택에 필요한 정보를 담는다. ViewResolver 컨트롤러의 ..
DataSource란?
1. DataSource란? connectionPool은 경우에 따라 여러개가 생성될 수 있으며, DataSource는 connectionPool을 관리하는 목적으로 사용되는 객체이다. DataSource를 이용해 커넥션을 얻어오고 반납하는 등의 작업을 수행한다. DataSource로 부터 얻은 connection의 close 메서드는 커넥션을 반납하는 작업을 수행한다.
Connection Pool이란?
1. connectionPool이란? DB연결은 비용이 많이 든다.(시간이나 자원을 많이 소비) 이를 해결하기 위해 connectionPool은 DBMS와 커넥션을 여러개 맺어두고, 커넥션이 필요하면 connectionPool에게 빌려서 사용한 후, 반납한다. 2. connectionPool에게 connection을 빌린 후, 반납하지 않으면 어떻게 되나? connectionPool에 사용 가능한 connection이 없어서 프로그램이 느려지거나 심할 경우에는 장애를 발생시킬 수 있다. 참조 URL https://www.edwith.org/boostcourse-web/lecture/20661/
Dto란?
Dto란? Data Transfer Object의 약자이다. 계층간 데이터 교환을 위한 자바빈즈이다. 여기서 계층이란 컨트롤러뷰, 비즈니스 계층, 퍼시스턴스 계층을 의미한다. 일반적으로 Dto는 로직을 가지고 있지 않고, 순수한 데이터 객체이다. 필드와 getter, setter을 가지며, , 추가적으로 toString(), equals(), hashCode()등의 Object 메소드를 오버라이딩할 수 있다. 참조 URL https://www.edwith.org/boostcourse-web/lecture/20661/
Java의 Bean 클래스란?
Bean 클래스란? Spring IoC 컨테이너가 관리하는 객체를 빈(Bean)이라고 하며, Spring에서는 이 빈들을 관리한다는 의미로 컨테이너를 빈 팩토리(Bean Factory)라고 한다.(팩토리 디자인 패턴 구현) 예전에는 비주얼한 컴포넌트를 Bean이라고 했는데, 근래에 들어서는 일반적인 자바 class를 Bean클래스라고 한다. Bean 클래스는 3가지 특징을 가지고 있다. 기본 생성자를 가진다. 필드는 private하게 선언한다. getter(), setter() 메소드를 가진다. (name이라는 필드의 getName(), setName() 메소드를 name 프로퍼티(property)라고 한다.) 참조 URL https://www.edwith.org/boostcourse-web/lectur..