요즘 다시 공부 중인 스프링 프레임워크, Spring initializr
Spring Initializr 사용법: Spring Boot 프로젝트를 쉽게 시작하는 방법
Spring Initializr는 Spring Boot 프로젝트를 시작할 때 가장 많이 사용되는 도구다.
덕분에 세상 편해짐..
웹 기반의 인터페이스를 통해 개발자는 간편하게 새로운 Spring Boot 프로젝트를 설정하고,
기본적인 프로젝트 구조와 의존성들을 빠르게 생성할 수 있다.
이 글에서는 Spring Initializr의 사용법과 그 기능들에 대해 알아보자.
Spring Initializr란?
Spring Initializr는 Spring Boot 프로젝트의 초기 설정을 빠르고 쉽게 할 수 있도록 도와주는 웹 애플리케이션.
이 도구를 사용하면, 복잡한 설정 없이 원하는 기능을 선택하고, 간단하게 프로젝트를 생성할 수 있다.
설정을 완료한 후, 다운로드한 프로젝트는 바로 IDE(통합 개발 환경)에서 열어 개발을 시작할 수 있다.
(예전엔 IDE도 그냥 다 이클립스 쓰고 그랬는데..)
Spring Initializr 사용법
프로젝트 메타데이터 설정
페이지에 접속하면 가장 먼저 프로젝트 메타데이터를 설정해야 한다. 여기서 설정할 항목들은 다음과 같다.
- Project
- Maven Project: Maven 빌드 도구를 선택. (예전에 많이 사용. 나는 구버전 사람이라 이거 씀.)
- Gradle Project: Gradle 빌드 도구를 선택. (요새 주로 추천하는 듯)
- Language: Spring Boot는 Java, Kotlin, Groovy 등을 지원한다. 가장 많이 사용하는 Java를 선택하는 것이 일반적.
- Spring Boot Version: Spring Boot의 버전을 선택. 최신 버전이 기본으로 설정되어 있으며, 프로젝트의 안정성이나 호환성에 맞는 버전을 선택할 수 있는데 SNAPSHOT보다는 그냥 딱 3.4.3 이렇게 떨어지는 버전을 선택하는 게 낫다.
- Group: Maven 또는 Gradle의 groupId를 설정. 이 값은 주로 프로젝트의 그룹을 구분하는 데 사용됨.
- Artifact: Maven 또는 Gradle의 artifactId로, 프로젝트의 이름에 해당. 예를 들어 demo로 설정하면, 생성된 프로젝트 디렉토리 이름은 demo가 됨.
- Name: 프로젝트의 이름을 설정. 보통 Artifact 값과 동일하게 설정.
- Description: 프로젝트에 대한 간단한 설명을 추가할 수 있다. 이 설명은 나중에 pom.xml 또는 build.gradle 파일에 저장됨.
- Package Name: 생성될 Java 패키지의 기본 이름을 설정. 보통 com.example.demo와 같은 형태로 설정.
- Packaging: 프로젝트의 패키징 형식을 설정. Jar와 War가 있으며, 일반적으로 Jar 형식을 사용.
- Java Version: 사용할 Java의 버전을 설정합니다. 보통 최신 LTS(Long Term Support) 버전인 Java 17을 선택.
Dependencies(의존성) 추가
의존성은 프로젝트에 필요한 라이브러리들을 말한다.
Spring Initializr에서 다양한 의존성들을 선택할 수 있으며,
여기서 선택한 의존성들은 자동으로 프로젝트의 pom.xml(Maven) 또는 build.gradle(Gradle) 파일에 추가됨.
대표적인 의존성 목록
- Spring Web: Spring MVC와 REST API 개발을 위한 의존성. 일반적인 웹 애플리케이션을 개발할 때 필요.
- Spring Data JPA: 데이터베이스와 연동하여 데이터를 처리할 때 사용. JPA(Java Persistence API)를 사용하여 객체와 관계형 데이터베이스를 매핑.
- Spring Boot DevTools: 개발 중에 유용한 도구들을 제공하는 의존성. 자동 재시작, 라이브 리로드 등을 지원.
- Spring Security: 보안 관련 기능을 제공하는 의존성. 인증 및 권한 부여 기능을 쉽게 설정.
- Thymeleaf: HTML 템플릿 엔진으로, 서버 사이드에서 동적으로 HTML을 생성할 때 사용.
- H2 Database: 테스트용 임베디드 데이터베이스로, 개발 및 테스트 중에 매우 유용.
- Lombok: 반복적인 코드를 줄여주는 라이브러리로, @Getter, @Setter, @ToString 등과 같은 어노테이션을 제공.
이 외에도 다양한 의존성들이 존재하며, 필요한 의존성을 선택하여 프로젝트에 추가할 수 있다.
프로젝트 생성
모든 설정을 마친 후, Generate 버튼을 클릭하면 프로젝트가 생성된다.
이때, 선택한 설정에 맞는 pom.xml 또는 build.gradle 파일이 자동으로 생성되며,
선택한 의존성들이 프로젝트에 포함된다.
생성된 프로젝트는 .zip 파일 형식으로 다운로드되며,
이 파일을 다운로드하여 압축을 풀고 IDE에서 열면 되어서 굉장히 편리하다.
IDE에서 Spring Boot 프로젝트 열기
다운로드한 .zip 파일을 압축 해제하고, IDE에서 해당 프로젝트를 연다.
IntelliJ IDEA, Eclipse, VSCode와 같은 IDE에서 Spring Boot 프로젝트를 쉽게 열 수 있다.
보통 IntelliJ IDEA에서는 바로 Spring Boot 프로젝트를 열 수 있으며,
Maven 또는 Gradle을 이용한 빌드도 자동으로 인식된다.
Maven 프로젝트
Maven을 사용할 경우, pom.xml 파일이 프로젝트에 포함된다. Maven은 의존성 관리 및 빌드를 자동으로 처리해 주므로, IDE에서 Maven을 활성화하면 필요한 라이브러리들이 자동으로 다운로드된다.
Gradle 프로젝트
Gradle을 사용할 경우, build.gradle 파일이 포함된다. Gradle을 사용하면 빌드 속도가 빠르고, 유연한 의존성 관리를 할 수 있다. Gradle도 IDE에서 자동으로 인식하고 빌드한다. 요새 gradle을 많이 추천하는 듯하다.
프로젝트 실행
프로젝트가 설정되고 IDE에서 열리면, Application.java 파일을 찾은 후 실행하면 Spring Boot 애플리케이션이 실행된다. 이 파일은 @SpringBootApplication 어노테이션을 포함하고 있으며, main() 메서드가 있다.
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
정리 후기.
새로운 프로젝트에 합류하게 되어 잠시 스프링 프레임워크 공부 중...
큰 프로젝트에서 비즈니스 로직만 다루다가,
이번에는 소규모 프로젝트에 와서 풀스택 개발을 해야 할 상황.
요즘은 환경 설정을 거의 안 해본 것 같은데,
예전에 셋팅된 컴퓨터를 받거나, 이미 만들어진 폴더를 그대로 받아서 사용했었더라는...
그 덕에 개발자 가이드가 잘 정리된 프로젝트만 편하게 다뤘었네??
덕분에 오래간만에 스프링 환경 설정을 다시 공부하고 있다.
요새는 STS 설정도 다 해줘서 다운이 가능하고 세상 좋아졌다... 와...
첨부 링크들은 계속해서 추가할 예정.
괜찮은 강의가 있어서 와드.
https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T
스프링 프레임워크 강좌/강의 ALL
www.youtube.com
환경 설정 관련 블로그
https://rimkongs.tistory.com/47
Service와 Impl 관련 고민
Service와 Impl에 대해 항상 의아했던 부분이 있었는데.. 오호...
https://multifrontgarden.tistory.com/97
MVC 구조에서 service와 serviceImpl
이제는 JSP 개발시 MVC 패턴으로 작업하는게 당연시 되고있다. MVC패턴이란 화면에 보여줄 view 에 대한 작업, DB에서 조회 혹은 DB에 저장할 내용을 중간에 가공, 처리하는 비즈니스로직, DB에 연결하
multifrontgarden.tistory.com
'무한루프 > 개발, 업무' 카테고리의 다른 글
스프링 부트(Spring Boot), 마이바티스(Mybatis), 메이븐(Maven) 백엔드 연동 설정(2) (0) | 2025.02.25 |
---|---|
스프링 부트(Spring Boot), 마이바티스(Mybatis), 메이븐(Maven) 백엔드 연동 설정(1) (0) | 2025.02.25 |
MariaDB 설치 후 DBeaver 설치 및 연결하기 (0) | 2025.02.24 |
Java에서 Word 파일 다루기 - Apache POI 사용법 (0) | 2025.02.24 |
오큘러스 고 (Oculus Go) 개발자 모드 변경 & 해상도 조정 문제 해결기 (0) | 2025.02.23 |