년이십육이지이십오비(年二十六而知二十五非) RSS 태그 관리 글쓰기 방명록
2023-06-28 15:27:25

 

🎯 들어가며

안녕하세요! 이번에는 자바와 스프링 부트를 이용해  RESTful API를 구현하는 방법에 대해 알아보겠습니다.

 

📚 RESTful API란?

RESTful API는 웹에서 데이터를 교환하는 데 사용되는 인터페이스입니다. 주로 HTTP 프로토콜의 메서드를 사용해 통신하며, CRUD 작업은 각각 POST, GET, PUT/PATCH, DELETE 메서드에 대응됩니다.

 

🚀 구현 단계

1️⃣ 데이터베이스 설정

먼저, application.properties 파일에서 데이터베이스 연결 설정을 해줍니다.

 

2️⃣ 도메인 모델 생성

public class Product {

    private Long id;
    private String name;
    private Double price;

    // getters and setters
}


3️⃣ DAO 생성

public interface ProductDao {
    List<Product> getAllProducts();
    Product getProduct(Long id);
    void createProduct(Product product);
    void updateProduct(Product product);
    void deleteProduct(Long id);
}


4️⃣ 서비스 생성

@Service
public class ProductService {

    private final ProductDao dao;

    // constructor injection

    public void createProduct(Product product) {
        dao.createProduct(product);
    }

    // other methods
}


5️⃣ 컨트롤러 생성

@RestController
@RequestMapping("/api/products")
public class ProductController {

    private final ProductService service;

    // constructor injection

    @PostMapping
    public void createProduct(@RequestBody Product product) {
        service.createProduct(product);
    }

    // other endpoints
}


🌈 마무리

이렇게 스프링 부트와 자바를 활용하여 정말 간단하게 RESTful API를 구현하는 방법을 배워보았습니다.

RESTful 방식 외에도 SOAP, GraphQL, gRPC 등의 API 스타일이 있습니다.

SOAP (Simple Object Access Protocol): SOAP는 HTTP, SMTP, TCP 등 다양한 프로토콜에서 사용할 수 있는 통신 규약입니다. 보통 웹 서비스에서 많이 사용되며, 보안 및 트랜잭션 요구사항이 높은 조직이나 엔터프라이즈 환경에서 선호됩니다.

GraphQL: 페이스북에서 개발한 데이터 쿼리 및 조작 언어로, 클라이언트가 필요한 데이터의 구조를 지정할 수 있어 데이터 오버페치를 방지합니다. 복잡한 데이터를 다루는 애플리케이션에서 특히 유용합니다.

gRPC: 구글이 개발한 고성능, 오픈소스, 범용 RPC 프레임워크입니다. 효율적인 서비스 간 통신을 가능하게 하며, 마이크로서비스 아키텍처에서 많이 쓰입니다.

각 API 스타일은 특정 상황과 요구사항에 따라 다르게 적합하므로, 개발하려는 애플리케이션의 목적과 요구사항을 고려하여 적절한 방식을 선택해야 합니다.