본문 바로가기
쿤즈 프로젝트/To-do List Application

[Spring Boot] To-Do List 애플리케이션: Chap3. 기본 프로젝트 설정

by Koonz:) 2024. 7. 1.
728x90

지난 글에서는 To-Do List 애플리케이션을 만들기 위한 초안 기획을 작성해 보았으며 요구사항과 사용자 시나리오를 분석해서 어떠한 기능을 만들지 구성해 보았습니다. 초반 기획이 끝난 상태입니다.

 

이번 글에서는 To-Do List 애플리케이션을 개발하기 위한 기본 프로젝트 설정에 대해 알아보겠습니다. Java 설치와 Spring Boot 프로젝트 생성부터 IntelliJ IDEA 설정, Gradle 설정, 파일 구성 및 필요한 의존성 추가까지 단계별로 설명합니다.


Java 설치 및 설정

스프링 부트(Spring Boot) 애플리케이션은 만들기 위해서는 언어가 필요합니다. 이때 사용하는 언어는 대표적으로 Java와 Kotlin이 있습니다. 이번 프로젝트에서는 Java를 이용해서 개발을 진행할게요.

우선, 스프링 부트를 사용하기 위해서는 JDK(Java Development Kit)가 필요합니다. 특히 스프링 부트 3.x 부터는 Java 17 버전 이상이 필요하므로, Java 17 이상을 설치해야합니다. 이 프로젝트에서는 최신 버전인 Java 21을 설치해서 진행하겠습니다.

 

JDK 설치는 다운로드해서 설치가 가능하지만 환경설정을 별도로 해줘야 합니다. 그보다는 저희는 IntelliJ 라는 개발툴을 이용할 예정이므로 개발툴 다운로드 이후에 JDK를 설치해보도록 할게요.

 

🚀 JDK 직접설치
JDK를 직접 설치해보는 것도 굉장히 큰 경험이 됩니다. 하지만 이 글에서는 설치가 목적이 아닌 프로젝트를 쉽게 구성하고 만들어가는 방법을 소개하므로 직접 설치 보다는 툴을 이용해서 간단하게 설치하는 방향으로 진행합니다.

Spring Boot 프로젝트 생성 (Spring Initializr)

Spring Boot 프로젝트를 생성하는 가장 쉬운 방법은 Spring Initializr를 이용하는 것입니다. Spring Initializr는 웹 기반 도구로, 프로젝트를 신속하게 설정하고 필요한 의존성을 추가할 수 있습니다.


Spring Initializr 접속

웹 브라우저에서 Spring Initializr에 접속합니다.


프로젝트 설정 & 의존성 추가

접속한 Spring Initializr에서 생성한 프로젝트의 정보를 입력해 줍니다.

Spring Initializr 프로젝트 설정 및 의존성 추가

 

프로젝트 설정 (Project)

  • Project: Gradle - Groovy
  • Language: Java
  • Spring Boot: 3.3.0
  • Project Metadata:
    • Group: com.koonsland.todo
    • Artifact: todo
    • Name: todo
    • Description: Demo project for Spring Boot To-Do List Application
    • Package Name: com.koonsland.todo
    • Packaging: Jar
    • Java: 21

의존성 추가 (Dependencies)

  • Spring Web: Restfull 웹 애플리케이션을 만들기 위한 기본 의존성입니다. 내부에 Tomcat WAS 서버가 내장되어 있습니다.
  • Spring Data JPA: JPA를 사용하여 데이터베이스 작업을 수행하기 위한 의존성입니다.
  • H2 Database: 메모리 내 데이터베이스로, 개발 및 테스트 용도로 사용합니다.
💻 Tomcat WAS 서버
WAS는 Web Application Server로 어플리케이션을 실행해서 동작하게 만드는 서버를 의미합니다. 별도의 설치 없이 의존성만 추가하면 자동으로 서버가 추가되는것이 Spring Boot의 가장 큰 편리함과 장점입니다.

 

 

모든 프로젝트 설정과 의존성 추가가 완료되면 'Generate' 버튼을 클릭하여 프로젝트를 다운로드합니다.


IntelliJ IDEA 설정 및 프로젝트 구조 설명

Spring Boot 프로젝트를 생성한 후에는 개발을 위한 개발툴(IDE) 설정이 필요합니다. 여기서는 IntelliJ IDEA를 사용하여 프로젝트를 설정하는 방법을 설명합니다.

💡 IDEA
IDEA는 Integrated Development Environment(IDE)의 의미입니다. 통합 개발 환경의 의미로 Spring Boot를 개발할 때에는 주로 IntelliJ IDEA를 사용합니다. 여기서 A는 특별한 약어가 없으며 단순히 발음의 유려함과 브랜드 네이밍의 일환으로 포함된 글자입니다. IDEA는 '아이디어' 또는 생각 이라는 의미를 가지고 있으며, 개발자들이 프로젝트를 계획하고 코딩할 때 더 창의적으로 작업할 수 있도록 도와준다는 의미를 내포하고 있습니다.

IntelliJ IDEA 설치

IntelliJ IDEA가 설치되어 있지 않은 경우, IntelliJ IDEA 다운로드 페이지에서 Community Edition을 다운로드 하여 설치합니다. Community Edition은 무료버전이며 초기 학습을 위해 개발할 때에는 크게 어려움 없이 사용 할 수 있습니다.

IntelliJ IDEA 다운로드 페이지


프로젝트 열기

