1. 스프링 부트 살펴 보기

yshjft·2023년 5월 22일
0

스프링 부트 소개

스프링 기반으로 실무 환경에서 사용 가능한 수준의 독립실행형 어플리케이션을 고민 없이 빠르게 작성할 수 있도록 도와주는 여러가지 도구의 모음

스프링 != 스프링 부트임을 반드시 기억하자!

스프링 부트의 핵심 목표

전체적으로 앞에 소개에서 나온 핵심 내용들을 포함하고 있다.

  • 빠르고 광범위한 영역의 스프링 개발 경험을 제공
  • 강한 주장을 가지고 즉시 적용 가능한 기술 조합을 제공하면서, 필요에 따라 원하는 방식으로 손쉽게 변현 가능
  • 프로젝트에서 필요로 하는 다양한 비기능적인 기술 제공
  • 코드 생성이나 XML 설정을 필요로 하지 않음

스프링 부트의 역사

"Containerless 웹 개발 아키텍처 지원" 요청에서 시작되었다.

컨테이너리스 개발

  • containerless
    • 개발의 핵심이 아닌 단순 반복 잡업(서블릿 컨테이너 설치, WAR 폴더 구조, web.xml ...)을 제거하여 개발할 수 있도록 하자!
    • 서블릿 컨테이너 신경 안쓰고 개발할 수 있도록 하자!
  • serverless
    • 서버에 대한 설치 관리를 신경 쓰지 않고 서버 애플리케이션 개발을 가능하도록 만드는 방법
  • Web Component(servlet)
    • 동적인 컨텐츠를 만들어서 제공
    • Web Container 안에서 존재
  • Web Container(Servlet Container)
    • Web Component의 라이프 사이클 관리
    • 다수의 Web Component 관리
    • 요청을 Web Component로 전달(Handler Mapping)

Jar & War

  • Jar(Java Archive)

    • 자바 프로젝트 압축 파일
    • Class, 라이브러리 파일을 포함
    • JRE만 있어도 실행 가능
    • Spring boot는 Jar 배포
  • War(Web Application Archive)

    • 컨테이너에 배치할 수 있는 웹 어플리케이션 압축 파일
    • 웹 관련 자원을 포함
    • 사전 정의된 구조를 사용
    • 별도의 웹 컨테이너가 필요(tomcat)
    • Spring을 배포하는 경우 War를 이용한 배포

강한 주장을 가진 도구

  • 스프링
    • not opinionated
    • 유연함(개발자가 원하는데로 세팅)
    • 대신 개발자의 고민 부담이 크다.
  • 스프링 부트
    • opinionated(의견을 고집한다)
    • 스프링 부트가 추천하는 구성과 설정을 이용(개발자는 핵심 로직에 집중하고 나머지는 스프링 부트가 제공하는데로 써라)
    • 단, 설정을 원하는데로 구성하는 것도 가능은 하다.

스프링 부트의 이해

  • 스프링에 대한 이해가 있어야 한다.
profile
꾸준히 나아가자 🐢

0개의 댓글