강의 2 – 스프링 개발 환경 설정

·

,






스프링 프레임워크 강의 시리즈 – 강의 2: 스프링 개발 환경 설정


스프링 프레임워크 강의 시리즈

강의 2: 스프링 개발 환경 설정


모든 레벨

소요 시간: 약 40분

실습 포함

개요

스프링 프레임워크로 개발을 시작하기 위해서는 적절한 개발 환경을 구축하는 것이 중요합니다. 이번 강의에서는 스프링 애플리케이션을 개발하기 위한 환경 설정 방법을 살펴보겠습니다. 자바 개발 환경부터 시작하여 IDE 선택, 빌드 도구 설정, 그리고 첫 번째 스프링 프로젝트를 생성하는 방법까지 다룹니다.

이 강의에서 배울 내용:

  • JDK(Java Development Kit) 설치 및 환경 변수 설정
  • Eclipse와 IntelliJ IDEA 같은 인기 있는 IDE 설정
  • Maven과 Gradle 같은 빌드 도구의 기본 개념
  • Spring Initializr를 사용한 첫 번째 스프링 프로젝트 생성
  • 프로젝트 구조 이해 및 기본 실행 방법

JDK(Java Development Kit) 설정

스프링은 자바 기반 프레임워크이므로 JDK를 설치해야 합니다. 현재 스프링 프레임워크 6.x 버전은 Java 17 이상을 요구하며, 스프링 부트 3.x는 Java 17 이상을 요구합니다. 이전 버전의 스프링을 사용할 경우에는 Java 8 이상을 사용할 수 있습니다.

JDK 설치 단계

JDK 다운로드

Oracle JDK 또는 OpenJDK를 선택할 수 있습니다:

JDK 설치

다운로드한 설치 프로그램을 실행하고 안내에 따라 설치합니다.

환경 변수 설정

시스템에 JAVA_HOME 환경 변수를 설정하고 PATH에 JDK의 bin 디렉토리를 추가합니다:

Windows:

JAVA_HOME = C:\Program Files\Java\jdk-17
PATH = %PATH%;%JAVA_HOME%\bin

macOS/Linux:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin

설치 확인

터미널 또는 명령 프롬프트에서 다음 명령어를 실행하여 JDK가 올바르게 설치되었는지 확인합니다:

java -version

설치된 자바 버전 정보가 표시됩니다.

팁: 여러 자바 버전을 관리해야 하는 경우, SDKMAN(Linux/Mac) 또는 Chocolatey(Windows) 같은 패키지 관리자를 사용하면 편리합니다.

IDE(통합 개발 환경) 설정

스프링 애플리케이션 개발을 위한 IDE는 주로 Eclipse와 IntelliJ IDEA가 사용됩니다. 두 IDE 모두 스프링 개발을 위한 강력한 도구를 제공합니다.

Eclipse

무료 오픈소스 IDE로 Spring Tool Suite(STS)라는 스프링 특화 버전이 있습니다.

설치 방법:

  1. Spring Tools에서 STS 다운로드
  2. 다운로드한 파일 압축 해제
  3. 실행 파일을 통해 IDE 실행

주요 장점:

  • 무료 사용 가능
  • 스프링 특화 기능 내장
  • 다양한 플러그인 지원
  • 경량화된 실행 환경

IntelliJ IDEA

JetBrains에서 개발한 강력한 IDE로 무료 Community 버전과 유료 Ultimate 버전이 있습니다.

설치 방법:

  1. IntelliJ IDEA 웹사이트에서 다운로드
  2. 설치 프로그램 실행 및 안내에 따라 설치

주요 장점:

  • 뛰어난 코드 완성 및 리팩토링 기능
  • Ultimate 버전에서 스프링 통합 지원
  • 직관적인 사용자 인터페이스
  • 데이터베이스 도구 내장

참고: 두 IDE 모두 훌륭한 도구이며, 개인 선호도에 따라 선택하면 됩니다. 학습 목적이라면 무료인 Eclipse STS나 IntelliJ IDEA Community Edition으로 시작하는 것이 좋습니다.

빌드 도구

스프링 애플리케이션 개발에는 Maven이나 Gradle 같은 빌드 도구가 필수적입니다. 이러한 도구는 의존성 관리, 프로젝트 빌드, 테스트 실행 등의 작업을 자동화합니다.

Maven

XML 기반의 프로젝트 관리 도구로, 오랫동안 자바 생태계의 표준으로 사용되어 왔습니다.

설치 방법:

  1. Maven 웹사이트에서 바이너리 아카이브 다운로드
  2. 압축 해제 후 PATH 환경 변수에 bin 디렉토리 추가
  3. 터미널에서 mvn -version 명령으로 설치 확인

주요 개념:

  • pom.xml 파일에 프로젝트 설정 및 의존성 정의
  • 라이프사이클 기반 빌드 과정
  • 중앙 저장소를 통한 의존성 관리

기본 pom.xml 예제:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.example</groupId>
    <artifactId>spring-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    
    <properties>
        <java.version>17</java.version>
        <spring.version>6.0.0</spring.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.10.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Gradle

Groovy 또는 Kotlin DSL을 사용하는 빌드 도구로, Maven보다 더 유연하고 성능이 좋습니다.

설치 방법:

  1. Gradle 웹사이트에서 설치 방법 확인
  2. SDKMAN 또는 Chocolatey 같은 패키지 관리자를 통한 설치 권장
  3. 터미널에서 gradle -version 명령으로 설치 확인

주요 개념:

  • build.gradle 파일에 프로젝트 설정
  • 태스크 기반 빌드 시스템
  • 증분 빌드로 빠른 성능
  • 다중 프로젝트 빌드 지원

기본 build.gradle 예제:

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

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

