[Spring] Spring vs Spring Boot 차이 (ft. 젠이츠)

Spring vs Spring Boot

프로젝트를 하다보면 Spring 으로 구축된 프로젝트가 있고 Spring Boot 로 구축된 프로젝트가 있는데 무슨 차이일까요?

Spring (젠이츠)

젠이츠는 ‘1형’만 쓸 수 있지만 그 하나를 극한으로 단련해 무시무시한 공격을 날리죠.
Spring도 마찬가지. 기본기를 탄탄히 쌓을 수 있지만, 배우는 데 시간은 좀 듭니다.

  • 웹에 필요한 기능을 총집합한 프레임워크
  • 단, 집합인 만큼 설정도 복잡하고 프레임워크가 상당히 무거움
  • xml , config 파일 등을 통해 설정함
  • 로컬서버도 따로 설정해줘야함
  • 설정하는데 시간이 많이 걸림
  • 직접 컨트롤

Spring Boot (카이카쿠)

  • Spring 에서 진행하는 설정을 간소화
  • 자동으로 설정 , 스타터를 써도 됨
  • 로컬서버(톰캣) , 의존성 , @(어노테이션)을 통한 설정 등등 개발할 때 편함
    @SpringBootApplication
    public class MyApp {
    public static void main(String[] args) {
      SpringApplication.run(MyApp.class, args);
    }
    }
  • 메인만 있어도 서버가 돌아감

요약

설정 방식수동 설정 (XML, Config)자동 설정 (Annotation)
서버 구동외부 서버 필요내장 톰캣 포함
학습 곡선비교적 가파름상대적으로 쉬움
프로젝트 구조복잡하고 자유도 높음표준화된 구조 제공
사용성세세하게 제어 가능빠르게 개발 가능

어떨때 사용 ?

사실 요즘 프로젝트는 대부분 spring boot 긴 하지만 ..

  • 기존 시스템이 Spring 기반이거나, 세밀한 설정을 직접 제어하고 싶다면 → Spring
  • 빠르게 MVP를 만들거나, 초기 프로젝트를 빠르게 띄워야 한다면 → Spring Boot

이론적으로는 이렇다 ...
사실 공부할 땐 기본기를 탄탄하게 가져간다는 마음으로 spring 을 쓰는게 좋지만
실전에선 spring boot 를 쓴다 생각하는게 좋습니다.