순서
1. 스프링
2. 스프링 컨테이너
3. 스프링 MVC
✅ 스프링이란?
- 자바 기반의 오픈소스 애플리케이션 프레임워크
- 컨테이너로 객체들을 관리하면서 의존성 주입과 제어의 역전을 통해 결합도를 낮춰줌
➤ 서블릿(Servlet)이란?
- 웹 페이지를 동적으로 생성하기 위해 쓰이는 자바 클래스의 일종
- 클라이언트 요청을 처리하고, 그 결과를 반환해주는 역할
➤ 빈(Bean)이란?
- 컨테이너에 의해 관리되는 자바 객체
- 코드로 작성된 동작 수행하는 역할
➤ 의존성 주입(DI)이란?
- 객체 간의 의존관계를 미리 설정해두면 컨테이너가 자동으로 연결해줌
- 직접 의존 객체를 생성하거나 호출할 필요가 없어지고, 결합도가 낮아짐
➤ 제어의 역전(IOC)이란?
- 스프링에서는 객체의 생성부터 소멸까지 컨테이너가 관리함
- 컨테이너가 객체를 관리하면서 필요에 따라 사용자의 코드를 호출함
**비교되는 개념으로, 라이브러리 같은 경우, 사용자가 필요에 따라 라이브러리의 코드를 호출함
✅ 스프링 컨테이너
- 빈(Bean)의 생명 주기를 관리하고, 서로 다른 빈들을 연결해주는 역할
➤ 디스패처 서블릿(DispatcherServlet)
- 요청을 가장 먼저 받아서 적합한 빈으로 보내준 뒤, 동작 과정이 끝나면 응답을 반환하는 역할
➤ 빈(Bean) 등록 방법
1. @Component
- 클래스나 인터페이스에 @Component를 붙이는 컴포넌트 스캔 방식
- @Controller, @Service, @Repository 등의 어노테이션도 @Component의 상속을 받고 있으므로 컴포넌트 스캔 대상
2. @Configuration + @Bean
- 클래스나 인터페이스에 @Configuration을 붙이고, 인스턴스를 생성하는 메소드에 @Bean을 붙이는 방식
- 개발자가 제어 불가능한 외부 라이브러리 등을 빈으로 등록할 때 사용
➤ 빈(Bean) 주입 방법
1. @Autowired
- 주입이 필요한 곳에 @Autowired를 붙이는 방식(단점들이 있어서 권장 X)
2. 생성자 주입
- 생성하려는 객체가 사용하는 의존성을 생성자의 파라미터로 전달하는 방식
- 생성자가 2개 이상인 경우에는 @Autowired를 붙여야 함
✅ 스프링 MVC
- 스프링 프레임워크의 하위 모듈
- Model, View, Controller 3가지 구성요소를 사용해 다양한 요청을 처리하고 응답하는 역할 수행
➤ 컨트롤러(Controller)
- 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 수행
- 뷰에 전달할 데이터를 모델에 담아줌
➤ 뷰(View)
- 모델에 담겨있는 데이터로 응답 화면을 생성
➤ 모델(Model)
- 뷰에 출력할 데이터를 담는 곳
- 모델 덕분에 뷰는 화면 렌더링에만 집중 가능
/*
* 제가 기억하려고 최대한 쉽고 간략하게 정리한 글이라
* 다소 부족한 부분이 있을 수 있습니다.
* 그래도 이해하시는데 도움이 됐으면 좋겠습니다.
*/
'개발 공부' 카테고리의 다른 글
[Jar, War] feat. 스프링 (2) | 2023.05.22 |
---|---|
[트랜잭션] feat. 스프링 AOP (0) | 2023.05.22 |
[프록시 패턴] feat. 스프링 AOP, JPA (0) | 2023.05.18 |
[RestController] feat. ResponseBody (0) | 2023.05.16 |
[메시지 큐] feat. RedHat AMQ, IBM MQ(WMQ) (0) | 2023.05.12 |