참고: 빌드 도구 선택은 개인 또는 팀 선호도에 따라 다를 수 있습니다. 최근에는 Gradle의 인기가 증가하고 있으나, Maven도 여전히 많이 사용됩니다. 스프링 부트 프로젝트는 두 빌드 시스템 모두 지원합니다.

첫 번째 스프링 프로젝트 생성

스프링 프로젝트를 생성하는 가장 쉬운 방법은 Spring Initializr를 사용하는 것입니다. 이 도구는 프로젝트 구조와 기본 설정을 자동으로 생성해줍니다.

Spring Initializr 사용하기

Spring Initializr 웹사이트 방문

https://start.spring.io에 접속합니다.

프로젝트 설정

  • 프로젝트 유형: Maven Project 또는 Gradle Project
  • 언어: Java, Kotlin 또는 Groovy
  • Spring Boot 버전: 안정 버전 선택(예: 3.0.x)
  • Project Metadata: Group, Artifact, Name, Description, Package name 설정
  • Java 버전: JDK 버전에 맞게 선택(예: 17)
  • Dependencies: 필요한 의존성 추가(예: Spring Web, Thymeleaf, Spring Data JPA)

프로젝트 생성

“GENERATE” 버튼을 클릭하여 프로젝트 파일을 다운로드합니다.

프로젝트 압축 해제 및 IDE로 가져오기

다운로드한 zip 파일을 압축 해제한 후, IDE에서 프로젝트를 가져옵니다.

  • Eclipse: File > Import > Existing Maven/Gradle Project
  • IntelliJ IDEA: File > Open 또는 Import Project

프로젝트 구조 이해하기

Spring Boot 프로젝트는 다음과 같은 구조를 가집니다:

my-spring-project/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/demo/
│   │   │       └── DemoApplication.java
│   │   └── resources/
│   │       ├── application.properties
│   │       ├── static/
│   │       └── templates/
│   └── test/
│       └── java/
│           └── com/example/demo/
│               └── DemoApplicationTests.java
├── pom.xml (또는 build.gradle)
└── README.md
  • src/main/java: 자바 소스 코드 위치
  • src/main/resources: 설정 파일, 정적 리소스, 템플릿 파일 위치
  • src/test: 테스트 코드 위치
  • pom.xml/build.gradle: 프로젝트 설정 및 의존성 파일

첫 번째 애플리케이션 실행하기

Spring Boot 애플리케이션을 실행하는 여러 방법이 있습니다:

IDE에서 실행

  1. 메인 클래스(~Application.java)를 열기
  2. Run 또는 Debug 버튼 클릭

빌드 도구로 실행

터미널에서:

  • Maven: mvn spring-boot:run
  • Gradle: gradle bootRun

참고: 기본적으로 Spring Boot 애플리케이션은 8080 포트에서 실행됩니다. 브라우저에서 http://localhost:8080에 접속하여 실행 중인 애플리케이션을 확인할 수 있습니다.

실습 예제: Hello World 애플리케이션

첫 번째 Spring Boot 애플리케이션을 만들고 실행해 보겠습니다. 이 예제는 웹 브라우저에 간단한 인사말을 표시합니다.

1. Spring Boot 애플리케이션 클래스

먼저, Spring Boot 애플리케이션의 메인 클래스를 확인합니다. 이 클래스는 Spring Initializr에서 자동 생성됩니다:

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);
    }
}

2. 컨트롤러 생성

웹 요청을 처리할 컨트롤러 클래스를 생성합니다:

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Framework!";
    }
    
    @GetMapping("/hello/{name}")
    public String helloWithName(@PathVariable String name) {
        return "Hello, " + name + "! Welcome to Spring Framework!";
    }
}

3. 애플리케이션 설정

src/main/resources/application.properties 파일에서 애플리케이션 설정을 구성할 수 있습니다:

# 서버 포트 설정
server.port=8080

# 애플리케이션 이름
spring.application.name=hello-spring

# 로깅 레벨 설정
logging.level.org.springframework=INFO
logging.level.com.example.demo=DEBUG

4. 애플리케이션 실행 및 테스트

  1. IDE 또는 빌드 도구를 사용하여 애플리케이션을 실행합니다.
  2. 웹 브라우저에서 http://localhost:8080/hello에 접속합니다.
  3. “Hello, Spring Framework!”라는 메시지가 표시됩니다.
  4. 또는 http://localhost:8080/hello/YourName과 같이 접속하여 개인화된 메시지를 확인합니다.

실습 과제: 위의 예제를 확장하여 다음 기능을 추가해 보세요:

  1. 현재 시간을 함께 표시하는 엔드포인트 추가
  2. 간단한 폼을 통해 사용자 이름을 입력받고 인사하는 HTML 페이지 만들기 (Thymeleaf 템플릿 엔진 사용)

다음 단계

이제 스프링 프레임워크 개발 환경을 설정하고 첫 번째 애플리케이션을 실행해 보았습니다. 다음 강의에서는 스프링의 핵심 개념인 의존성 주입(Dependency Injection)과 제어의 역전(Inversion of Control)에 대해 자세히 살펴보겠습니다.

요약

  • JDK를 설치하고 환경 변수를 설정했습니다.
  • Eclipse나 IntelliJ IDEA 같은 IDE를 선택하고 설정했습니다.
  • Maven 또는 Gradle 빌드 도구에 대해 배웠습니다.
  • Spring Initializr를 사용하여 첫 번째 스프링 프로젝트를 생성했습니다.
  • 간단한 REST 컨트롤러를 만들고 실행했습니다.

추천 자료

스프링 프레임워크 강의 시리즈

강의 2: 스프링 개발 환경 설정

© 2023 스프링 강의 시리즈

모든 권리 보유


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다