[TIL] Spring Boot 입문 강의 정리
오늘은 Spring Boot를 시작하기 앞서 프로젝트 구조와 웹 애플리케이션의 기본 동작 원리에 대해 공부했다.
1. Gradle이란?
Gradle은 프로젝트를 빌드하고 의존성을 관리하는 도구이다.(Groovy나 Kotlin으로 작성)
Spring Boot 프로젝트를 생성하면 build.gradle 파일이 생성되는데, 여기서 프로젝트에 필요한 라이브러리를 관리한다.
plugins {
id: 'java'
id: 'org.springframework.boot' version: '3.0.1'
}
dependencies {
implementation: 'org.springframework.boot:spring-boot-starter-web'
}
주요 구성
plugins
프로젝트에서 사용할 플러그인을 정의한다.
버전이 안맞으면 호환 문제가 있기 때문에 임의로 설정해주기도 한다.
plugins {
id: 'org.springframework.boot' version: '3.0.1'
}
dependencies
프로젝트에서 사용할 라이브러리를 추가하는 영역이다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
Maven Repository에 등록된 라이브러리를 쉽게 가져와 사용할 수 있다.
2. 데이터 통신 구조
웹 서비스는 기본적으로 클라이언트와 서버가 데이터를 주고받으며 동작한다.
Client → Request → Server
Client ← Response ← Server
예를 들어 사용자가 웹 페이지에 접속하면 브라우저는 서버에 요청(Request)을 보내고, 서버는 처리 결과를 응답(Response)으로 반환한다.
서버는 사용자 요청을 처리하고 데이터를 저장하거나 조회하는 역할을 수행한다.
3. API란?
API(Application Programming Interface)는 서로 다른 프로그램이 데이터를 주고받기 위한 규칙이다.
예를 들어 프론트엔드가 서버에 사용자 정보를 요청하면 다음과 같은 방식으로 통신한다.
Frontend → API 요청 → Backend
Frontend ← API 응답 ← Backend
API를 통해 프론트엔드와 백엔드가 분리되어 개발될 수 있다.
4. RESTful API
RESTful API는 API를 설계하는 대표적인 방식이다.
HTTP 메서드를 이용하여 자원을 관리한다.
메서드역할
| GET | 데이터 조회 |
| POST | 데이터 생성 |
| PUT | 데이터 수정 |
| DELETE | 데이터 삭제 |
예시
GET /users/1
→ 1번 사용자의 정보 조회
POST /users
→ 사용자 생성
RESTful API는 URL과 HTTP Method를 통해 요청의 목적을 명확하게 표현할 수 있다는 장점이 있다.
5. Apache Tomcat과 WAS
WAS(Web Application Server)
WAS는 사용자의 요청을 받아 비즈니스 로직을 수행하고 결과를 반환하는 서버이다.
대표적으로 Apache Tomcat이 있다.
Client
↓
Apache Tomcat
↓
Spring Boot Application
Tomcat은 HTTP 요청을 받아 Spring 애플리케이션에 전달하고, 처리 결과를 다시 사용자에게 반환한다.
6. Spring과 Spring Boot의 차이
Spring
기존 Spring Framework는 프로젝트를 시작할 때 직접 설정해야 할 항목이 많다.
- XML 설정
- 라이브러리 버전 관리
- 서버 설정
설정 과정이 복잡한 편이다.
Spring Boot
Spring Boot는 Spring을 더 쉽고 빠르게 사용할 수 있도록 만든 프레임워크이다.
특징
- 설정 최소화
- 의존성 자동 관리
- 내장 Tomcat 제공
- 빠른 프로젝트 생성
덕분에 개발자는 비즈니스 로직 구현에 집중할 수 있다.
7. HTTP란?
HTTP(HyperText Transfer Protocol)는 클라이언트와 서버가 데이터를 주고받기 위한 통신 규약이다.
요청(Request)과 응답(Response)으로 구성된다.
HTTP Request
GET /users HTTP/1.1
클라이언트가 서버에 보내는 요청
Header
추가적인 정보를 전달한다.
예)
Content-Type: application/json
Authorization: Bearer Token
Body(Payload)
실제 전송할 데이터가 담긴다.
{
"name": "Eunbin"
}
일반적으로 GET 요청은 Body를 사용하지 않는다.
HTTP Response
HTTP/1.1 200 OK
서버가 요청 처리 결과를 반환한다.
상태 코드
코드의미
| 200 | 성공 |
| 201 | 생성 성공 |
| 400 | 잘못된 요청 |
| 404 | 찾을 수 없음 |
| 500 | 서버 오류 |
오늘 배운 내용 정리
- Gradle은 프로젝트 빌드와 라이브러리 관리를 담당한다.
- dependencies를 통해 필요한 라이브러리를 추가할 수 있다.
- 웹 서비스는 Request와 Response 방식으로 동작한다.
- API는 프로그램 간 데이터 통신 규칙이다.
- RESTful API는 HTTP Method를 활용해 자원을 관리한다.
- Tomcat은 대표적인 WAS이며 Spring Boot에서 기본 제공된다.
- Spring Boot는 Spring의 복잡한 설정을 자동화해 개발 효율을 높여준다.
- HTTP는 클라이언트와 서버 간 통신 규약이며 Header와 Body를 포함한다.