챕터 2: 개발 환경 설정
스프링부트 애플리케이션을 개발하기 위해서는 적절한 개발 환경을 설정하는 것이 중요합니다. 이 장에서는 JDK 설치, IntelliJ IDEA 설정, Maven과 Gradle 설정 등을 다룹니다.
2.1 JDK 설치 및 설정
스프링부트 3.x 버전은 JDK 17 이상을 필요로 합니다. 이 섹션에서는 OpenJDK를 활용하여 JDK를 설치하고 설정하는 방법을 설명합니다.
OpenJDK 설치
- OpenJDK 다운로드 페이지로 이동합니다.
- 운영 체제에 맞는 JDK 설치 파일을 다운로드하고 설치합니다.
환경 변수 설정 (Windows 기준)
- 환경 변수 편집 창을 엽니다.
- 시스템 변수 섹션에서 Path 변수를 찾아 편집합니다.
- JDK 설치 경로를 추가합니다. 예: C:\Program Files\Java\jdk-17\bin
환경 변수가 올바르게 설정되었는지 확인하려면 커맨드 라인에서 다음 명령어를 실행합니다:
java -version
출력 결과에서 JDK 버전을 확인할 수 있으면 성공입니다.
환경 변수 설정 (macOS 및 Linux 기준)
- `.bashrc` 또는 `.zshrc` 파일을 엽니다.
- 다음 줄을 추가합니다:
export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH
- 변경 사항을 적용합니다:
source ~/.bashrc # 또는 source ~/.zshrc
환경 변수가 올바르게 설정되었는지 확인하려면 터미널에서 다음 명령어를 실행합니다:
java -version
출력 결과에서 JDK 버전을 확인할 수 있으면 성공입니다.
2.2 IntelliJ IDEA/Eclipse 설정
스프링부트 애플리케이션 개발을 위해 IntelliJ IDEA 또는 Eclipse와 같은 IDE를 설정합니다.
IntelliJ IDEA 설정
- IntelliJ IDEA 다운로드 페이지에서 설치 파일을 다운로드하고 설치합니다.
- IntelliJ IDEA를 실행하고 새 프로젝트를 생성합니다.
- File -> New -> Project를 선택하고 Spring Initializr를 선택합니다.
- 필요한 종속성을 선택하고 프로젝트를 생성합니다.
Eclipse 설정
- Eclipse 다운로드 페이지에서 설치 파일을 다운로드하고 설치합니다.
- Eclipse를 실행하고 새 프로젝트를 생성합니다.
- File -> New -> Project를 선택하고 Spring Boot 프로젝트를 생성합니다.
- 필요한 종속성을 선택하고 프로젝트를 생성합니다.
2.3 Maven과 Gradle 기본 설정
스프링부트 프로젝트는 주로 Maven이나 Gradle을 빌드 도구로 사용합니다. Maven과 Gradle을 설치하고 설정하는 방법을 알아봅니다.
Maven 설치 및 설정
- Maven 다운로드 페이지에서 설치 파일을 다운로드합니다.
- 설치 파일을 압축 해제하고 적절한 디렉토리에 위치시킵니다. 예: C:\apache-maven-3.8.4
- 환경 변수 설정:
- MAVEN_HOME 환경 변수를 추가하고 Maven 설치 경로를 설정합니다.
- Path 변수에 MAVEN_HOME\bin을 추가합니다.
환경 변수가 올바르게 설정되었는지 확인하려면 커맨드 라인에서 다음 명령어를 실행합니다:
mvn -version
출력 결과에서 Maven 버전을 확인할 수 있으면 성공입니다.
Gradle 설치 및 설정
- Gradle 다운로드 페이지에서 설치 파일을 다운로드합니다.
- 설치 파일을 압축 해제하고 적절한 디렉토리에 위치시킵니다. 예: C:\gradle-7.2
- 환경 변수 설정:
- GRADLE_HOME 환경 변수를 추가하고 Gradle 설치 경로를 설정합니다.
- Path 변수에 GRADLE_HOME\bin을 추가합니다.
환경 변수가 올바르게 설정되었는지 확인하려면 커맨드 라인에서 다음 명령어를 실행합니다:
gradle -version
출력 결과에서 Gradle 버전을 확인할 수 있으면 성공입니다.
예시 코드와 설명
예제 1: Maven 프로젝트 생성 및 설정
Maven을 사용하여 스프링부트 프로젝트를 생성하고 설정하는 방법을 보여줍니다.
`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-boot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-demo</name>
<description>Spring Boot Demo Project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- 스프링부트 웹 스타터: 웹 애플리케이션 개발을 위한 기본 설정 제공 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 테스트용 종속성 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 스프링부트 Maven 플러그인: 애플리케이션을 패키징하고 실행하는 데 사용 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
기본 애플리케이션 클래스 작성
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @SpringBootApplication: 스프링부트 애플리케이션의 진입점
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// SpringApplication.run(): 애플리케이션을 시작하는 메서드
SpringApplication.run(DemoApplication.class, args);
}
}
간단한 REST 컨트롤러 작성
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
// @RestController: RESTful 웹 서비스의 컨트롤러를 정의
@RestController
public class HelloController {
// @GetMapping: HTTP GET 요청을 처리하는 매핑
@GetMapping("/hello")
public String hello() {
// 간단한 문자열을 반환하는 메서드
return "Hello, Spring Boot!";
}
}
애플리케이션 실행
mvn spring-boot:run
브라우저에서 http://localhost:8080/hello로 접속하면 "Hello, Spring Boot!" 메시지를 확인할 수 있습니다.
예제 2: Gradle 프로젝트 생성 및 설정
Gradle을 사용하여 스프링부트 프로젝트를 생성하고 설정하는 방법을 보여줍니다.
`build.gradle` 파일 설정
plugins {
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
기본 애플리케이션 클래스 작성
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @SpringBootApplication: 스프링부트 애플리케이션의 진입점
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// SpringApplication.run(): 애플리케이션을 시작하는 메서드
SpringApplication.run(DemoApplication.class, args);
}
}
간단한 REST 컨트롤러 작성
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
// @RestController: RESTful 웹 서비스의 컨트롤러를 정의
@RestController
public class HelloController {
// @GetMapping: HTTP GET 요청을 처리하는 매핑
@GetMapping("/hello")
public String hello() {
// 간단한 문자열을 반환하는 메서드
return "Hello, Spring Boot!";
}
}
애플리케이션 실행
./gradlew bootRun
브라우저에서 http://localhost:8080/hello로 접속하면 "Hello, Spring Boot!" 메시지를 확인할 수 있습니다.
예시 설명
- 프로젝트 설정:
- Maven과 Gradle을 사용하여 스프링부트 프로젝트를 생성하고 설정합니다. 두 빌드 도구 모두 스프링부트의 자동 구성을 활용하여 쉽게 프로젝트를 시작할 수 있습니다.
- 애플리케이션 클래스:
- @SpringBootApplication 애노테이션은 여러 애노테이션(@Configuration, @EnableAutoConfiguration, @ComponentScan)을 결합하여 스프링부트 애플리케이션을 구성합니다.
- SpringApplication.run() 메서드는 애플리케이션을 시작하고 내장 서버를 실행합니다.
- REST 컨트롤러:
- @RestController 애노테이션은 RESTful 웹 서비스의 컨트롤러임을 나타냅니다.
- @GetMapping("/hello") 애노테이션은 HTTP GET 요청을 /hello 엔드포인트와 매핑합니다.
- hello() 메서드는 간단한 문자열을 반환합니다.
이 예제는 스프링부트를 사용하여 간단한 웹 애플리케이션을 설정하고 실행하는 방법을 보여줍니다. 이를 통해 스프링부트의 자동 구성과 간단한 설정으로 빠르게 애플리케이션을 개발할 수 있는 장점을 경험할 수 있습니다.
'IT 강좌(IT Lectures) > SpringBoot' 카테고리의 다른 글
6강. 컨트롤러(Controller)와 라우팅(Routing) (0) | 2024.07.09 |
---|---|
5강. 의존성 주입 (DI)와 빈 관리 (0) | 2024.06.27 |
4강. 애플리케이션 구성 및 실행 (0) | 2024.06.26 |
3강. 스프링부트 프로젝트 생성 (0) | 2024.06.24 |
1강. 스프링부트 소개 (0) | 2024.06.21 |