HOWTO · Java

Java에서 멱등원

이 튜토리얼은 Java에서 Idempotent를 사용하는 방법을 보여줍니다.

멱등자는 연산을 여러 번 적용할 수 있지만 결과는 항상 동일함을 의미합니다. 예를 들어, 멱등성 메서드를 얼마나 자주 호출하는지는 중요하지 않습니다. 결과는 항상 동일할 것입니다.

이 튜토리얼은 Java에서 멱등원을 사용하는 방법을 보여줍니다.

Java에서 멱등원

위에서 언급했듯이 Idempotent 메서드는 매번 동일한 결과를 반환합니다. 예: x=1; 매번 1을 반환하기 때문에 멱등원이지만 x++; 호출할 때마다 결과가 변경되기 때문에 멱등할 수 없습니다.

예를 들어, 한 개체를 한 번 닫으면 개체가 닫힌 후 멱등성이 있는지 알 수 있는 정보가 충분하지 않습니다.

이를 확인하려면 객체를 두 번째로 닫아야 하며 예외가 발생하면 객체가 멱등성이 아니라는 의미이고 닫을 때 동일한 결과를 반환하면 객체가 멱등성이 있음을 의미합니다.

Java에서 멱등성 closeable을 구현해 보겠습니다.

package delftstack;

import java.io.Closeable;

public class Idempotent implements Closeable {
  private static boolean closed;

  public Idempotent() {
    closed = false;
  }
  public void close() {
    if (!Is_Closed()) {
      closed = true;
    }
  }

  public static boolean Is_Closed() {
    return closed;
  }
  public static void main(String args[]) {
    System.out.println(Is_Closed());
    System.out.println(Is_Closed());
  }
}

Closeablejava.io의 클래스입니다. Boolean을 초기화하고 Idempotent 메소드에서 ‘false’로 설정하여 idempotent closeable을 구현했습니다. 항상 ‘거짓’을 반환합니다.

출력:

false
false

Java의 멱등 메서드

멱등원 메서드 용어는 HTTP 메서드에 해당합니다. HTTP 메서드는 요청을 여러 번 호출하더라도 메서드에 대한 결과가 항상 같을 때 멱등원입니다.

예제를 통해 Idempotent HTTP 메소드를 이해하려고 노력합시다.

GET 요청: GET 요청을 몇 번을 해도 요청이 제대로 구현되면 항상 동일한 응답을 받게 됩니다.

예를 들어, 시스템에서 결과를 보기 위해 GET 요청을 합니다. 우리가 몇 번을 요청하든 항상 동일할 것입니다.

HTTP 메서드는 두 가지 유형으로 나뉩니다. 하나는 멱등성이고 다른 하나는 비멱등성입니다. 아래 표는 어떤 HTTP 메소드가 멱등성인지 아닌지를 보여줍니다.

방법 멱등수?
GET
PUT
POST 아니요
DELETE
HEAD
OPTIONS
PATCH 아니요