idempotent (멱등성)

Software Engineering/Study Notes
enerG enerG Jul, 2023
Table of Contents
  1. HTTP 메서드: POST, DELETE, GET - 동작과 멱등성
  2. 이 개념이 왜 중요한가?
동일한 작업 또는 함수를 여러 번 호출하더라도 결과가 변경되지 않는 것

HTTP 메서드: POST, DELETE, GET - 동작과 멱등성

HTTP 프로토콜은 웹에서 데이터를 주고받을 때 사용되며, 다양한 메서드를 제공하여 서버와 클라이언트 간의 통신을 가능하게 합니다. 이 중에서도 POST, DELETE, GET 메서드에 대해 MDN에서 예시로 제시하고 있는데, 이들 메서드는 각기 다른 동작과 멱등성 특성을 가지고 있습니다.

POST 메서드

POST 메서드는 서버에 새로운 데이터를 생성하거나 기존 데이터를 수정하는 데 사용됩니다. 예를 들어, 새로운 게시물을 생성하거나 사용자가 입력한 정보를 서버에 전송할 때 주로 사용됩니다. POST는 요청을 여러 번 보낼 시 서버의 상태가 변경될 수 있으므로 멱등성을 가지지 않습니다. 이 메서드는 주로 데이터를 전송하고 처리하는 용도로 사용됩니다.

POST /add_row HTTP/1.1
POST /add_row HTTP/1.1   -> Adds a 2nd row
POST /add_row HTTP/1.1   -> Adds a 3rd row

예시처럼 한 행을 추가하는 POST 요청은 계속 2번째, 3번째 행을 추가합니다. 이렇기 때문에 데이터가 변경되었다 = 즉 멱등성을 가지지 않는다고 합니다.

DELETE 메서드

DELETE 메서드는 서버에서 특정 리소스를 삭제할 때 사용됩니다. 예를 들어, 특정 게시물을 삭제하거나 파일을 서버에서 제거할 때 DELETE 메서드를 사용합니다. DELETE 메서드는 리소스를 삭제하면 다음에 같은 요청을 보내도 해당 리소스는 더 이상 존재하지 않으므로 멱등성을 가집니다. 즉, 동일한 요청을 여러 번 보내더라도 결과는 항상 같습니다.

DELETE /idX/delete HTTP/1.1   -> Returns 200 if idX exists
DELETE /idX/delete HTTP/1.1   -> Returns 404 as it just got deleted
DELETE /idX/delete HTTP/1.1   -> Returns 404

이처럼 상태 코드는 응답마다 달라질 수 있긴 하지만 멱등성을 가집니다.

GET 메서드

GET 메서드는 서버로부터 데이터를 조회하는 데 사용됩니다. 예를 들어, 웹 페이지를 불러오거나 특정 리소스의 정보를 요청할 때 GET 메서드를 사용합니다. 이처럼 GET 메서드는 데이터를 조회하기만 하며, 서버의 상태를 변경시키지 않는다. 따라서 GET 메서드는 멱등성을 가진다고 할 수 있습니다. 동일한 GET 요청을 여러 번 보내더라도 결과는 항상 같습니다.

이렇게 POST, DELETE, GET 메서드는 각각 다른 동작과 멱등성 특성을 가지고 있으며, 이를 이해하면 웹 애플리케이션을 개발하거나 API를 사용할 때 더 효과적으로 요청을 처리할 수 있습니다.

 

이 개념이 왜 중요한가?

  1. 네트워크 통신: 네트워크에서 데이터를 전송할 때, 동일한 데이터 패킷이 여러 번 전송될 수 있습니다. 이때 멱등성을 갖는 프로토콜 및 서비스를 사용하면 중복된 패킷이 발생하더라도 안전하게 처리할 수 있습니다.
  2. 데이터베이스 조작: 데이터베이스 조작 작업 중에도 멱등성을 유지하는 것이 중요합니다. 예를 들어, 동일한 SQL 쿼리를 여러 번 실행해도 데이터베이스 상태는 변하지 않아야 합니다.
  3. 웹 서비스 및 API: RESTful API 등의 웹 서비스에서도 멱등성은 중요한 역할을 합니다. 클라이언트가 동일한 요청을 여러 번 보내더라도 서버 상태가 변하지 않아야 합니다.

 

Reference

 

 

멱등성 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. 다른 말로는, 멱등성 메

developer.mozilla.org

  • HTTP 메서드: POST, DELETE, GET - 동작과 멱등성
  • 이 개념이 왜 중요한가?
𝒆𝒏𝒆𝒓𝗚
에너지 넘치는 엔지니어⚡ 읽고 쓰고 정리하는 것을 좋아합니다.
Software Engineering/Study Notes 카테고리의 다른 글
  • AS-IS와 TO-BE
  • 클라우드 서비스 SaaS, PaaS, IaaS
enerGneer에너지 넘치는 엔지니어⚡ 읽고 쓰고 정리하는 것을 좋아합니다.
enerG
enerGneer⚡
  • All Article 174
    • Programming 81
      • Basics 9
      • Front-end 20
      • Back-end 8
      • Git 13
      • Java 10
      • C 6
      • Python 3
      • IDE 4
      • VBA 8
    • Computer Science 22
      • Basics 4
      • Algorithm 3
      • Data Structure 2
      • Database, SQL 6
      • Operating System 3
      • Network 4
    • Software Engineering 16
      • SDLC 13
      • Study Notes 3
    • Project Record 15
      • Project 3
      • Customize Tistory 12
    • Review 27
    • Self-Growth 8
    • in JAPAN 1
    • ETC 4
hELLO · Designed By 정상우
Icon Made By Freepik · Flaticon
Redesigned By enerG
idempotent (멱등성)

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.