본문 바로가기
공부

멱등성 idempotent

by 츠키둥구리 2021. 12. 12.

http 메소드 공부를 하다보면, 멱등성, idempotent에 대한 키워드가 등장한다.

멱등성이란 무엇일까?

 

여러번 실행시켜도 그 결과가 동일한 것을 의미한다.

연산을 여러 번 적용해도 결과가 달라지지 않는 성질을 멱등성이라고 한다.

예를 들면 아래와 같은 함수는 멱등하다.

const sum = (a,b) => a+b

동일한 인자를 넣고 몇번을 실행시켜도 같은 값을 반환하기 때문이다.

 

 

get 메소드의 경우 멱등하다.

아래와 같이  get 메소드로 서버에 요청한다고 생각해보자.

get / user/1 

 

10번 요청한다고 해도 반환값은 항상 동일하다.

 

 

post 메소드의 경우 멱등하지 않다.

아래와 같이  post 메소드로 서버에 요청한다고 생각해보자.

POST /user 

{
"name" : "츠키",

"age" : 20

}

 

10번 요청하게 될 경우 서버에는 해당 데이터가 10번 쌓이게 될 것을 예상할 수 있다.

따라서 계속 실행할경우 서버에 user라는 데이터가 변하므로 post의경우 멱등하지 않다.

 

put의 경우 데이터를 덮어쓰므로 항상 멱등하다.

 

아직도 햇갈린다면 

get 1번 실행하는것과  10000번 실행하는 것과의 결과의 차이를 생각해보자.

결국 같을 것이다. 그렇다면 멱등하다고 볼 수 있다.

 

 

댓글