개요
- 국비지원 개발 공부를 하게 되면 거의 무조건 Spring Boot를 사용한다.
- 채용공고에도 Spring Boot가 정말 매우 많다.
- 얘는 뭘까?
정의
Spring Framework를 기반으로 한 확장 모듈
- Spring 애플리케이션을 쉽고 빠르게 개발할 수 있도록 도와줌
특징
자동 설정
@EnableAutoConfiguration 어노테이션 기반
- 클래스패스와 설정을 분석해 필요한 빈(bean)과 설정을 자동으로 구성
Starter
spring-boot-starter-* 형태의 Opinionated Dependencies를 제공
- 웹, 보안, 데이터 접근 등 필요한 라이브러리를 일괄 추가 가능
내장 서버
- Tomcat, Jetty, Undertow를 내장
- 별도 WAS 설치 없이 JAR 실행만으로 애플리케이션을 바로 실행 가능
용어 정리
Spring
제어역전(IoC) 과 의존성 주입(DI), 관점 지향 프로그래밍(AOP)을 통해
- 애플리케이션 구조를 단순화하고 유연성을 높여주는 자바 프레임워크
어노테이션
@ 기호로 시작하는 메타데이터
- 프로그램의 실행 로직에 직접 영향을 주지 않음
- 컴파일러나 런타임, 프레임워크가 이를 해석하여 동작 방식을 변경 또는 코드를 자동 생성 및 검증하는 용도로 활용
빈
- 스프링
IoC(Inversion of Control) 컨테이너가 생성, 설정, 관리하는 재사용 가능한 자바객체(POJO)
- 개발자가
new 연산자를 직접 호출하지 않고, 스프링이 객체의 생명주기와 의존 관계를 대신 관리해 주는 객체
WAS
- 웹 서버와 연동하여 데이터베이스 연동이 필요한 처리 과정을 담당
- 트랜잭션 관리와 세션 보안 기능을 제공
JAR
- 자바 클래스 파일과 관련 리소스, 메타데이터를 하나의 압축 파일(.jar)로 묶은 형식
- 주로 라이브러리 배포나 애플리케이션 패키징, 웹 애플리케이션의 배포 단위로 사용
스프링 전문가