
처음 회사에 입사한 후 간단한 웹프로젝트를 만들 기회가 있어 Spring boot를 이용하여 개발하였다.
먼저 스프링 부트를 알아보기전에 Spring 이란 무엇일까?
Spring은 Java를 기반으로 한 웹 어플리케이션 프레임워크이다. 여러가지 복잡한 설명이 있지만,
용의한 재사용과 반복되는 코드의 양을 줄이기 위한 틀 이라고 생각하면 쉽다.
여기서 Spring Boot란, Spring의 초기 환경 설정이 복잡하고 많은 시간이 드는 단점을 보완하여
많은 부분을 자동화한 프레임워크이다.
예를 들어 내장되어있는 톰캣이 있어 설치 및 버전관리를 따로 해주지 않아도 실행버튼 하나로 작동한다.
Dependency 또한 메이븐이나 그래들에 의해 필요한 라이브러리들을 알아서 받아온다.
이러한 비교적 간단한 초기 셋팅 덕 분에 많은 개발자들이 현재 스프링 부트를 이용한다고 한다.
아래에 스스로 공부하며 얻은 지식들을 정리해 보았다.
Servlet(서블릿) 이란 무엇일까?
- 자바를 사용하여 웹을 만들기 위해 필요한 기술.
- 클라이언트의 요청에 따라 그에 대한 결과를 다시 전송하는 역할을 하는 자바 프로그램.
- 클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트
- MVC 패턴에서 Controller로 이용된다.
DispatcherServlet(디스패쳐 서블릿)
- 클라이언트의 요철을 받아서 Controller에게 전달하고, 리턴한 결과를 View에게 전달.
- FrontController를 담당하며, 모든 HTTP요청을 받아들여 객체들 사이의 흐름을 제어한다.
- @RequestMapping 어노테이션을 기준으로 판단된다.
- web.xml에 모든 Request를 받도록 정의되어 있다.
- 요청 관련된 객체를 정의하는 곳이 servlet-context.xml이다.
* FrontController란? 클라이언트가 호출하는 해당 컨트롤러가 직접 연결되지 않고,
공통처리가 가능하도록 가장 먼저 요청을 파악하고, 처리하도록 만드는 컨트롤러.
Controller(컨트롤러)
- 클라이언트의 요철을 처리한 뒤, Model을 호출하고 그 결과를 DispatcherServlet에게 알려줌.
어노테이션
@Configuration
- Annotation기반 환경구성을 돕는다.
- 해당 Annotation을 구현함으로써 하나 이상의 @Bean Annotation을 구현하여 Bean을 정의할 수 있다.
@Bean
- Application Container에 저장시킬 Bean을 정의한다.
* Bean이란??
- Spring IoC 컨테이너가 관리하는 자바 객체를 빈 이라고 한다.
- 기존에 Java에서는 class를 생성하고 new를 입력하여 객체를 직접 생성한 후에 사용한다. 하지만,
Spring에서는 new를 이용해 생성한 객체가 아닌, Spring에 의하여 관리당하는 자바 객체를 사용.
=> 이것을 Bean 이라고 부른다.
@Component
- XML에 각 Bean을 자동으로 등록시켜준다.