[Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교
·
Spring/개념
Spring Bean이란? Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부르며, 이러한 Bean들은 Spring을 구성하는 핵심 요소이다. Spring의 Bean을 정리하면 아래와 같다. POJO(Plain Old Java Object)로써 Spring 애플리케이션을 구성하는 핵심 객체이다. Spring IoC 컨테이너(또는 DI 컨테이너)에 의해 생성 및 관리된다. class, id, scope, constructor-arg 등을 주요 속성으로 지닌다. Spring Bean 구성 요소 class: Bean으로 등록할 Java 클래스 id: Bean의 고유 식별자 scope: Bean을 생성하기 위한 방법(sin..
[Spring] Spring Bean 총 정리
·
Spring/개념
스프링 빈이란? 스프링 빈은 스프링 컨테이너에 의해 관리되는 자바 객체(POJO)를 의미한다. 스프링 컨테이너 스프링 컨테이너는 스프링 빈의 생명 주기를 관리하며, 생성된 스프링 빈들에게 추가적인 기능을 제공하는 역할을 한다. IoC와 DI의 원리가 스프링 컨테이너에 적용된다. 개발자는 new 연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸하지만, 스프링 컨테이너를 사용하면 해당 역할을 대신해 준다. 즉, 제어 흐름을 외부에서 관리하게 된다(IoC, Inversion of Control). 또한, 객체들 간의 의존 관계를 스프링 컨테이너가 런타임 과정에서 알아서 만들어 준다(DI, Dependency Injection). 스프링 빈 등록 방식 Component Scan 컴포넌트 스캔..
[Spring] IoC, DIP, DI, 스프링 컨테이너, 스프링 빈(Bean)이란?
·
Spring/개념
IoC(Inversion of Control, 제어의 역전)란? 흔히 IoC는 제어의 역전이라는 뜻으로 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 말한다. 맞는 말이긴하지만 좀 더? 직관적으로 풀어서 작성해보면 아래와 같을 것이다. don’t call me, I’ll call you. - Hollywood principle 개인적으로 IoC 를 가장 직관적으로 잘 설명한 문장이라고 생각한다. 좀 더 개발 친화적인 용어로 풀어서 설명하면 다음과 같이 표현할 수 있다. IoC 란 코드의 흐름을 제어하는 주체가 바뀌는 것이다. 코드의 흐름을 제어한다는 것은 여러 행위를 포함한다. 오브젝트를 생성하는 것, 오브젝트의 생명주기를 관리하는 것, 메소드를 수행하는 것 등. 그리고 일반적..
[Spring] Dispatcher-Servlet(디스패처 서블릿)이란? 디스패처 서블릿의 개념과 동작 과정
·
Spring/개념
Dispatcher-Servlet이란? 디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가지고 있다. 그리고 이러한 단어를 포함하는 디스패처 서블릿은 표현 계층(Presentation layer) 전면에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 중앙집중식으로 처리되는 프론트 컨트롤러(Front Controller)라고 정의할 수 있다. ※ 참고 OSI 7 계층 : 어플리케이션 -> 표현 -> 세션 -> 전송 -> 네트워크 -> 데이터링크 -> 물리 TCP/IP 계층 : 어플리케이션 -> 전송 -> 인터넷 -> 네트워크 엑세스(데이터링크+물리) DispatcherServlet은 Spring MVC의 핵심 요소이다. 클라이언트로부터 어떠한 요청이 오..
[Spring] Spring MVC Framework란? Spring MVC 구조, DispatcherServlet, 핸들러 매핑, 핸들러 어댑터
·
Spring/개념
Spring MVC Framework란? MVC는 Model-View-Controller의 약자로 하나의 디자인 패턴을 뜻한다. Spring MVC에 대해 이해하려면 Model, View, Controller에 대한 이해가 필수이니 해당 내용에 대해 잘 모른다면 다음을 참고하자. [Spring] MVC 패턴이란? MVC 패턴의 등장 배경 하나의 서블릿 혹은 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리한다면, 너무 많은 역할을 하게 되어 유지보수가 어렵다. 또한, UI를 일부 수정하는 일과 비즈니스 s-y-130.tistory.com Spring MVC Framework는 웹 애플리케이션을 빌드하기 위한 프레임워크이다. 다른 MVC Framework 들도 웹 어플리케이션을 빌드할 수 있다. 하지만..
[Spring] 프론트 컨트롤러(Front Controller) 패턴
·
Spring/개념
프론트 컨트롤러란? 서블릿 하나로 클라이언트의 요청을 다 받아서 공통 처리를 중복없이 하기 위해 사용된다. 이후 나머지 컨트롤러들은 서블릿이 사용하지 않는다. 프론트 컨트롤러가 요청을 받고 응답하기 때문이다. 즉, 프론트 컨트롤러가 받아서 다른 컨트롤러를 사용하기 때문이다. 스프링도 DispatcherServlet이 FrontController이다. 기존의 패턴을 설명하자면 아래 그림과 같다 각 클라이언트들은 Controller A, B, C에 대해 각각 호출한다. 공통 코드들은 별도로 처리되어 있지 않고 각 Controller에 포함되어 있다. 하지만 프론트 컨트롤러 패턴을 도입한다면? 각 클라이언트들은 Front Controller에 요청을 보내고, Front Controller은 각 요청에 맞는 컨..