1. 스프링 부트 스타터 (Spring Boot Starter)
- 스프링 부트 스타터 (Spring Boot Starter): 의존성이 모여있는 그룹
=> 특정 기능을 구현하기 위해 필요한 의존성(dependencies)을 한 번에 관리할 수 있는 일종의 패키지 모음
- 스프링 부트에서 특정 기능(ex. 웹 개발, 데이터베이스 접근 등)을 사용하려면 여러 라이브러리와 설정이 필요
-> 과거 : 개발자가 각 라이브러리를 개별적으로 추가하고 설정 필요 ->번거로움 & 실수 가능성 큼
- 스타터 사용 -> 필요한 기능을 간편하게 설정 가능
- 특정 기능을 구현하기 위해 필요한 라이브러리와 설정을 미리 패키지로 묶어 제공
-> 개발자는 단순히 해당 스타터를 의존성에 추가하는 것만으로도 필요한 모든 것을 자동으로 가져올 수 있음
- 명명 규칙 O : spring-boot-starter-[작업유형]
스타터(Starter) | 설명 |
spring-boot-starter-jdbc | JDBC 관련 스타터 |
spring-boot-starter-web | Spring MVC를 사용해서 RESTful 웹 서비스를 개발할 때 필요한 의존성 모음 |
spring-boot-starter-test | 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음 |
spring-boot-starter-validation | 유효성 검사를 위해 필요한 의존성 모음 |
spring-boot-starter-actuator | 모니터링을 위해 애플리케이션에서 제공하는 다양한 정보를 제공하기 쉽게 하는 의존성 모음 |
spring-boot-starter-data-jpa | ORM을 사용하기 위한 인터페이스의 모음인 JPA를 더 쉽게 사용하기 위한 의존성 모음 |
spring-boot-starter-security | 애플리케이션에 보안 기능(인증 및 권한 부여)을 추가할 때 사용 |
spring-boot-starter-thymeleaf | Thymeleaf 템플릿 엔진을 사용. 서버 측에서 HTML을 렌더링할 때 사용. |
- ORM(Object-Relational Mapping)
: 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간에 데이터를 변환하는 프로그래밍 기술
즉, 객체와 관계형 데이터베이스의 데이터를 매핑하는 것을 의미
(출처 : https://f-lab.kr/insight/understanding-orm)
- JPA(Java Persistence API)
: 자바에서 객체를 데이터베이스에 저장하고 관리하기 위한 인터페이스와 기능을 제공하는 API.
- JPA를 사용하면 객체와 관계형 데이터베이스 간의 매핑을 손쉽게 처리할 수 있으며 데이터베이스의 CRUD(Create, Read, Update, Delete) 작업을 간편하게 수행 가능
(출처: https://ccomccomhan.tistory.com/131 [[꼼꼼한 개발자] 꼼코더:티스토리])
2. 코드 실습 - 스프링 부트 스타터 (Spring Boot Starter)
ex. Gradle 사용 경우
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 관련 기능 제공
testImplementation 'org.springframework.boot:spring-boot-starter-test'// 테스트 기능 제공
}
ex. Maven 사용 경우
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
인텔리제이 - gradle - 프로젝트 더블클릭해서 확인 가능
spring-boot-starter-web => Spring MVC를 사용해서 RESTful 웹 애플리케이션 개발에 사용
3. Spring Boot 가 의존성을 가져오는 방법
- 스프링부트는 현재 버전에 맞는 라이브러리를 알아서 관리
- 만약 어떤 의존성 사용하는지 버전별 확인 필요?
-> 스프링 공식문서 Dependency Versions에서 확인
https://docs.spring.io/spring-boot/appendix/dependency-versions/index.html
깃허브에서도 확인 가능
https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-starters
원하는 스타터 클릭
build.gradle 파일의 dependencies 확인 가능
아직 스타터를 사용해서 설정을 간편하게 적용해본 적이 없어서 와닿지는 않지만, 메이븐의 XML 파일을 통해서 의존성을 주입하는건 스프링 프레임워크에서도 해봤던 터라 비슷한 개념인 것 같다.
아직 Greadle을 사용해서 프로젝트를 해 본 적이 없어서 이론적으로 좀 더 친숙해질 시간이 필요할 것 같다.
'Spring Boot' 카테고리의 다른 글
[Spring Boot] 7. 스프링 부트3 과 자바 버전 (2) | 2024.08.19 |
---|---|
[Spring Boot] 6. 스프링 부트 자동 구성 (0) | 2024.08.19 |
[Spring Boot] 4. 예제1) @RestController, @GetMapping 으로 컨트롤러 만들기 + Spring Boot 동작원리 이해해보기 (0) | 2024.08.19 |
[Spring Boot] 3. 스프링(Spring)과 스프링부트(Spring Boot) (0) | 2024.08.19 |
[Spring Boot] 2.5.개념 - 백엔드 개발자의 업무 / 백엔드 프로그래밍 언어 / 자바 애너테이션(Annotation, @) (0) | 2024.08.19 |