Spring Boot 개발에 앞서 알면 좋은 기초 지식[1]

GaEun Kim·2023년 5월 21일
0

Spring Boot

목록 보기
2/4
post-thumbnail

서버 간 통신

마이크로서비스 아키텍처(MSA; Microservice Architecture)

서비스 규모를 작게 나누어 구성한 아키텍처.
예를 들어, 포털 사이트에 마이크로서비스 아키텍처를 적용한다면 애플리케이션 하나에 여러 기능을 넣어 개발하지 않고 블로그 프로젝트, 카페 프로젝트, 메일 프로젝트 등 애플리케이션을 기능별로 나눠서 개발하게 됨.


<단일서비스아키텍처와 마이크로서비스아키텍처>

서버간 통신 : 한 서버가 다른 서버에 통신을 요청하는 것을 의미, 한 대는 서버, 다른 한 대는 클라이언트가 되는 구조. 몇 가지 프로토콜에 의해 다양한 통신 방식을 적용할 수 있지만 가장 많이 사용되는 방식은 HTTP/HTTPS 방식임.

스프링 부트의 동작 방식

스프링 부트에서 spring-boot-starter-web 모듈을 사용하면 기본적으로 톰캣(Tomcat)을 사용하는 스프링 MVC 구조를 기반으로 동작


<스프링 부트의 동작 구조>

서블릿(Servlet)은 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술
일반적으로 서블릿은 서블릿 컨테이너(Servlet Container)에서 관리. 서블릿 컨테이너는 서블릿 인스턴스(Servlet Instance)를 생성하고 관리하는 역할을 수행하는 주체 (Ex> 톰캣)

서블릿 컨테이너의 특징

  • 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리
  • 서블릿 객체는 싱글톤 패턴으로 관리
  • 멀티 스레딩을 지원

스프링에서는 DispatcherServlet이 서블릿의 역할을 수행함.
일반적으로 스프링은 톰캣을 임베드(embed; 끼워넣다)해 사용하기 때문에 서블릿 컨테이너와 Dispatcherservlet은 자동 설정된 web.xml의 설정값을 공유

핸들러 매핑(Handler Mapping)은 요청 정보를 기준으로 어떤 컨트롤러를 사용할지 선정하는 인터페이스. 이때, 핸들러는 컨트롤러(Controller)를 의미

핸들러 매핑 인터페이스의 대표적인 구현체 클래스

  • BeanNameUrlHandlerMapping
    빈 이름을 URL로 사용하는 매핑(어떤 값을 다른 값에 대응시키는 과정) 전략
    빈을 정의할 때 슬래시('/')가 들어가면 매핑 대상이 된다
    * Ex> @Bean("/hello")

  • ControllerClassNameHandlerMapping
    URL과 일치하는 클래스 이름을 갖는 빈을 컨트롤러로 사용하는 전략
    이름 중 Controller를 제외하고 앞부분에 작성된 suffix(접미사)를 소문자로 매핑

  • SimpleUrlHandlerMapping
    * URL 패턴에 매핑된 컨트롤러를 사용하는 전략

  • DefaultAnnotationHandlerMapping
    • 어노테이션으로 URL과 컨트롤러를 매핑하는 방법
profile
꼬마개발자

0개의 댓글

관련 채용 정보