멱등성(Idempotent)
멱등성이라는 생소한 표현을 알게되어서 까먹지 않으려고 하는 포스팅이다.
멱등(Idempotent)성이라는것은 간단하게 표현하면 한번만 적용하고 난 이후에 다음에는 적용되지 않는 속성이나 연산을 말한다. 즉, idempotent 작업을 반복해도 초기 적용 이후에는 결과가 변경되지 않다.
멱등성의 개념은 추상 대수학에 뿌리를 두고 있으며 이후 컴퓨터 프로그래밍, 네트워킹 프로토콜 및 데이터베이스 시스템을 비롯한 다양한 분야에서 접할수 있다.
반응형
<HTTP에서 멱등에 대한 예시>
사용자가 결제하는 시점에 네트워크 오류나 간혈적인 네트워크 오류, 혹은 로밍, 타임아웃으로 인해서 결과값을 받지 못하는 경우에 멱등성이 보장되어있으면 여러번 결제가 되지 않는다.
혹은 리소스를 삭제하기 위해서 여러번 전송 될 수 있는 요청을 처리하는데 적용해도 좋다.
<이메일주소를 업데이트하는 예시>
using System;
public class User
{
public string Name { get; set; }
public string Email { get; set; }
}
public class IdempotentUserUpdater
{
public void UpdateEmail(User user, string newEmail)
{
if (user.Email != newEmail)
{
user.Email = newEmail;
Console.WriteLine("Email updated successfully.");
}
else
{
Console.WriteLine("Email is already up to date.");
}
}
}
public class Program
{
public static void Main(string[] args)
{
User user = new User { Name = "John Doe", Email = "johndoe@example.com" };
IdempotentUserUpdater userUpdater = new IdempotentUserUpdater();
// Update user's email address
userUpdater.UpdateEmail(user, "newemail@example.com");
// Output: Email updated successfully.
// Update the email address again with the same value
userUpdater.UpdateEmail(user, "newemail@example.com");
// Output: Email is already up to date.
}
}
사진
★☆☆
반응형
'개발 > 게임) 개발관련' 카테고리의 다른 글
개발환경)젠킨스(Jenkins) PipeLine Build (0) | 2023.07.24 |
---|---|
iOS) UDID(Unique Device Identifier) 확인 방법 (1) | 2023.07.22 |
개발용어) 몹 팩 / 몬스터 팩(Monster Pack) (0) | 2023.06.21 |
개발환경) Visual Studio 인코딩 저장 포맷 설정(UTF-8 한글 깨짐 수정) (0) | 2023.06.07 |
ChatGPT) Plugin 사용해보기 (3) | 2023.05.24 |
댓글