본문으로 바로가기
제품데스크톱 도구TASTECAD도면 확인TASTEFILES파일 관리TASTEFTP파일 전송TASTESSH원격 작업공간TASTEZIP압축과 해제개발 도구TASTECODERust 통합 개발 환경TASTESTUDIO통합 개발·테스트 환경TASTEETL데이터 통합(ETL)서버TASTEREMOTE원격 데스크톱 서버TASTEGEO공간정보 서버TASTEMAIL메일 작업공간시작하기다운로드문서구매모든 제품
마켓플레이스
소식
개발소식오늘의 개발 소식개발 문서프로그래밍 언어RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron알고리즘알고리즘 기초알고리즘 핵심알고리즘 심화실무 알고리즘
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스커뮤니티 안내
협업기술 전수홈페이지 구축데스크톱 앱 구축릴리스·결제 파이프라인판매 파트너문의
서비스원격 데스크톱설치 패키지 커스텀
TASTEDEV
제품

데스크톱 도구

TASTECAD복잡한 도면을 가볍게 열다TASTEFILES필요한 파일만, 가장 빠르게TASTEFTP파일이 오가는 가장 단정한 길TASTESSH서버와 나 사이, 더 단단한 연결TASTEZIP더 빠르게 묶고, 더 안전하게 풀다

개발 도구

TASTECODERust 앱을 편집 · 빌드 · 디버깅 · 테스트까지 한 창에서TASTESTUDIO편집부터 원격 테스트와 승인 기반 AI 수정까지TASTEETL값을 보며 데이터를 옮깁니다

서버

TASTEREMOTE우리 회사 서버로 운영하는 원격 데스크톱TASTEGEOGeoServer 호환 공간정보 서버를 Rust로 다시 세웁니다TASTEMAIL메일의 주도권을 다시 내 손에

시작하기

다운로드모든 제품 최신 판문서제품 사용법구매구독 · 영구 라이선스모든 제품모든 제품 한눈에
모든 제품
마켓플레이스소식
개발

소식

오늘의 개발 소식언어 · 프레임워크 · GitHub · AI 공식 발표개발 문서언어 · 프레임워크 · 알고리즘 안내서

프로그래밍 언어

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

프레임워크

프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular
서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express
앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron

알고리즘

알고리즘 기초복잡도 분석 · 정렬 · 탐색 · 기본 자료구조 · 트리와 힙알고리즘 핵심그래프 탐색 · 최단 경로와 최소 신장 트리 · 동적 계획법 · 탐욕 알고리즘 · 분할 정복 · 백트래킹알고리즘 심화문자열 알고리즘 · 수학과 정수론 · 비트 연산 · 구간 트리 · 유니온 파인드실무 알고리즘코딩 면접 풀이 전략 · LRU 캐시 · 레이트 리미터 · 일관된 해시
개발 문서 전체 보기
커뮤니티
프로젝트빌더와 작업 발견개발 로그결정과 시행착오프롬프트재사용 가능한 지시AI 도구 이슈Claude · Codex · Gemini 문제와 우회법쇼케이스완성된 결과커뮤니티 안내공개하고 함께 만드는 방식
협업
기술 전수Rust·egui 네이티브 앱 만들기홈페이지 구축10개 언어, 계정, 문서·다운로드데스크톱 앱 구축Rust·egui, WebView 없이릴리스·결제 파이프라인서명 · MSI·deb·rpm·AppImage · 해시판매 파트너소개하고 결제액의 30% 받기문의구축 · 제휴 · 투자 문의
서비스
원격 데스크톱브라우저로 내 컴퓨터에 접속설치 패키지 커스텀필요한 기능만, 설정은 미리
구매
KO
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
로그인
로그인
TASTEDEV

작은 도구부터, 더 좋은 개발까지.

support@tastedev.netTASTEDEV 후원하기
제품제품군구매문서다운로드마켓플레이스고객 지원
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스
정책개인정보처리방침이용약관구독 약관환불 정책커뮤니티 운영 정책
계정로그인가입하기
방문자
오늘
012345678901234567890123456789012345678901234567890123456789
어제
012345678901234567890123456789012345678901234567890123456789
누적 조회
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
상호
지엑스소프트
대표자
최영구
사업자등록번호
853-44-00368
주소
인천광역시 미추홀구 경인로 351 9층 V24
전화
+82-10-4404-1523
이메일
whitecalvin@tastedev.net
개인정보 보호책임자
최영구

© 2026 TASTEDEV제품 정보는 현재 검증된 개발 소스를 기준으로 합니다.출시·고도화 중

Spring Boot 문서
Spring Boot
Spring Boot 시작하기프로젝트 구조와 설정핵심 개념데이터와 상태테스트배포
토론

Spring Boot 안내서 · 1/6

Spring Boot 시작하기

이 장에서는 Spring Boot 프로젝트를 만들고, 개발 서버를 띄워 첫 HTTP 요청에 응답하기까지의 과정을 다룹니다. 편집기 설정과 코드를 고치면 자동으로 다시 시작하게 해 주는 DevTools도 함께 살펴봅니다.

