[스프링 부트 기초 강의] 5강. 4.2 JPA로 RESTful API 서버 만들기
- 모바일 앱, SPA 등 최신 클라이언트 기술이 자체 UI를 처리하므로, 서버는 데이터(XML/JSON)만 제공하는 API 서버 역할로 변화했습니다. 📱
- 전통 웹 서버는 UI(HTML)까지 생성하여 브라우저에 전달하지만, RESTful API 서버는 순수 데이터만 클라이언트에 제공합니다. 🔄
- RESTful API 설계의 핵심 원칙은 '무엇(리소스)'에 대해 '어떤 작업(동작)'을 할 것인지 URL과 HTTP 메서드를 통해 명확하고 일관되게 표현하는 것입니다. 🎯
- URL 설계 가이드라인은 리소스를 URL로 표현하고 (예:
/members), 동작은 HTTP 메서드(GET, POST, PUT, DELETE)로 구분하며, 컬렉션은 복수형으로, 계층적 구조를 가질 수 있습니다. 🔗
- Spring Boot API 서버는 클라이언트 요청을 처리하는 '컨트롤러' 레이어와 데이터베이스 연동을 담당하는 '리파지토리' 레이어로 구성됩니다. 🏗️
- 필수 Spring Boot 의존성으로는
spring-web (웹 기능 및 임베디드 톰캣), spring-data-jpa (JPA), h2-database (인메모리 DB), lombok (코드 간소화)가 있습니다. 📦
- JPA 엔티티 모델은
@Entity, @Id, @GeneratedValue 등의 어노테이션을 사용하여 데이터베이스 테이블과 매핑되는 객체로 정의됩니다. 🧑💻
JpaRepository 인터페이스를 상속하여 기본적인 CRUD(Create, Read, Update, Delete) 기능을 손쉽게 구현할 수 있습니다. 📚
- RESTful 컨트롤러는
@RestController, @GetMapping, @PostMapping, @PathVariable, @RequestBody 등의 어노테이션을 활용하여 클라이언트 요청을 처리하고 JSON 응답을 반환합니다. 🌐
ApplicationRunner를 구현한 클래스를 통해 애플리케이션 시작 시 필요한 초기 데이터를 데이터베이스에 주입할 수 있습니다. 🚀
- API 테스트는 브라우저(GET 요청)와 Postman 같은 REST 클라이언트(모든 HTTP 메서드 및 요청 바디)를 활용하여 수행합니다. 🧪
데브허브 | DEVHUB | [스프링 부트 기초 강의] 5강. 4.2 JPA로 RESTful API 서버 만들기