카테고리 없음

SPRING BOOT

윰태 2022. 10. 11. 11:02

처음 회사에 입사한 후 간단한 웹프로젝트를 만들 기회가 있어 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을 자동으로 등록시켜준다.