728x90
Spring Boot Project 생성하기(Gradle)
Spinrg Boot Project를 Gradle을 이용하여 생성해 보자.
Spring Initializr에서 생성하기
프로젝트를 시작하는데 필요한 기본 설정이 자동으로 생성되므로, 설정에 시간을 절약할 수 있다.
- Sping Initalizr 웹사이트 접속
- 내가 생성하고자 하는 프로젝트를 설정
- Project
- 프로젝트 타입을 선택
- Maven, Gradle 중 하나를 선택
- Language
- 프로젝트를 구축할 언어를 선택
- Java, Kotlin, Groovy 중 하나를 선택
- Spring Boot
- 해당 프로젝트에서 사용할 Spring Boot 버전 선택
- 보통 최신 버전을 선택한다.
- Project Metadata
- 프로젝트의 메타데이터를 입력(프로젝트의 기본 정보)
- Group : 프로젝트 그룹 또는 패키지 명
- Artifact : 프로젝트의 아티팩트 아이디
- 프로젝트의 고유한 식별자로 사용
- Maven이나 Gradle에서 생성되는 JAR 파일의 이름으로 사용
- Name : 프로젝트 이름
- Description : 프로젝트에 대한 간단한 설명
- Package name : 프로젝트의 기본 패키지 구조 지정
- Java 클래스와 소스 파일을 구조화하는데 사용
- Group과 Artifact를 기반으로 하여, 기본 패키지명이 생성되며, 여기에 추가적인 패키지명을 정의 가능
- Packaging : 프로젝트를 빌드 할 때 생성될 파일 형식
- JAR : 단독 실행 가능한 Java 애플리케이션을 위한 것
- WAR : Java 웹 애플리케이션을 위한 것
- Java : 프로젝트에서 사용할 Java 버전
- Dependencies
- 프로젝트에 필요한 의존성 선택
- Project
- Generate 버튼을 클릭하여 프로젝트 생성
- 생성이 완료되면 ZIP 파일을 다운로드 받아, 압축 풀기
- 프로젝트를 IDE에 import 하고 개발 시작
IntelliJ에서 생성하기(유료 버전)
- File → New → Project 클릭
- Spring Initalizr 클릭 후 프로젝트 정보 입력 → Next 클릭
- 프로젝트에 필요한 의존성 선택
- Spring Boot Project 생성 완료
Spring Boot Project
생성한 Spring Boot Porject에 대해 자세히 알아보자
- 프로젝트 구조
- src/main/java : 소스 코드 위치
- src/main/resources : 리소스 파일 위치
- src/test/java : 테스트 코드 위치
- src/test/resources : 테스트 리소스 위치
- / : 프로젝트 설정 파일
- 의존성 관리
- Maven이나 Gradle을 사용하여 의존성을 관리
- 프로젝트를 생성할 때 선택한 의존성은 pom.xml이나 build.gradle 파일에 기록되어 있다.
- 해당 파일을 통해 필요한 라이브러리 및 프레임워크를 관리하고 추가한다.
- 애플리케이션 클래스
- 스프링 부트 애플리케이션은 @SpringBootApplication이 지정된 메인 클래스를 가진다.
- 스프링 부트 애플리케이션의 진입점이며, 내장된 웹서버를 시작하는데 사용
- 기본 구성 파일
- application.properties이나 application.yml 파일을 사용하여 애플리케이션의 구성을 정의
- 데이터베이스 연결 정보, 서버 포트, 로깅 설정 등을 지정
- 웹 컨트롤러 및 서비스
- 컨트롤러는 HTPP 요청을 처리
- 서비스는 비즈니스 로직을 처리
- 이러한 클래스들은 @Controller, @Service 등의 스프링 애너테이션을 사용하여 정의한다.
- 테스트
- 테스트를 작성하고 실행하는 데 간편한 환경을 제공
- JUnit이나 Mockito와 같은 테스트 프레임워크를 사용하여 단위 테스트나 통합 테스트를 작성할 수 있다.
build.gradle 파일 분석하기
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '21'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
< org.springframework.boot → 배포 및 실행 >
- Spring Boot 애플리케이션을 빌드하고 패키징 하는데 사용되는 Gradle 플러그인
- Gradle 빌드 스크립트에서 Spring Boot와 관련된 설정을 간편하게 구성 가능
- boot Run
- Spring Boot 애플리케이션을 실행
- 실행할 메인 클래스를 지정 가능
- bootJar
- Spring Boot 애플리케이션을 jar 패키지로 빌드
- 의존성 라이브러리를 포함한 실행 가능한 jar 파일 생성
- bootWar
- Spring Boot 애플리케이션을 war 패키지로 빌드
- 의존성 라이브러리를 포함한 war 파일 생성
- bootBuildImage
- Spring Boot 애플리케이션을 OCI(Docker) 이미지로 빌드
- Docker 이미지를 생성하고 Docker 레지스트리에 업로드 가능
< io.spring.dependency-management → 의존성 관리 >
- Gradle 프로젝트에서 의존성 관리를 위해 사용되는 플러그인
- 버전 관리를 자동으로 수행하여, 의존성 관리를 더욱 효율적으로 할 수 있다.
- dependencyUpdates
- 프로젝트의 의존성에 대해 업데이트 가능한 버전을 확인하고 출력
- dependencyManagement
- 의존성 관리를 위해 사용되는 Maven BOM(Bill of Materials) 파일 생성
Maven BOM(Bill of Materials 이란?
의존성 관리를 위한 파일, Maven Repository에 업로드되는 특수한 종류의 ROM 파일
- 프로젝트에서 사용되는 의존성 버전을 관리할 수 있도록 도와준다.
- 의존성을 정의하는 POM 파일과 비슷한 구조를 가지고 있다.
- 단, BOM 파일은 의존성 버전만 포함하고, 실제 의존성을 제공하지 않는다.
- BOM 파일을 프로젝트에서 참조하여, 필요한 의존성 버전을 지정 가능
⇒ 여러 프로젝트에서 동일한 의존성 버전을 사용할 수 있는 이유!
- 다른 Maven 프로젝트에서 참조할 수 있도록 BOM 파일을 Maven Repository에 업로드
→ 다른 프로젝트에서 이를 쉽게 사용 가능 → 버전 업그레이드나 보안 업데이트 등의 변경사항을 일괄적으로 적용 가능
- 의존성 관리를 위해 사용되는 Maven BOM(Bill of Materials) 파일 생성
- group
- 프로젝트의 그룹명을 설정하는 속성
- Maven Repository에 업로드될 때의 그룹명으로 사용
- 보통 프로젝트의 패키지 명과 동일하게 지정
- version
- 프로젝트의 버전을 설정하는 속성
- 프로젝트의 변경사항에 따라 업데이트되며, Maven Repository에서는 버전별로 구분
- 버전은 Major.Minor.Patch -SNAPSHOT 형식으로 지정
- Major 버전 : 하위 호환성이 없는 큰 변경이 일어날 때 업데이트
- Minor 버전 : 하위 호환성을 유지하면서 기능이 추가될 때 업데이트
- Patch 버전 : 하위 호환성을 유지하면서 버그를 수정할 때 업데이트
- SNAPSHOT : 개발 중인 버전을 나타내는 접미사
- 버전은 아직 출시되지 않았고, 현재 개발 중이라는 의미
- 개발 중인 프로젝트에서는 해당 접미사를 사용하여 버전을 관리하는 것이 일반적
- 0.0.1은 초기 버전을 나타내며, 이후 기능을 추가하거나 버그를 수정할때 업데이트
- sourceCompatibility
- 프로젝트의 소스 코드 버전을 설정하는 속성
- 이 속성을 설정하면, 컴파일러가 해당 버전으로 코드를 컴파일
- 21로 설정 → JAVA 21버전의 소스코드를 사용한다는 것을 의미
- repositories
- 사용할 라이브러리들이 저장되어 있는 Maven Repository의 위치를 지정
- Gradle에서 사용하는 라이브러리를 간편하게 관리 가능
- 필요한 라이브러리를 쉽게 찾아 다운로드 가능
< org.springframework.boot:spring-boot-starter-web >
- Spring Boot 애플리케이션을 개발할 때 웹 개발에 필요한 의존성을 관리하는 Starter
- Spring MVC, Tomcat, Jackson 등과 같은 필수적인 웹 개발 라이브러리를 제공
- Spring MVC : 웹 애플리케이션을 개발할 때 사용되는 웹 프레임워크
- Tomcat : 내장형 웹 서버
- Jackson : JSON 형식 데이터를 다루기 위한 라이브러리
- 불필요한 의존성을 추가하지 않고도 웹 애플리케이션을 개발 가능
- Spring Boot의 자동 설정 기능을 이용하여 빠르게 쉽게 구성 가능
728x90
'Spring' 카테고리의 다른 글
Spring Boot 실행 클래스 분석하기 (0) | 2024.06.06 |
---|---|
WEB Server와 WAS (0) | 2024.06.04 |
Spring Framework과 Spring Boot (0) | 2024.06.03 |
Library와 Framework, API (0) | 2024.06.02 |