[typescript] 열거형(Enum)을 이용한 비트 플래그(Bit Flags) 사용하기

열거형(Enum)을 이용하여 비트 플래그(Bit Flags)를 구현하는 방법은 TypeScript에서 흔히 사용되는 기술 중 하나입니다. 비트 플래그를 사용하면 여러 가지 옵션을 단일 변수로 효율적으로 표현할 수 있습니다. 이 포스트에서는 TypeScript에서 열거형을 사용하여 비트 플래그를 어떻게 구현하는지에 대해 살펴보겠습니다.

TypeScript 열거형(Enum) 정의하기

먼저, TypeScript에서 열거형을 정의하는 방법을 알아보겠습니다. 열거형은 다음과 같이 정의될 수 있습니다.

enum Permission {
  Read = 1,
  Write = 2,
  Execute = 4,
  Delete = 8
}

위의 코드에서는 Permission이라는 열거형을 정의하고 각 멤버에는 2의 제곱수에 해당하는 값을 할당했습니다. 이는 나중에 사용할 때 각 비트 플래그를 구별하기 쉽도록 돕기 위한 것입니다.

TypeScript에서 비트 플래그 사용하기

이제 이 열거형을 사용하여 비트 플래그를 구현해 보겠습니다.

let myPermission: Permission = Permission.Read | Permission.Write;
위의 예시에서는 myPermission이라는 변수를 열거형으로 선언하고, Permission.ReadPermission.Write를 비트 OR( ) 연산자를 사용하여 함께 사용하고 있습니다.

TypeScript에서 비트 플래그 확인하기

비트 플래그에 특정 허가가 있는지 확인하기 위해서는 다음과 같이 비트 AND(&) 연산자를 이용할 수 있습니다.

if (myPermission & Permission.Read) {
  console.log('Read 권한이 있습니다');
}

위의 예시에서는 myPermissionPermission.Read가 허용되어 있는지 확인하기 위해 비트 AND(&) 연산자를 사용하여 조건을 확인합니다.

TypeScript에서 비트 플래그 수정하기

비트 플래그에서 사용자의 허가를 추가하거나 제거하기 위해서는 다음과 같이 비트 OR( ) 연산자와 비트 NOT(~) 연산자를 사용할 수 있습니다.
// Write 권한 추가
myPermission = myPermission | Permission.Write;

// Read 권한 제거
myPermission = myPermission & ~Permission.Read;

마무리

이번 포스트에서는 TypeScript에서 열거형을 이용하여 비트 플래그를 어떻게 사용하는지에 대해 알아보았습니다. 비트 플래그를 사용하면 단일 변수로 여러 가지 허가 여부를 효율적으로 관리할 수 있으며, 이는 권한 시스템 등 다양한 상황에서 유용하게 활용될 수 있습니다.

열거형을 통한 비트 플래그 사용에 대한 더 자세한 내용은 TypeScript 공식 문서를 참고하시기 바랍니다.