본문 바로가기

개발 이모저모

조회하는 API를 만들 때 GET대신 POST로 할 수 있을까?

728x90
반응형

HTTP 메소드를 사용할 때 각 메소드의 의미와 목적에 맞게 사용하는 것이 중요하다.

  • GET
    • 데이터를 조회할 때 사용한다.
    • URL에 파라미터를 포함시켜 서버에 요청하며, 데이터를 변경하지 않는 안전한 작업에 사용된다.
  • POST
    • 서버에 데이터를 생성하거나 업데이트하기 위해 사용한다.
    • 데이터가 body에 포함되어 서버로 전송되며, 서버의 상태를 변경할 수 있다.

 

RESTful API 설계 방식에 맞춰서 개발하는 것이 좋지만, GET대신 POST를 사용하는 것이 적합한 경우들도 있다.

  1. 대량의 데이터 조회:
    GET 요청은 URL의 길이에 제한이 있을 수 있으며, 이 때문에 대량의 데이터나 복잡한 쿼리를 전송하기에는 적합하지 않을 수 있다. POST 요청은 body에 데이터를 포함시켜 전송할 수 있기 때문에, 이러한 제한 없이 대량의 데이터를 서버로 전송할 수 있다.

  2. 보안:
    GET 요청은 URL에 데이터가 포함되기 때문에, 민감한 데이터가 로그나 캐시에 저장될 위험이 있다.
    POST 요청은 데이터를 요청 body에 포함시키기 때문에, 민감한 정보를 더 안전하게 전송할 수 있다.

 

그러나, 이러한 상황에서도 POST를 GET의 대안으로 사용하는 것은 일반적인 웹 개발 관행과 RESTful API 설계 원칙에 어긋날 수 있으므로 RESTful API에서는 리소스의 상태를 변경하지 않는 요청에는 GET을 사용하고, 리소스의 상태를 변경하는 작업에는 POST, PUT, PATCH, DELETE와 같은 메소드를 사용하는 것이 좋다.
만약 POST를 사용해야 하는 특별한 이유가 있다면, 그 이유를 명확히 하고, API의 사용자가 혼란을 느끼지 않도록 문서화하는 것이 중요하다!

728x90
반응형