준비물

Spring Boot 애플리케이션은 JVM에서 돌아가므로 JDK가 필요합니다. 현재 세대의 Spring Boot는 Java 17 이상을 요구하며, 가능하면 최신 LTS 버전을 쓰는 것이 좋습니다. Gradle이나 Maven은 따로 설치하지 않아도 됩니다. 프로젝트에 함께 들어 있는 래퍼 스크립트(gradlew, mvnw)가 맞는 버전을 내려받아 실행합니다.

# JDK가 설치되어 있는지 확인합니다
java -version

Spring Initializr로 프로젝트 만들기

새 프로젝트는 보통 Spring Initializr에서 만듭니다. 웹 화면에서 빌드 도구(Gradle 또는 Maven), 언어(Java, Kotlin, Groovy), Spring Boot 버전, 그룹·아티팩트 이름, Java 버전, 의존성을 고른 뒤 Generate를 누르면 압축 파일을 내려받을 수 있습니다. 같은 일을 명령줄에서 curl로 할 수도 있습니다.

curl https://start.spring.io/starter.zip \
  -d type=gradle-project \
  -d dependencies=web,devtools \
  -d baseDir=demo \
  -o demo.zip
unzip demo.zip && cd demo

dependencies=web은 Spring MVC와 내장 Tomcat을 포함한 웹 스타터를 뜻합니다. Maven 프로젝트가 필요하면 type=maven-project, Kotlin으로 쓰려면 language=kotlin을 더합니다. 쓸 수 있는 매개변수 목록은 curl https://start.spring.io로 확인할 수 있습니다. IntelliJ IDEA, VS Code, Eclipse 같은 편집기도 내부에서 같은 Initializr를 불러 프로젝트를 만듭니다.

첫 컨트롤러 작성하기

Initializr가 만든 DemoApplication.java는 애플리케이션의 진입점입니다. 같은 패키지에 컨트롤러 클래스를 하나 추가합니다.

package com.example.demo;

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

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(@RequestParam(defaultValue = "World") String name) {
        return "Hello, " + name + "!";
    }
}

@RestController는 이 클래스가 HTTP 요청을 처리하고, 메서드가 돌려준 값을 그대로 응답 본문으로 쓴다는 뜻입니다. @GetMapping("/hello")는 GET /hello 요청을 이 메서드에 연결합니다.

개발 서버 실행

빌드 도구에 맞는 명령으로 애플리케이션을 실행합니다. 내장 웹 서버가 기본 포트 8080에서 요청을 기다립니다.

# Gradle 프로젝트 (Windows에서는 gradlew.bat bootRun)
./gradlew bootRun

# Maven 프로젝트 (Windows에서는 mvnw.cmd spring-boot:run)
./mvnw spring-boot:run

# 다른 터미널에서 확인합니다
curl "http://localhost:8080/hello?name=Spring"

Hello, Spring!이 출력되면 성공입니다. 포트를 바꾸려면 src/main/resources/application.properties에 server.port=9090을 적습니다.

DevTools로 자동 재시작

spring-boot-devtools를 추가하면 클래스 경로의 파일이 바뀔 때 애플리케이션이 자동으로 다시 시작되고, 개발에 편한 기본 설정이 적용됩니다. 위 curl 명령에서 devtools를 넣었다면 이미 들어 있습니다. 직접 추가할 때는 다음과 같이 적습니다.

// build.gradle.kts
dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
}
<!-- pom.xml -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>

DevTools는 java -jar로 실행하는 운영 환경에서는 자동으로 꺼집니다. IntelliJ IDEA에서는 파일을 저장한 뒤 프로젝트를 빌드해야 재시작이 일어나므로, 자동 빌드 설정을 켜 두면 편합니다.

편집기 설정

  • IntelliJ IDEA: Gradle·Maven 프로젝트를 바로 열 수 있고, Ultimate 판은 Spring 전용 지원(빈 탐색, 설정 자동 완성)을 제공합니다.
  • VS Code: Extension Pack for Java와 Spring Boot Extension Pack을 설치합니다.
  • Eclipse: Spring Tools를 설치하면 Spring Boot 프로젝트 마법사와 대시보드를 쓸 수 있습니다.

어느 편집기든 application.properties의 키 자동 완성과 설명을 보여 주므로 설정 항목을 외울 필요가 없습니다.

정리

  • JDK만 있으면 되고, 빌드 도구는 프로젝트의 래퍼 스크립트가 맡습니다.
  • 프로젝트는 Spring Initializr(웹 또는 curl)로 만듭니다.
  • ./gradlew bootRun 또는 ./mvnw spring-boot:run으로 내장 서버를 띄웁니다.
  • DevTools를 더하면 코드를 고칠 때마다 자동으로 다시 시작됩니다.
이 장에 대해 질문이 있나요?
다음 장프로젝트 구조와 설정

댓글 0개

인기 댓글순최신순

로그인 · 로그인하면 댓글을 남길 수 있습니다.