Spring & SpringBoot

스프링부트를 사용해야 하는 이유

창따오 2023. 12. 4. 11:14
728x90

스프링 부트의 핵심기능 5가지

  • WAS : Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 된다.
  • 라이브러리 관리
    • 손쉬운 빌드 구성을 위한 스타터 종속성 제공
    • 스프링과 외부 라이브러리의 버전을 자동으로 관리
  • 자동 구성: 프로젝트 시작에 필요한 스프링과 외부 라이브러리의 빈을 자동 등록한다.
  • 외부 설정: 환경에 따라 달라져야 하는 외부 설정을 공통화한다.
  • 프로덕션 준비: 모니터링을 위한 메트릭, 상태확인 기능을 제공한다.

스프링 프레임워크와 스프링 부트

  • 스프링 부트는 스프링 프레임워크를 쉽게 사용할 수 있게 도와주는 도구일 뿐이다.
    -> 본질은 스프링 프레임워크다.
  • But, 스프링 부트가 제공하는 편의 기능이 너무 막강해서 스프릥 부트 사용은 필수다!

스프링 부트를 배워야 하는 이유

  • 스프링 부트는 수 많은 편의 기능을 제공
    -> 대부분의 개발자가 비슷하게 고민하는 기능을 스프링 부트는 이미 만들어서 제공한다.
  • 예를 들어서 외부설정, 액츄에이터를 통한 모니터링 관리 기능
    -> 이런 기능들은 개발 시간을 단축해준다.

전통적인 방식

과거에 자바로 웹 애플리케이션을 개발할 때에는ㄴ 먼저 서버에 톰캣 같은 WAS(웹 애플리케이션 서버)를 설치했다. 그리고 WAS에서 동작하도록
서블릿 스펙에 맞추어 코드를 작성하고 WAR형식으로 빌드해서 war 파일을 만들었다. 이렇게 만들어진 war 파일을 WAS에 전달해서 배포하는 방식으로
전체 개발 주기가 동작했다. 이런 방식은 WAS 기반 위에서 개발하고 실행해야 한다. IDE같은 개발 환경에서도 WAS와 연동해서 실행되도록 복잡한
추가 설정이 필요하다.
(회고) 학부 시절에 조 교수님의 수업을 통해 처음 스프링을 접하게 되었는데 이런 복잡한 설정을 따라하는 것 자체가 지옥이었다...

최근 방식

최근에는 스프링 부트가 내장 톰캣을 포함하고 있다. 애플리케이션 코드 안에 톰캣 같은 WAS가 라이브러리로 내장되어 있다는 뜻이다.
개발자는 코드를 작성하고 JAR로 빌드한 다음에 해당 JAR로 빌드한 다음에 해당 JAR를 원하는 위치에서 실행하기만 하면 WAS도 함께 실행된다.
쉽게 이야기 하자면 개발자는 main()메서드만 실행하면 되고, WAS 설치나 IDE같은 개발 환경에서 WAS와 연동하는 복잡한 일은 수행하지 않아도 된다.

느낀점

고대 선배 개발자 분들의 노고로 인해, 스프링 부트가 탄생하였고 온고지신의 마음으로 스프링부트를 학습하자!