
현재 한국의 IT 업계에서 백엔드 개발 언어 사용량 중 상위권에 위치하는 스프링 부트(Spring Boot)는 웹 애플리케이션을 쉽고 빠르게 만들 수 있도록 도와주는 자바 기반의 웹 프레임 워크이다.
스프링 부트는 기존의 스프링(Spring) 프레임워크에 톰캣(Tomcat)이라는 서버를 내장하고 여러 편의 기능을 추가하여, 초심자도 복잡한 설정 없이 손쉽게 웹 개발을 시작할 수 있도록 설계되어 있다.
웹 프레임워크는 웹 애플리케이션을 완성하기 위해 필요한 다양한 기능(ex: 쿠키, 세션, 로그인/로그아웃, 권한, 데이터베이스 등)을 미리 구현해 둔 스타터 키트와 같은 개념.
웹 프레임워크를 사용하면 개발자가 기본적인 기능들을 직접 구현할 필요 없이, 이미 구현되어 있는 프레임워크의 기능을 가져와 사용하기만 하면 됨. 웹 프레임우 개발 시간을 단축하고, 비즈니스 로직에 집중할 수 있게 도와줌.
각 프로그래밍 언어별로 다양한 웹 프레임워크가 있는데, 대표적인 프레임워크는 다음과 같음:
| 구분 | 언어 / 플랫폼 | 대표 프레임워크 |
|---|---|---|
| 프론트엔드 | JavaScript / TS | React, Vue.js, Angular, Next.js, Nuxt.js |
| 백엔드 | Java | Spring / Spring Boot |
| Python | Django, Flask, FastAPI | |
| JavaScript / TS | Express, NestJS | |
| PHP | Laravel | |
| Ruby | Ruby on Rails | |
| C# (.NET) | ASP.NET Core | |
| Go | Gin, Echo | |
| 풀스택 | JavaScript / TS | Next.js (React 기반), Nuxt.js (Vue 기반) |
스프링부트는 2012년에 등장하여 현재까지 10년 이상의 세월 동안 지속적으로 발전해 왔음. 오랜 기간 동안 많은 기능이 개발되고 안정성이 검증되어, 현재 국내외 많은 기업들이 신뢰하고 사용하고 있는 프레임워크
기존 스프링 프레임워크는 톰캣과 같은 WAS(Web Application Server)를 별도로 설치하고 설정해야 했음. 하지만 스프링 부트는 톰캣 서버가 내장되어 있어 별도 설치하지 않아도 되고, 설정이 자동으로 적용되어 개발자가 WAS 관련 설정에 신경 쓸 필요 없게 도와줌. 또한 배포할 때 생성되는 jar 파일에도 톰캣 서버가 내장되어 실행되므로, 서로 다른 WAS 환경으로 인한 호환성 문제를 예방할 수 있음.
스프링 부트는 스프링의 복잡한 설정을 자동화·단순화한 프레임워크로, 복잡한 설정 과정을 거치지 않아도 누구나 쉽게 사용할 수 있음.
.jar: 자바 클래스 파일들을 담고 있는 압축 파일로, 스프링 부트 배포 시 실행 가능한 jar 파일로 패키징되어 독립적으로 실행이 가능한 것이 특징.
WAS(Web Application Server)
: 웹 애플리케이션과 서버 환경을 연결하는 중간 역할을 하는 소프투에어로, 사용자와 서버를 연결해 주는 중간 다리 역할.

src/main/java: 자바 파일을 저장하는 공간com.mysite.sbb: 자바 파일을 저장하는 공간으로, 스프링 부트의 컨트롤러, 폼과 DTO, 데이터베이스 처리를 위한 엔티티, 서비스 등의 자바 파일이 이곳에 위치함.
컨트롤러는 URL 요청을 처리하고 폼은 사용자의 입력을 검증
DTO, 엔티티, 서비스 파일은 데이터베이스를 처리하기 위해 필요한 파일
SbbApplication.java: 스프링 부트로 만든 프로그램(스프링 부트 애플리케이션)의 시작을 담당하는 파일. (보통 프로젝트명 + Application.java) ‘sbb’라는 이름은 프로젝트 명.
package com.mysite.sbb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SbbApplication {
public static void main(String[] args) {
SpringApplication.run(SbbApplication.class, args);
}
}
@SpringBootApplication 어노테이션이 적용되어 있어야 스프링 부트 애플리케이션을 시작할 수 있음.src/main/resource: 자바 파일을 제외한 HTML, CSS, 자바스크립트, 환경 파일 등을 저장하는 공간환경 파일(.env): 프로젝트의 설정 정보를 저장하는 파일
- templates 디렉터리: 자바 코드를 삽입할 수 있는 HTML 형식의 파일로, 스프링 부트에서 생성한 자바 객체를 HTML 형태로 출력할 수 있음. templates는 웹 페이지를 구성하는 HTML 파일을 저장함
- static 디렉터리: 스프링 프레임워크의 스타일 시트, 자바 스크립트, 그리고 이미지 파일 등을 저장함
application.properties: 프로젝트의 환경을 설정하는 것으로, 환경 변수나 데이터베이스 설정 등을 이 파일에 저장함. 혹은 application.yml로 사용하기도 함.
src/test/java: 메인 프로젝트에서 작성한 파일을 테스트하는 코드를 저장하는 공간으로, JUnit과 스프링 부트의 테스트 도구를 사용하여 서버를 실행하지 않은 상태에서 src/main/java 디렉터리에서 작성한 코드를 테스트할 수 있음.build.gradle: Gradle이 사용하는 환경 파일로, 프로젝트에 필요한 플러그인과 라이브러리를 설치하기 위한 내용을 작성.스프링 부트는 자바 웹 개발의 진입 장벽을 크게 낮춘 혁신적인 프레임워크. 복잡한 설정 없이도 안정적이고 확장 가능한 웹 애플리케이션을 개발할 수 있어, 현재 IT 업계에서 폭넓게 활용되고 있음.