본문 바로가기
학습 아카이브

Spring Initializr로 Spring 프로젝트 시작하기

by 125ryun 2025. 1. 17.
💻 개발 환경
- OS: macOS Monterey 12.7.6
- IDE: IntelliJ IDEA 2024.3.1.1 (Ultimate Edition)
- JDK: java 21.0.5

 

Spring Initializr란?

Spring 프로젝트를 쉽게 생성할 수 있게 해주는 사이트

쉽고 간단하게 프로젝트 설정이나 프로젝트에 필요한 라이브러리를 사용하기 위한 준비(빌드 문서, 다운로드)를 할 수 있다. 

 

Spring 프로젝트를 생성하는 방법

Spring Initializr를 이용해 Spring 프로젝트를 생성하는 방법은 사이트에 직접 접속하는 방법이 대표적이다. 

그 외에도 IntelliJ, Eclipse, VSCode 등 원래 쓰던 IDE에서도 생성할 수 있다.

(Spring Initializr 서버에 요청을 날리는 방식)

 

글에서는 Spring Initializr 사이트를 이용하는 방식을 소개한다. 

 

1. Spring Initializr 사이트 접속

🔗 https://start.spring.io/

Spring Initializr에 접속하자마자 보이는 초기화면

2. 프로젝트 설정

먼저 화면 왼쪽에서 프로젝트 설정을 해보자. 

 

Project : 빌드 자동화 도구

Language : 프로그래밍 언어

Spring Boot : Spring Boot 버전

    - (SNAPSHOT)이 붙어있는 버전은 베타 버전이다. 

 

 

Group : 프로젝트 그룹

    - 일반적으로 도메인의 역순

    - 그룹이 네이버라면 naver.com의 역순인 'com.naver'를 적는 식

Artifact : 프로젝트 식별자

Name : 프로젝트 이름

    - 보통 artifact와 name은 같이 가는 것 같다.

Description : 프로젝트 설명

Package name : 프로젝트의 각종 클래스와 파일이 속하는 패키지. Group과 Name을 바탕으로 자동 생성됨. 

Packaging : 프로젝트 패키지 파일 형식

    - 프로젝트를 jar/war 아카이브 파일로 패키징하면 필요한 라이브러리 등 관련 파일이 압축된다. 

    - 패키지를 이용하면 나중에 어느 환경에서든 어플리케이션을 배포하고 실행할 수 있다. 

Java : Java/JDK 버전

    - 사전에 환경에 깔려있는 JDK 버전을 잘 확인하거나, 여기서 설정한 버전으로 JDK 잘 깔아줄 것!! 프로젝트 초기 숱한 에러의 원인이 된다. 

 

나는 로컬 개발 환경을 고려해서 아래와 같이 설정해 주었다. 

3. 프로젝트 의존 설정

다음으로 화면 오른쪽에서 프로젝트에 필요한 라이브러리를 간단하 추가할 수 있다. 

 

'ADD DEPENDENCIES' 버튼을 누르면 다양한 라이브러리 목록이 뜬다. 

정말 다양한 라이브러리가 있는데... 프로젝트의 목적에 알맞게 잘 추가하면 된다. 

 

목록을 스크롤하거나 검색해서 필요한 라이브러리를 클릭하면 프로젝트 의존에 추가된다. 

행여나 이때 라이브러리를 빠트렸다고 걱정할 필요는 없다. 나중에 빌드 파일에 더 추가한 다음 재빌드할 수 있다. 

이번 프로젝트는

(1) REST API를 제공하는 간단한 백엔드 서버를 구현하는 것이 목표로

(2) 개발하면서 API 문서를 작성하고

(3) MySQL을 DB로 하며

(4) Docker를 활용하여 빌드/배포/실행하고

(5) 회원가입, 로그인, 소셜 로그인 기능을 구현하려 하므로

아래와 같이 라이브러리를 추가해 주었다. 

