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());
}
}
Closeable은 java.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 |
아니요 |