IntelliJ IDEA를 실행하고, 'Open'을 클릭하여 다운로드한 프로젝트 폴더를 선택합니다. 프로젝트가 열리면 IntelliJ IDEA가 자동으로 Gradle을 인식하고 필요한 종속성을 다운로드 합니다.

프로젝트 Open


프로젝트 구조

프로젝트가 성공적으로 열리면, 다음과 같은 기본 구조를 확인할 수 있습니다.

  • src/main/java: 애플리케이션의 메인 소스 코드가 위치하는 곳입니다.
  • src/main/resources: 애플리케이션의 설정 파일 및 리소스 파일이 위치합니다.
  • src/test/java: 애플리케이션의 테스트 코드들이 위치합니다.
  • build.gradle: Gradle 설정 파일

Gradle 설정 파일 (build.gradle) 구성

Gradle은 빌드 자동화 시스템입니다. 프로젝트의 빌드, 의존성 관리, 배포 관리 등을 자동화할 수 있습니다. build.gradle 파일을 열고 필요한 의존성을 추가합니다.

 

기본 Gradle 설정

다음은 기본적인 Gradle 설정입니다.

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.3.0'
	id 'io.spring.dependency-management' version '1.1.5'
}

group = 'com.koonsland'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(21)
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	runtimeOnly 'com.h2database:h2'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

이 설정 파일은 다음과 같은 작업을 수행합니다.

  • Spring Boot 및 Java 플러그인을 적용하며 버전관리까지 할 수 있습니다.
  • 프로젝트 메타데이터를 설정합니다.
  • Maven Central 저장소를 사용하여 의존성을 해결합니다.
  • Spring Boot, Spring Data JPA, H2 Database, Spring Boot Test 의존성을 추가합니다.

의존성 추가

의존성들은 'dependencies' 블록 내부에 필요한 의존성을 추가합니다.

  • spring-boot-starter-data-jpa: Spring Data JPA를 사용하기 위한 의존성입니다.
  • spring-boot-starter-web: Restful 웹 애플리케이션을 만들기 위한 의존성입니다.
  • h2: 메모리 내 데이터베이스를 사용하기 위한 의존성입니다.
  • spring-boot-starter-test: 테스트를 위한 의존성입니다.

 

Gralde 파일을 저장하면 IntelliJ IDEA가 자동으로 의존성을 다운로드하고 프로젝트를 구성합니다.


프로젝트 초기 실행

프로젝트 설정이 완료되었으므로, 이제 프로젝트를 실행하기 위해 초기 설정이 올바르게 되었는지 확인합니다. IntelliJ IDEA에서 /src/main/java의 'com.koonsland.todo' 패키지 내의 TodoApplication 클래스를 찾아 열어줍니다.

package com.koonsland.todo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class TodoApplication {

	public static void main(String[] args) {
		SpringApplication.run(TodoApplication.class, args);
	}

}

 

Java가 설치되어 있는지 확인해줍니다. (위에서 자바를 먼저 설치해 주었다면 자동으로 설정되며 설치되지 않았다면 자바를 설치하도록 합니다.) 

 

상단 메뉴의 File > Project Structure... 를 실행해주면 아래와 같은 메뉴가 나타납니다.

 

여기서 SDK가 설치되지 않았다면 [Download JDK...] 를 눌러서 새로운 JDK를 다운로드 받아 줍니다.

🧑‍💻 JDK 버전
Mac의 M1 종류의 프로세서를 사용하고 있다면 aarch64가 붙은 JDK 버전을 다운로드 해서 설정해주시면 됩니다.

 

Java 설정이 끝났다면 [Project Structure]를 닫고 우측 상단에 버튼을 누르거나 클래스 파일 내용 좌측에 버튼을 눌러 애플리케이션을 실행해줍니다.

IntelliJ IDEA

 

정상적으로 애플리케이션이 동작하면 아래와같이 실행됩니다. 실행된 모습을 보면 현재 Spring Boot의 버전, Java 버전, 서버의 실행 port, 톰캣 라이브러리의 버전등이 표시됩니다.

애플리케이션 실행 모습


지금까지 기본 프로젝트 설정에 대한 모든 단계를 마쳤습니다. 애플리케이션 개발을 위해서 셋팅해야 할 것들이 많지만 프로젝트 초기에만 설정하기 때문에 익숙하지 않은것도 사실입니다. 최초 1회 설정하는 부분도 잘 알아두면 도움이 많이 됩니다.

 

이 글을 통해 To-Do List 애플리케이션의 기본 프로젝트 설정을 명확하게 이해할 수 있길 바랍니다. 다음 글에서는 데이터 모델링과 데이터베이스 설계에 대해서 다루겠습니다. 추가로 필요하거나 궁금한 사항이 있다면 언제든지 댓글로 남겨주세요. 감사합니다.

 

이전 글

 

 

[Spring Boot] To-Do List 애플리케이션: Chap1. 프로젝트 소개

이번 시리즈에서는 Spring Boot 3 버전을 사용해서 간단하게 To-Do List 애플리케이션을 만드는 프로젝트를 진행하려 합니다. 그래서 이 포스팅에서는 애플리케이션을 만드는 방법을 단계별로 소개할

koonsland.tistory.com

 

 

[Spring Boot] To-Do List 애플리케이션: Chap2. 요구사항 정리

지난 Chap1에서는 To-Do List 애플리케이션에 대해서 어떤 것을 만들고 어떤 과정으로 프로젝트를 진행하겠다는 계획에 대해서 정리했습니다. 또한 To-Do List 애플리케이션과 같은 기능을 가진 앱들

koonsland.tistory.com

 

댓글