(0) 편리한 개발을 위해...
- Spring Boot DevTools
- Lombok
(1) REST API 백엔드 서버
- Spring Web
- Rest Repositories
(2) API 문서
- Spring REST Docs
(3) DB와 MySQL
- Spring Data JPA
- MySQL Driver
(4) Docker
- Docker Compose Support
(5) Authentication과 Authorization
- Spring Security
- OAuth2 Client

 

 

어우 꽉껴...

혹시나 필요할지도 몰라 맥시멀리스트 성향이 여기서도 나타난다

 

그런데!!!

 

Rest Repositories는 사실 프로젝트를 진행하다가 뺄 것 같다...

'MySQL과 Docker를 활용하는 Spring 프로젝트'에 적응하기 위해 초반에 이것저것 만져볼 땐 요긴하게 쓰겠지만, 프로젝트가 진행되면서 DTO 요구가 복잡해지면 부분적으로만 사용하거나 아예 안 쓸 듯

무엇보다도 API response body에 entity의 모든 내용이 휑~ 하고 공개되는 게 좀 그렇다. 

 

반대로 나중에 추가할 것 같은 라이브러리도 있다.

Spring Configuration Processor가 아직 구체적으로 어떤 상황에서 필요할지는 모르겠는데 잘 활용하면 편리할 것 같다. 

프로젝트를 진행하다가 필요해지면 Thymeleaf도 추가할 것 같다. 

그리고 프로젝트를 배포까지 이끌어 나간다면 편리하게 운영하기 위해 Spring Boot Actuator도 사용할 것 같다. 

 

API 문서화를 위해 Spring REST Docs와 Swagger 중에서도 뭘 쓸지 고민을 많이 했는데 결국 전자로 골랐다.

이유는 이렇다. 

    - 프로덕션 코드가 깔끔하게 유지됨. 

    - 테스트 코드를 바탕으로 검증된 API에 대해 문서화가 됨. 

    - 찾아보니 현업에서 Spring REST Docs를 많이 쓰는 듯함.

    - Swagger의 어여쁜 UI가 못내 아른거린다면... Spring REST Docs 쓰다가 Swagger를 덧붙이는 건 할 만하다! 

4. 프로젝트 구조 확인 (선택)

프로젝트 설정을 마친 뒤 화면 하단을 보면 'EXPLORE' 버튼이 있다. 

이 버튼을 누르면 생성된 프로젝트의 구조를 볼 수 있다. 

이 버튼을 누르면
프로젝트 구조와 각 파일 내용을 볼 수 있다

 

build.gradle 파일에 아까 추가한 라이브러리가 잘 들어갔는지도 볼 수 있고, 원하면 'COPY'를 눌러서 내용만 복사할 수도 있다. 

5. 프로젝트 다운로드 및 압축 해제

위 화면에서 'DOWNLOAD'를 누르거나 아까 초기 화면으로 돌아와서 'GENERATE'을 누르면 프로젝트가 생성되어 코드 압축파일이 다운로드 된다. 

다운로드 받은 압축파일을 원하는 위치에서 압축해제한다. 

나는 IntelliJ로 작업했을 때 소스코드가 위치하는 기본 디렉터리인 ~/user/user/IdeaProjects에 넣어주었다. 

6. IDE에서 프로젝트 빌드

여기서 마지막으로 프로젝트를 빌드까지 해줘야! 작업을 위한 모든 준비가 끝난다. 

아직 빌드 안 했는데 왜 실행이 안 되지 하고 헤매는 경우도 있으니 꼭!! 빌드를 해주자...

 

먼저 IDE를 실행하고 아까 압축해제한 프로젝트 디렉터리를 열어준다.

나의 경우에는 프로젝트를 여니까 IntelliJ가 알아서 바로 빌드를 해주고 있다. 

 

빌드가 성공적으로 마무리되면 이렇게 .gradle, build 폴더가 새로 생성되고, 프로젝트의 main 함수격인 DemoApplication 옆에 실행 버튼도 뜬다. 오른쪽 상단에서도 DemoApplication에 대한 run, debug 버튼이 활성화된 걸 볼 수 있다. 

 

이렇게 실행 버튼이 제대로 안 뜬다면 빌드를 안 한 거니까 꼭!! 빌드를 해주자.