백엔드 개발자가 되려면 반드시 알아야 하는 프레임워크가 스프링(Spring)입니다.
하지만 초보자는 "스프링이 뭔데?", "스프링부트는 또 뭐야?"라는 질문부터 막히게 됩니다.이번 글은 스프링의 개념 → 스프링부트의 필요성 → 첫 프로젝트 구조까지
한 번에 이해할 수 있도록 구성했습니다.
📌 목차
- 스프링(Spring)이란?
- 스프링의 핵심 철학 (IoC, DI, AOP)
- 왜 스프링부트(Spring Boot)를 쓰는가?
- 스프링 부트 프로젝트 생성 방법
- 스프링 부트 프로젝트 구조 설명
- 실행 방법
- 대표 태그
1️⃣ 스프링(Spring)이란?
스프링은 Java 기반 웹 애플리케이션을 쉽게 만들 수 있게 돕는 프레임워크입니다.
✔ 객체지향 철학에 충실
✔ 유지보수 쉬움
✔ 확장성 뛰어남
✔ 대기업·스타트업 대부분 사용
백엔드 개발자는 거의 100% 스프링을 사용한다고 보면 됩니다.
2️⃣ 스프링의 핵심 철학 3가지
스프링이 왜 강력한지 이해하려면 아래 3가지 개념이 필요합니다.
✔ 1) IoC (제어의 역전)
객체 생성 흐름을 개발자가 직접 관리하지 않고
스프링 컨테이너가 대신 관리함.
➡ 복잡한 객체 관리 필요 없음 → 개발 편함
✔ 2) DI (의존성 주입)
클래스 내부에서 의존 객체를 직접 생성하는 대신
스프링이 객체를 주입해줌.
예 (안 좋은 코드):
OrderService service = new OrderService();
스프링 방식:
@Autowired
OrderService service;
➡ 강한 결합을 느슨하게 만들어 테스트·유지보수에 매우 유리
✔ 3) AOP (관점 지향 프로그래밍)
공통 기능(로그, 트랜잭션 등)을 모아서 관리하는 방식.
➡ 비즈니스 코드가 깔끔함
➡ 중복 코드 제거
3️⃣ 스프링부트(Spring Boot)가 필요한 이유
기존 스프링(Spring)은 사용하기가 너무 어려웠습니다.
문제점:
- 복잡한 XML 설정
- 많은 의존성 직접 추가
- 서버 설정 복잡
- 자동 설정 부족
➡ 스프링부트는 이 모든 문제를 해결하기 위해 등장했습니다.
✔ 스프링부트의 장점
- 설정 자동화 (Auto Configuration)
- Tomcat 서버 내장 → 바로 실행 가능
- Starter 패키지로 의존성 자동 관리
- 프로젝트 구조가 표준화되어 초보자도 쉽게 학습 가능
즉, 스프링부트는 스프링을 쉽고 빠르게 사용할 수 있는 스프링의 확장판입니다.
4️⃣ 스프링 부트 프로젝트 생성 방법
가장 쉬운 방법: Spring Initializr 사용
필수 설정 예시
- Project: Gradle 또는 Maven
- Language: Java
- Spring Boot: LTS 버전
- Dependencies: Spring Web, Lombok (선택)
생성하면 ZIP 파일로 다운로드 → IntelliJ 또는 VS Code에서 열기.
5️⃣ 스프링 부트 프로젝트 구조 설명
프로젝트 생성 후 가장 중요한 구조는 아래와 같습니다:
src
└─ main
├─ java
│ └─ com.example.demo
│ ├─ DemoApplication.java
│ └─ controller
│ └─ HelloController.java
└─ resources
├─ application.properties
└─ static/
└─ templates/
각 폴더의 역할을 정리하면:
✔ DemoApplication.java
스프링부트의 시작점(Main) — 내장 톰캣을 실행함.
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
✔ controller 패키지
웹 요청을 처리하는 곳:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello Spring!";
}
}
✔ resources/application.properties
설정 파일 (DB 설정, 로그 설정 등)
✔ static / templates
static → 이미지, css, js
templates → Thymleaf HTML 파일
6️⃣ 스프링 부트 실행 방법
IDE에서 DemoApplication.java 실행 → 자동으로 서버 실행:
Tomcat started on port 8080
브라우저에서 :
http://localhost:8080/hello
출력 :
Hello Spring!
➡ 첫 스프링 API 완성 🎉
📘 다음 글 예고
👉 Spring Boot 입문 (2) — Controller, Service, Repository 구조 완전 이해 (3계층 구조)