Categories: 미분류

Spring Boot로 RESTful API 서버 구축하는 방법에 대해 알아 보겠습니다.

pring Boot는 Spring Framework를 기반으로 하는 경량화된 애플리케이션 개발 도구로, RESTful API 서버를 쉽게 구축할 수 있는 기능을 제공합니다. 이 글에서는 Spring Boot를 사용하여 RESTful API 서버를 구축하는 방법을 단계별로 알아보겠습니다.


1. RESTful API란?

RESTful API는 HTTP 프로토콜을 기반으로 클라이언트와 서버 간의 데이터 교환을 효율적으로 처리하는 아키텍처 스타일입니다. 주요 특징은 다음과 같습니다:

  • 자원(Resource): URL을 통해 접근 가능한 데이터를 자원으로 정의합니다.
  • HTTP 메서드: 자원에 대한 작업은 GET(조회), POST(생성), PUT(수정), DELETE(삭제)와 같은 HTTP 메서드를 사용합니다.
  • 무상태성(Stateless): 요청 간의 상태 정보를 서버에 저장하지 않습니다.

2. 프로젝트 초기 설정

Spring Boot 프로젝트를 생성하려면 Spring Initializr를 사용하면 편리합니다.

  1. Spring Initializr에서 프로젝트 생성
    • Project: Maven
    • Language: Java
    • Dependencies: Spring Web, Spring Boot DevTools
  2. 프로젝트 생성 후, IDE로 열어 준비를 완료합니다.

3. RESTful API 엔드포인트 구현하기

다음은 간단한 사용자(User) 관리 API를 구현하는 예제입니다.

  1. User 클래스 생성
package com.example.demo.model;

public class User {
    private Long id;
    private String name;
    private String email;

    // 생성자, Getter, Setter
    public User(Long id, String name, String email) {
        this.id = id;
        this.name = name;
        this.email = email;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
  1. UserController 생성
package com.example.demo.controller;

import com.example.demo.model.User;
import org.springframework.web.bind.annotation.*;
import java.util.*;

@RestController
@RequestMapping("/api/users")
public class UserController {

    private List<User> users = new ArrayList<>(Arrays.asList(
        new User(1L, "John Doe", "john@example.com"),
        new User(2L, "Jane Doe", "jane@example.com")
    ));

    // 모든 사용자 조회
    @GetMapping
    public List<User> getAllUsers() {
        return users;
    }

    // 특정 사용자 조회
    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return users.stream()
                .filter(user -> user.getId().equals(id))
                .findFirst()
                .orElse(null);
    }

    // 사용자 추가
    @PostMapping
    public User addUser(@RequestBody User user) {
        users.add(user);
        return user;
    }

    // 사용자 수정
    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User updatedUser) {
        User user = users.stream()
                .filter(u -> u.getId().equals(id))
                .findFirst()
                .orElse(null);

        if (user != null) {
            user.setName(updatedUser.getName());
            user.setEmail(updatedUser.getEmail());
        }

        return user;
    }

    // 사용자 삭제
    @DeleteMapping("/{id}")
    public String deleteUser(@PathVariable Long id) {
        users.removeIf(user -> user.getId().equals(id));
        return "사용자가 삭제되었습니다.";
    }
}

4. 애플리케이션 실행 및 테스트

  1. 애플리케이션 실행
    • DemoApplication 클래스에서 main 메서드를 실행하여 서버를 시작합니다.
  2. API 테스트
    • Postman 또는 CURL을 사용하여 HTTP 요청을 테스트합니다.
    • GET 요청
      GET http://localhost:8080/api/users
    • POST 요청
      POST http://localhost:8080/api/users
      Content-Type: application/json
      
      {
          "id": 3,
          "name": "Alice",
          "email": "alice@example.com"
      }

5. Spring Boot의 장점

  1. 생산성 향상
    • 기본 설정을 제공하여 빠르게 프로젝트를 시작할 수 있습니다.
  2. RESTful API 개발에 최적화
    • 간단한 애너테이션으로 API를 구현할 수 있습니다.
  3. 확장성
    • Spring Boot는 마이크로서비스와 같은 복잡한 애플리케이션 개발에도 적합합니다.
  4. 활발한 커뮤니티
    • 다양한 문서와 튜토리얼이 제공되어 개발 중 발생하는 문제를 쉽게 해결할 수 있습니다.

결론

Spring Boot로 RESTful API 서버 구축하는 방법에 대해 알아 보았습니다. Spring Boot는 RESTful API 서버를 쉽고 빠르게 구축할 수 있는 강력한 도구입니다.

위 예제를 따라하며 기본적인 API 엔드포인트를 구현이 가능합니다. 실무에서 활용할 수 있는 애플리케이션을 설계해 보시기 바랍니다. 다음 블로그에서는 Java에서의 디자인 패턴 중 싱글턴(Singleton) 패턴 구현하는 방법에 대해 알아 보겠습니다. 감사합니다.

 

루루파파

Recent Posts

하코네 온천 료칸 고민 끝! 가성비·프리미엄 만족 BEST5 이용 후기 및 최저가 예약하기

일상에서 벗어나 진정한 휴식을 꿈꾼다면, 일본 하코네 온천 료칸만큼 매력적인 여행지도 드물 것입니다. 하지만 검색만…

2일 ago

도쿄 디즈니랜드 근처 가성비 호텔 TOP5 비교_실제 후기 분석 및 최저가 예

디즈니랜드 여행을 앞두고 가장 중요한 고민 중 하나는 바로 “숙소 선택”입니다. 꿈같은 하루를 선물하고 싶은…

4일 ago

초보자도 30분 안에 이해하는 도쿄 지하철 완벽 가이드 및 스이카 카드 구매방법

스이카 카드 발급 해야하는 이유 "도쿄 지하철 정복은 스이카 카드 없으면 절대 불가능합니다!" "이 카드…

1주 ago

오사카 원더 크루즈 vs 도톤보리 리버 크루즈 비교 및 오사카 교통패스 예약 방법

리버 크루즈를 타야만 하는 이유 "오사카 여행에서 낮에는 활기찬 거리, 밤에는 화려한 네온사인으로 물든 도시를…

2주 ago

일본 여행 오사카 필수 교통패스 6가지 및 할인혜택

오사카 여행에 필수적인 교통패스인 오사카 교통패스에 대해 소개 하겠습니다. 일본 오사카 여행을 준비 중이시라면, 효율적인…

2주 ago

후쿠오카 3박 4일 여행 가이드: 알찬 일정과 쇼핑 할인 쿠폰 받기

후쿠오카는 일본 여행지 중에서도 근교 여행지와 맛집, 쇼핑, 자연 풍경, 도시를 한 번에 즐길 수…

2주 ago