1. Spring Boot란 무엇일까?
Spring Boot는 스프링 프레임워크(Spring Framework) 기반의 개발 도구야. 스프링 프레임워크는 자바로 웹 애플리케이션이나 다양한 애플리케이션을 쉽게 만들 수 있게 도와주는 프레임워크인데, 스프링 자체는 설정할 것이 많아서 복잡할 수 있어. Spring Boot는 이런 복잡한 설정들을 자동으로 처리해주고, 쉽게 애플리케이션을 만들 수 있게 도와줘.
간단히 말하면: Spring Boot는 “자바로 웹 애플리케이션을 빠르고 쉽게 만들게 해주는 도구”라고 생각하면 돼.
Spring Boot의 주요 특징
• 자동 설정(Auto-Configuration): Spring Boot는 대부분의 설정을 자동으로 해줘. 개발자는 필요한 최소한의 설정만 해도 돼.
• 내장 웹 서버(Embedded Web Server): 애플리케이션 실행할 때, 자동으로 Tomcat 같은 서버가 내장되어 있어서 웹 서버 설치 없이 애플리케이션을 바로 실행할 수 있어.
• 의존성 관리(Dependency Management): 필요한 라이브러리들을 쉽게 추가할 수 있도록 starter 의존성을 제공해. 예를 들어, 웹 애플리케이션을 만들 때 필요한 모든 기본 라이브러리를 한 번에 추가할 수 있어.
2. Spring Boot 프로젝트 만들기
Step 1: Spring Initializr 사용하기
Spring Initializr는 Spring Boot 프로젝트를 아주 쉽게 시작할 수 있게 해주는 웹 도구야. 이 도구를 통해 필요한 기본 설정을 하고 프로젝트를 다운로드할 수 있어. 여기서부터 정말 차근차근 설명할게!
1. Spring Initializr에 접속해.
2. 필요한 프로젝트 설정을 입력해:
• Project: Maven (보통 가장 많이 사용돼)
• Language: Java
• Spring Boot Version: 최신 버전을 선택해.
• Group: 프로젝트가 속한 그룹을 의미하는데, 보통 도메인명을 반대로 쓰거나 회사 이름을 사용해. 예를 들어 com.example.
• Artifact: 프로젝트 이름이야. springboot-demo 같은 이름으로 할 수 있어.
• Packaging: JAR을 선택해. 이는 나중에 애플리케이션을 하나의 파일로 만들 때 필요해.
• Java Version: 17 선택.
Step 2: 필요한 Dependencies(의존성) 추가하기
프로젝트에 필요한 라이브러리를 쉽게 추가할 수 있어. “Add Dependencies” 버튼을 눌러 필요한 것들을 추가하면 돼.
• Spring Web: 웹 애플리케이션을 만들기 위해 필수로 추가해야 해.
• Spring Boot DevTools: 개발할 때 편리하게 사용할 수 있는 도구들이 들어있어. 애플리케이션이 자동으로 리스타트되거나 빠르게 개발할 수 있도록 도와줘.
Step 3: 프로젝트 다운로드
모든 설정을 마쳤으면 “Generate” 버튼을 눌러서 프로젝트 파일을 다운로드해. 압축 파일이 다운로드될 텐데, 이걸 원하는 폴더에 압축을 풀어줘.
3. IDE에 프로젝트 열기
이제 Spring Boot 프로젝트를 실행할 IDE(통합 개발 환경)를 사용해야 해. 자바 프로젝트를 개발할 때 가장 많이 쓰이는 IDE는 IntelliJ IDEA나 **STS4 (Spring Tool Suite 4)**야. STS4 기준으로 설명할게.
Step 1: STS4로 프로젝트 열기
1. STS4를 실행하고, “File” > “Open Projects from File System…“을 선택해.
2. 아까 다운로드한 프로젝트의 폴더를 찾아서 열어.
이제 STS4가 프로젝트를 불러올 거야. STS4는 Maven 프로젝트를 자동으로 읽고 필요한 라이브러리들을 다운로드할 거야.
4. 프로젝트 구조 이해하기
이제 프로젝트 구조를 설명할게. 프로젝트를 처음 열면 아래와 같은 폴더 구조를 볼 수 있어:
src/
├── main/
│ ├── java/
│ │ └── com/example/springbootdemo/
│ │ └── SpringbootDemoApplication.java
│ └── resources/
│ └── application.properties
└── test/
└── java/
폴더 및 파일 설명
• src/main/java: 자바 소스 파일들이 위치하는 곳이야. 여기서 비즈니스 로직, 컨트롤러, 서비스 등을 작성하게 돼.
• src/main/resources: 리소스 파일들이 위치하는 곳이야. 여기에는 설정 파일(application.properties)이나 HTML 파일, 정적 리소스(CSS, JS 파일 등)를 넣을 수 있어.
• SpringbootDemoApplication.java: Spring Boot 애플리케이션의 시작점이야. 자바 애플리케이션이 시작할 때 가장 먼저 실행되는 파일이야.
이제 Spring Boot 애플리케이션을 실행해볼 준비가 됐어!
5. 애플리케이션 실행하기
Step 1: SpringbootDemoApplication.java 파일 실행
이제 SpringbootDemoApplication.java 파일을 실행해야 해. 이 파일은 애플리케이션의 진입점이자 메인 클래스야. 여기엔 @SpringBootApplication이라는 어노테이션이 붙어있는데, 이 어노테이션이 스프링 부트 애플리케이션이라는 걸 나타내.
1. SpringbootDemoApplication.java 파일을 열고, 클래스 이름 옆에 있는 Run 버튼을 클릭해.
2. 애플리케이션이 실행되면 콘솔에 Tomcat initialized with port(s): 8080 같은 메시지가 뜰 거야. 이 메시지는 스프링 부트가 내장된 Tomcat 서버를 8080번 포트에서 실행시켰다는 뜻이야.
Step 2: 브라우저로 확인
이제 브라우저를 열고 http://localhost:8080에 접속해. 아무것도 설정하지 않았다면 기본 페이지가 보일 거야.
6. Controller 만들기
이제 간단한 웹 페이지나 API를 만들어볼게. Spring Boot에서 웹 요청을 처리하는 가장 중요한 클래스는 Controller야. 이 컨트롤러는 사용자가 보낸 HTTP 요청을 받아서 처리하고, 그 결과를 반환해주는 역할을 해.
Step 1: HelloController 만들기
HelloController.java 파일을 만들어서 간단한 API를 작성해보자.
1. src/main/java/com/example/springbootdemo 디렉토리에서 새로운 자바 클래스를 만들자.
클래스 이름은 HelloController로 짓자.
2. 다음 코드를 작성해:
package com.example.springbootdemo;
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 Boot!";
}
}
• @RestController: 이 어노테이션은 해당 클래스가 REST API 요청을 처리하는 컨트롤러임을 나타내.
• @GetMapping(”/hello”): /hello 경로로 들어오는 HTTP GET 요청을 처리해.
Step 2: 애플리케이션 실행 및 확인
1. 애플리케이션을 다시 실행해 (SpringbootDemoApplication.java 파일에서 Run).
2. 브라우저에서 http://localhost:8080/hello에 접속해.
그러면 “Hello, Spring Boot!“라는 메시지를 볼 수 있을 거야.
7. Spring Boot 설정 파일 이해하기
스프링 부트에서는 application.properties나 application.yml 파일을 통해 애플리케이션의 다양한 설정을 관리할 수 있어.
예시 1: 포트 변경
기본적으로 스프링 부트는 8080 포트에서 실행되지만, 이 포트를 쉽게 변경할 수 있어.
server.port=9090
이렇게 application.properties에 설정하면, 애플리케이션이 9090번 포트에서 실행돼.
예시 2: 데이터베이스 설정
만약 데이터베이스와 연결하려면 아래와 같이 설정할 수 있어 (MySQL을 예로 들면):
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=1234
이 설정은 MySQL 데이터베이스에 연결하는 예야. 데이터베이스 정보를 설정 파일에 넣어서, 애플리케이션이 실행될 때 자동으로 데이터베이스에 연결되도록 할 수 있어.
8. 정리
1. Spring Boot는 스프링 프레임워크의 자동 설정 기능을 통해 복잡한 설정을 생략하고, 빠르게 애플리케이션을 만들 수 있게 해줘.
2. Spring Boot는 내장된 서버(Tomcat)를 이용해 애플리케이션을 바로 실행할 수 있어서, 별도의 서버를 설치하거나 설정할 필요가 없어. 개발할 때도 편리하고, 배포할 때도 쉽게 하나의 JAR 파일로 배포할 수 있어.
3. Spring Initializr를 이용하면, 필요한 설정을 빠르게 적용해서 Spring Boot 프로젝트를 쉽게 시작할 수 있어. 필요한 의존성도 간단하게 추가할 수 있지.
4. 애플리케이션 실행: 기본적으로 SpringbootDemoApplication.java 파일이 애플리케이션의 시작점이 돼서, 바로 실행할 수 있어. 브라우저를 통해 localhost:8080에서 애플리케이션을 확인할 수 있어.
5. 설정 파일 관리: application.properties나 application.yml 파일을 통해 포트 설정, 데이터베이스 연결 등 애플리케이션의 다양한 설정을 관리할 수 있어.
추가로 알면 좋은 것들:
• REST API 만들기: 간단한 컨트롤러를 이용해 /hello 같은 경로를 통해 데이터를 반환하는 API를 만들 수 있어. @GetMapping은 GET 요청을 처리하고, @PostMapping은 POST 요청을 처리하는 방식으로 API를 개발할 수 있어.
• 데이터베이스와 JPA 연동: Spring Boot에서 JPA와 함께 사용하면, 데이터베이스에 연결하고 데이터를 쉽게 관리할 수 있어. 예를 들어, 엔터티(Entity) 클래스를 작성해서 데이터베이스 테이블과 매핑할 수 있어.
'Spring Boot' 카테고리의 다른 글
@Import (0) | 2024.10.21 |
---|---|
Spring Boot의 Auto-Configuration (2) | 2024.10.21 |
@SpringBootApplication (0) | 2024.10.21 |
Spring Native (0) | 2024.10.21 |
SpringApplication.run() (0) | 2024.10.21 |