어제 오늘 내일

[Spring Boot 입문 - 1] Spring과 Spring Boot, 도대체 뭐가 다를까? 본문

IT/SpringBoot

[Spring Boot 입문 - 1] Spring과 Spring Boot, 도대체 뭐가 다를까?

hi.anna 2026. 2. 10. 16:33

안녕하세요!
개발자를 꿈꾸는 분들이라면 '스프링(Spring)'이라는 단어를 수없이 들어보셨을 겁니다.

그런데 공부를 시작하려고 검색을 해보면 'Spring'도 있고 'Spring Boot'도 있어서 혼란스럽지 않으셨나요?

"나는 초보자니까 근본인 Spring부터 배워야 하나?"
"아니면 요즘 쓴다는 Spring Boot를 바로 써도 되나?"

결론부터 말씀드리면 "지금 시작하신다면 무조건 Spring Boot로 시작하세요!" 입니다.

오늘은 이 두 가지가 도대체 어떤 관계인지, 그리고 왜 우리는 지금 Spring Boot를 써야 하는지 아주 쉽고 명쾌하게 정리해 드리겠습니다.

 

1. 요리로 보는 차이점: "재료 손질" vs "밀키트"

가장 쉽게 이해하기 위해 '파스타 요리'에 비유해 보겠습니다.

🍝 기존의 Spring (스프링 레거시)

여러분이 파스타를 먹고 싶어서 요리를 합니다. 그런데 Spring은 아주 원칙적인 친구입니다.

  • 밀가루를 사서 직접 반죽해 면을 뽑아야 합니다.
  • 토마토를 농장에서 따와서 소스를 끓여야 합니다.
  • 가스 불 세기부터 냄비 종류까지 일일이 다 설정해야 합니다.

장점: 내 입맛대로 아주 세밀한 조절(커스터마이징)이 가능합니다.
단점: 너무 어렵고, 요리 하나 만드는 데 시간이 엄청나게 오래 걸립니다.

🍱 Spring Boot (스프링 부트)

이번에는 Spring Boot로 파스타를 만듭니다. 이건 마치 '밀키트(Meal Kit)'와 같습니다.

  • 면, 소스, 야채가 이미 최적의 상태로 손질되어 포장돼 있습니다.
  • 여러분은 설명서를 보고 냄비에 넣고 끓이기만 하면 됩니다.

장점: 누구나 쉽고 빠르게 훌륭한 요리(애플리케이션)를 만들 수 있습니다.
단점: 아주 세부적인 내용을 바꾸려면 약간의 공부가 필요합니다.

개발자는 '요리(기능 구현)'를 하고 싶은 사람이지, '재료 손질(환경 설정)'만 하다가 지치고 싶은 사람이 아닙니다. Spring Boot는 우리가 요리에만 집중할 수 있게 도와주는 도구입니다.

 

2. Spring Boot가 해결해 준 3가지 골칫덩어리

개발자들이 과거 'Spring'만 쓸 때는 프로젝트 세팅만 며칠씩 걸리기도 했습니다.

Spring Boot는 이 고통을 어떻게 없애줬을까요?

① 의존성 관리의 혁명 (starter)

웹 개발을 하려면 수많은 라이브러리가 필요합니다.

옛날에는 이걸 일일이 찾아서 다운로드하고, 버전이 서로 맞는지 충돌을 확인해야 했습니다.

(이걸 '의존성 지옥'이라고 불렀습니다.)

하지만 Spring Boot는 spring-boot-starter라는 것을 제공합니다.

// build.gradle 예시
dependencies {
    // 이것만 적으면 웹 개발에 필요한 모든 라이브러리를 알아서 가져옵니다!
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

이제 "웹 개발 할래!"라고 선언만 하면, 스프링 부트가 알아서 꿀조합 라이브러리들을 싹 다 모아다 줍니다.

② 복잡한 설정 자동화 (Auto Configuration)

과거 스프링은 XML이라는 설정 파일이 필수였습니다.

오타 하나만 나도 서버가 켜지지 않는 '설정 지옥'이었죠.

Spring Boot는 "많은 개발자들이 자주 쓰는 설정은 그냥 기본으로 해줄게"라는 철학을 가지고 있습니다.

복잡한 설정 없이도 바로 실행이 가능한 이유입니다.

물론, 필요하다면 언제든 설정을 바꿀 수 있습니다.

③ 내장 서버 (Embedded Tomcat)

이게 가장 큰 변화 중 하나입니다.

  • 과거: 코드를 다 짜도 실행하려면 '톰캣(Tomcat)'이라는 별도의 웹 서버 프로그램을 컴퓨터에 설치하고 연동해야 했습니다.
  • 현재: Spring Boot 안에는 톰캣이 이미 내장(Embedded)되어 있습니다.

그냥 main() 메소드만 실행(Run)하면, 알아서 웹 서버가 뜨고 내 코드가 돌아갑니다.

 

3. 한눈에 보는 비교표

구분 Spring (Legacy) Spring Boot
목적 엔터프라이즈급 프레임워크 스프링을 쉽게 쓰기 위한 도구
설정 매우 복잡 (XML 등 수동 설정) 자동 설정 (Auto Configuration)
라이브러리 버전 관리 직접 해야 함 Starter로 한 방에 해결
실행 별도 서버(Tomcat) 설치 필요 내장 서버로 즉시 실행 가능

 

4. 결론: 개발에만 집중하세요!

Spring Boot는 "개발자가 귀찮은 '설정'이 아니라, 핵심인 '비즈니스 로직(기능 구현)'에만 집중하게 하자"는 목표로 만들어졌습니다.

어려운 환경 설정 때문에 지레 겁먹고 포기하지 마세요. Spring Boot를 사용하면 여러분도 금방 '나만의 웹 서비스'를 띄울 수 있습니다.

다음 시간에는 '제어의 역전(IoC)'과 '의존성 주입(DI)'에 대해 아주 쉽게 이야기해 보겠습니다.

 

 

반응형
Comments