Spring Boot를 처음 시작하면 가장 먼저 헷갈리는 부분이 있습니다.
“뭘 설치해야 하지?”
“프로젝트는 어디서 만들지?”
“다운로드한 파일은 어떻게 실행하지?”
처음에는 코드보다 시작 준비 과정이 더 어렵게 느껴질 수 있습니다.
그래서 이번 글에서는 Spring Boot를 처음 시작하는 기준으로
다운로드부터 프로젝트 실행까지 순서대로 정리해보겠습니다.
Spring Boot는 무엇일까?
Spring Boot는 Java로 웹 애플리케이션을 만들 때 많이 사용하는 도구입니다.
쉽게 말하면,
Spring Boot는 웹 서버를 빠르게 만들 수 있게 도와주는 시작 세트에 가깝습니다.
예전에는 서버 설정, 라이브러리 설정, 실행 환경 설정을 직접 많이 해야 했지만,
Spring Boot는 기본 설정을 많이 준비해두어서 처음 프로젝트를 더 쉽게 시작할 수 있습니다.
즉, Spring Boot는 이런 일을 도와줍니다.
- 웹 프로젝트 생성
- 서버 실행
- API 만들기
- 데이터베이스 연결
- 배포용 애플리케이션 구성
이번 글에서는 아직 API나 데이터베이스까지 가지 않고,
프로젝트를 만들고 실행하는 것까지만 보겠습니다.
1. 먼저 Java가 필요합니다
Spring Boot는 Java 기반으로 동작합니다.
그래서 먼저 내 컴퓨터에 Java가 설치되어 있는지 확인해야 합니다.
터미널 또는 명령 프롬프트에서 아래 명령어를 입력합니다.
java -version
예를 들어 이런 식으로 나오면 Java가 설치된 것입니다.
openjdk version "17"
처음 설치한다면 Java 17 이상으로 시작하는 것이 무난합니다.
2. Spring Boot 프로젝트는 어디서 만들까?
Spring Boot 프로젝트는 보통 Spring Initializr에서 만듭니다.
쉽게 말하면,
Spring Initializr는 Spring Boot 프로젝트 생성기입니다.
내가 직접 처음부터 폴더와 설정 파일을 만들지 않아도,
필요한 기본 구조를 자동으로 만들어줍니다.
보통 아래 주소에서 시작합니다.
https://start.spring.io
3. Spring Initializr에서 선택할 것
Spring Initializr에 들어가면 여러 선택지가 나옵니다.
처음에는 너무 어렵게 생각하지 말고 아래처럼 선택하면 됩니다.
| 항목 | 추천 선택 |
|---|---|
| Project | Gradle 또는 Maven |
| Language | Java |
| Spring Boot | 기본 선택된 안정 버전 |
| Packaging | Jar |
| Java | 17 이상 |
처음이라면 Maven으로 시작해도 괜찮고,
최근 예제에서는 Gradle도 많이 사용합니다.
중요한 건 처음부터 빌드 도구 차이에 오래 머물지 않는 것입니다.
지금 목표는 이것입니다.
Spring Boot 프로젝트를 만들고 실행해보기
4. Dependencies에는 무엇을 넣을까?
처음에는 의존성을 많이 넣지 않는 것이 좋습니다.
가장 기본으로는 Spring Web만 추가해도 충분합니다.
Spring Web은 웹 요청을 받고 응답을 줄 수 있게 해주는 기본 기능입니다.
쉽게 말하면:
- 브라우저로 접속하기
- API 만들기
- 문자열 응답하기
이런 기능을 시작할 수 있게 해줍니다.
처음 프로젝트에서는 일단 이것만 넣겠습니다.
Spring Web
5. Generate를 눌러 다운로드하기
설정을 끝냈다면 Generate 버튼을 누릅니다.
그러면 .zip 파일이 다운로드됩니다.
이 zip 파일 안에는 Spring Boot 프로젝트 기본 구조가 들어 있습니다.
다운로드한 뒤에는 압축을 풀어줍니다.
예를 들면 이런 폴더가 생깁니다.
demo
이제 이 폴더를 VS Code나 IntelliJ에서 열면 됩니다.
6. 프로젝트 안에는 무엇이 있을까?
프로젝트를 열면 처음에는 파일이 많아 보여서 당황할 수 있습니다.
하지만 처음에는 아래만 보면 됩니다.
src/main/java
src/main/resources
build.gradle 또는 pom.xml
각각의 역할은 이렇습니다.
| 파일/폴더 | 역할 |
|---|---|
src/main/java | Java 코드를 작성하는 곳 |
src/main/resources | 설정 파일이 들어가는 곳 |
build.gradle | Gradle 프로젝트 설정 파일 |
pom.xml | Maven 프로젝트 설정 파일 |
처음에는 전부 외우지 않아도 됩니다.
딱 이것만 기억하면 됩니다.
Java 코드는
src/main/java안에 작성한다.
7. 가장 먼저 보이는 실행 파일
프로젝트를 만들면 보통 아래와 비슷한 파일이 있습니다.
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
이 파일이 Spring Boot 애플리케이션의 시작점입니다.
처음에는 어노테이션이나 내부 동작을 모두 이해하지 않아도 됩니다.
지금은 이렇게만 보면 됩니다.
main메서드가 실행됩니다SpringApplication.run()이 Spring Boot를 실행합니다- 실행되면 내장 서버가 함께 올라갑니다
즉, 이 파일은 프로그램 시작 버튼 같은 역할입니다.
8. 프로젝트 실행하기
실행 방법은 크게 두 가지입니다.
방법 1. IDE에서 실행하기
IntelliJ나 VS Code에서 DemoApplication 파일을 열고
main 메서드를 실행하면 됩니다.
처음에는 이 방법이 가장 쉽습니다.
방법 2. 터미널에서 실행하기
Gradle 프로젝트라면 아래 명령어를 사용할 수 있습니다.
./gradlew bootRun
Maven 프로젝트라면 아래 명령어를 사용할 수 있습니다.
./mvnw spring-boot:run
Windows라면 앞의 ./ 대신 이렇게 실행할 수도 있습니다.
gradlew bootRun
또는 Maven이면:
mvnw spring-boot:run
9. 실행이 잘 됐는지 확인하기
실행하면 터미널에 여러 로그가 나옵니다.
처음에는 전부 이해하지 않아도 됩니다.
중요하게 볼 부분은 이런 문장입니다.
Tomcat started on port 8080
Started DemoApplication
이런 문장이 나오면 Spring Boot가 실행된 것입니다.
Spring Boot는 기본적으로 내장 서버를 사용해서 애플리케이션을 실행할 수 있습니다. 그래서 따로 Tomcat 같은 서버를 설치하지 않아도 처음 웹 프로젝트를 실행해볼 수 있습니다.
10. 브라우저에서 확인하기
실행 후 브라우저에서 아래 주소로 접속합니다.
http://localhost:8080
처음에는 에러 페이지가 나올 수도 있습니다.
이건 실패가 아닙니다.
아직 우리가 / 주소에 대한 응답을 만들지 않았기 때문입니다.
즉, 서버는 켜졌지만
브라우저에 보여줄 페이지를 아직 만들지 않은 상태입니다.
이 단계에서는 아래만 확인하면 됩니다.
localhost:8080에 접속했을 때 Spring Boot 에러 페이지라도 나오면 서버는 실행된 것입니다.
오늘 단계에서 성공 기준
이번 글의 목표는 복잡하지 않습니다.
아래 4개만 되면 성공입니다.
- Java 버전 확인
- Spring Initializr에서 프로젝트 생성
- zip 다운로드 후 프로젝트 열기
- Spring Boot 실행
아직 컨트롤러, API, 데이터베이스는 몰라도 됩니다.
처음에는 실행까지 성공하는 것이 가장 중요합니다.
다음 단계
다음 글에서는 직접 간단한 컨트롤러를 만들어서
브라우저에 문자열을 출력해보겠습니다.
예를 들면 이런 흐름입니다.
http://localhost:8080/hello
에 접속했을 때
Hello Spring Boot
가 나오게 만들어볼 예정입니다.
정리
Spring Boot를 처음 시작할 때 순서는 이렇게 잡으면 됩니다.
- Java 설치 확인
- Spring Initializr에서 프로젝트 생성
- Spring Web 추가
- Generate로 zip 다운로드
- 프로젝트 열기
- 실행하기
localhost:8080접속 확인
처음부터 모든 개념을 이해하려고 하면 어렵습니다.
Spring Boot는 먼저 실행해보고,
그다음에 구조를 하나씩 이해하는 방식이 더 좋습니다.
이번 글에서는 다운로드부터 실행까지만 성공하면 충분합니다.