본문으로 건너뛰기
Advertisement

2.1 왜 스프링 부트인가? (Why Spring Boot?)

스프링 프레임워크의 강력한 기능에도 불구하고 개발자들이 '스프링 부트(Spring Boot)'로 넘어오게 된 배경과 그 압도적인 장점들을 알아봅니다.

작성 기준 버전

1. 기존 스프링(Spring)의 한계점

스프링 프레임워크는 엔터프라이즈급 개발을 위해 수많은 기능(DI, AOP, MVC, 트랜잭션 등)을 제공합니다. 하지만 이 방대한 기능을 사용하기 위해서는 초기 설정(Configuration)이 너무나도 복잡했습니다.

  1. 복잡한 XML/Java 설정: 어떤 라이브러리를 쓸지, 빈(Bean)들을 어떻게 연결할지 수십 줄의 설정 파일이 필요했습니다.
  2. 의존성(Dependency) 관리의 고통: 연관된 라이브러리들(예: 웹, DB 연결, 로깅)의 버전 호환성을 일일이 맞춰야 했습니다.
  3. 웹 서버 구동의 번거로움: 코드를 짠 후, 톰캣(Tomcat)과 같은 외장 웹 서버(WAS)를 별도로 설치하고 애플리케이션(WAR)을 배포(Deploy)하는 과정을 거쳐야만 실행이 가능했습니다.

이로 인해 "설정하다가 지친다"는 말이 나올 정도였습니다.

2. 스프링 부트(Spring Boot)의 등장

"스프링을 더 쉽고 빠르게, 설정 단계를 최소화하여 바로 애플리케이션을 실행(Just Run)할 수 있게 하자!"

이것이 스프링 부트의 철학입니다. 스프링 부트는 스프링 프레임워크를 감싸서(Wrapping) 사용하는 확장 도구입니다. 완전히 다른 프레임워크가 아니라, 스프링을 매우 편리하게 사용할 수 있도록 만들어주는 강력한 서포터 입니다.

3. 스프링 부트의 3대 핵심 장점

1) 자동 설정 (Auto-Configuration)

스프링 부트는 프로젝트에 추가된 라이브러리(JAR)들을 인식하여, 가장 널리 쓰이는 기본 설정(Defaluts)을 자동으로 세팅 해줍니다.

  • 예: 데이터베이스 라이브러리가 존재하면, 자동으로 DB 연결(DataSource) 빈을 생성해둡니다.

2) 스타터 (Starters)를 통한 의존성 관리

더 이상 수십 개의 라이브러리 버전을 고민할 필요가 없습니다. spring-boot-starter-web 하나만 추가하면, 웹 서비스 개발에 필요한 톰캣, JSON 변환기, 스프링 MVC 등이 호환이 완벽히 검증된 버전으로 세트로 묶여서 설치됩니다.

3) 내장 웹 서버 (Embedded Web Server)

별도의 톰캣 설치나 배포 과정이 사라졌습니다. 스프링 부트 안에는 이미 톰캣이 내장 되어 있습니다. 따라서 자바의 main() 메서드를 실행하는 것만으로 단 3초 만에 웹 서버가 구동됩니다.


노트

현업에서는 순수 스프링 프레임워크만으로 신규 프로젝트를 세팅하는 경우는 거의 없습니다. 사실상 스프링 부트가 자바 백엔드 개발의 표준(Standard) 입니다.

Advertisement