Spring Boot 기초 — *왜 Spring Boot 인가*
Spring Boot 기초 — *왜 Spring Boot 인가*
🎯 이 lesson 을 읽고 나면
이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.
- ▸✅ Spring 의 3대 사상 (IoC · AOP · POJO) 한 줄 정의
- ▸✅ @Component / @Service / @Repository / @Controller 역할 분리
- ▸✅ 왜 Spring Boot 가 옛 Spring 의 XML 지옥을 끝냈는지
학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.
Spring 이 뭐냐 — *복잡한 자바 백엔드를 단순화*
핵심 한 줄
Spring = 자바로 서버를 만들 때 반복되는 복잡한 일 을 자동으로 처리 해주는 프레임워크. 2003 년 호주의 로드 존슨 이 만들었습니다.
왜 Spring 이 탄생했나
2000 년대 초반 자바 백엔드는 EJB (Enterprise JavaBeans) 라는 표준으로 만들어졌는데, 너무 복잡했습니다. 단순한 기능 하나 만드는데도 수많은 설정 파일·인터페이스·구현 클래스 가 필요했죠. 개발자들은 "비즈니스 로직보다 설정 코딩이 더 많다" 며 불만이었습니다.
Spring 은 이 복잡함을 걷어내고 평범한 자바 객체 (POJO) 로 서버를 만들 수 있게 해줬습니다. DI·AOP·트랜잭션 같은 부가 기능을 프레임워크가 알아서 처리해주는 패러다임이 폭발적으로 퍼졌습니다.
Spring vs Spring Boot — 무엇이 다른가
Spring 만으로도 복잡한 EJB 보다 훨씬 단순했지만, 여전히 설정이 많았습니다. XML 설정 파일 수십 줄, 외부 톰캣 설치, WAR 파일 빌드·배포...
Spring Boot (2014~) 는 "설정도 우리가 알아서" 라는 한 단계 더 나아간 진화입니다.
대부분 Spring Boot 를 씁니다. 그냥 "Spring" 이라고 하면 보통 Spring Boot 를 의미하는 경우가 많아요.
왜 한국에서 Spring 이 압도적 인가
한국 백엔드 채용 공고의 80%+ 가 Spring 을 요구합니다. 카카오·네이버·쿠팡·토스·당근 — 모두 Spring 기반. 이유는:
- ▸2010 년대 초 전자정부 프레임워크 가 Spring 기반으로 표준화
- ▸대기업 SI 가 Spring 으로 시스템 구축
- ▸그 결과 개발자·자료·교육 이 모두 Spring 중심
한국에서 백엔드 개발자가 되려면 Spring 은 사실상 필수 입니다.
자동 설정 (Auto-configuration) — Spring Boot 의 마법
spring-boot-starter-web 의존성 하나만 추가하면:
- ▸내장 Tomcat 시작
- ▸DispatcherServlet 등록
- ▸Jackson JSON 직렬화 활성화
- ▸정적 파일 (
/static/·/public/) 서빙 - ▸기본 에러 페이지
이게 코드 0줄 로 동작합니다. Spring Boot 가 classpath 에 뭐가 있는지 보고 합리적 기본값 으로 설정해준 거죠.
설정을 바꾸고 싶으면 application.properties 또는 application.yml 한 줄로:
한 번 정리
- ▸Spring = 자바 백엔드 프레임워크 (2003~)
- ▸Spring Boot = Spring + 자동 설정·내장 서버 (2014~)
- ▸한국 백엔드 채용 80%+ Spring 기반
- ▸5분 만에 운영 가능한 서버 시작 가능
Spring Boot 프로젝트 *시작하는 법*
가장 빠른 시작 — start.spring.io
https://start.spring.io — Spring 팀이 만든 프로젝트 생성기. 5분이면 동작하는 서버 시작.
선택할 옵션:
- ▸Project: Gradle 권장 (Maven 도 OK)
- ▸Language: Java
- ▸Spring Boot 버전: 최신 안정판 (3.x)
- ▸Dependencies: 최소
Spring Web(REST API). 자주 함께:Spring Data JPA,H2 Database,Lombok
GENERATE 누르면 zip 파일 다운로드. 압축 풀고 IDE 로 열면 끝.
핵심 파일 3개
1. Main 클래스 — 서버 진입점:
@SpringBootApplication 한 줄이 세 가지 를 동시에 합니다:
- ▸
@Configuration— 이 클래스가 설정 클래스 - ▸
@EnableAutoConfiguration— 자동 설정 켜기 - ▸
@ComponentScan— 같은 패키지 하위의@Component·@Service등 자동 등록
2. application.yml — 설정:
3. 첫 컨트롤러:
./gradlew bootRun 실행 → http://localhost:8080/hello 접속 → "Hello, Spring Boot!" 응답.
디렉터리 구조
이게 Spring 표준 구조 입니다. 회사 가서 가장 먼저 만나는 모습.
흔한 첫 실수
1. @SpringBootApplication 위치: Main 클래스가 최상위 패키지 에 있어야 합니다. 자식 패키지의 @Component 들을 자동 스캔 하기 때문. 잘못된 위치면 Bean 등록 안 됨.
2. 포트 충돌: 다른 프로세스가 8080 쓰고 있으면 시작 실패. server.port: 8081 로 변경 또는 기존 프로세스 종료.
3. application.yml 들여쓰기: YAML 은 공백 2칸 들여쓰기에 민감. 탭 사용하면 에러. 공백 2칸 으로 통일.
한 번 정리
start.spring.io 에서 zip 받기 → IDE 로 열기 → @RestController + @GetMapping → bootRun → 끝. 이게 5분 안에 가능한 흐름입니다. 한 번 해보면 Spring Boot 의 매력을 즉시 느낍니다.
🤖 AI 에게 이렇게 요청해보세요
이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.
- ▸"이 Spring Boot 코드에 Spring Boot 기초 — 왜 Spring Boot 인가 패턴을 적용해줘"
- ▸"Spring Boot 기초 — 왜 Spring Boot 인가 관련 @SpringBootTest 통합 테스트 작성해줘"
- ▸"실무에서 Spring Boot 기초 — 왜 Spring Boot 인가 사용 시 주의할 함정 3가지 알려줘"
왜 이게 토큰을 줄이나
개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.