권한 토글
Permission Toggle
도구
요금제 등급이나 계정 역할에 따라 같은 코드에서 기능을 여닫는 스위치로, 제품에 오래 남습니다.
등장 배경
요금제를 등급으로 나눈 순간부터 같은 제품이 고객마다 다르게 보여야 했습니다. 처음에는 그 구분을 코드에 박았습니다. 유료 기능마다 등급을 비교하는 조건문을 넣거나 등급별로 다른 화면을 만들었습니다. 요금제 구성이 한 번 바뀌면 배포가 따라붙었습니다.
페이지덱에서도 그랬습니다. 감사 로그를 팀 플랜에만 넣기로 정했는데, 수아가 계약을 앞둔 고객사에서 그 기능을 먼저 보여 달라는 요청을 받았습니다. 조건이 코드에 박혀 있어서 그 고객 하나만 열어 줄 방법이 없었습니다. 태오가 예외를 넣고 배포하는 데 이틀이 걸렸습니다.
해결하는 문제
기능을 켜고 끄는 조건을 코드 밖으로 빼서, 배포 없이 계정별로 바꿀 수 있게 만듭니다. 기능을 서버에 올려 둔 채로 스위치만 여닫는 피처 플래그를 쓰는 세 가지 용도 중 하나입니다.
이 스위치가 맡는 일은 셋입니다.
- 요금제와 기능의 연결. 기능 묶음별로 등급을 나눈 티어 요금제에서 어느 등급이 무엇을 쓰는지를 설정 값으로 관리합니다. 요금제를 다시 짜도 코드는 그대로입니다.
- 계정 하나만 여는 예외. 계약을 앞둔 고객사에 한 기능을 미리 열어 주거나 기간을 정해 체험으로 여는 일입니다. 세일즈가 협상 자리에서 쓸 카드가 됩니다.
- 역할별 노출. 같은 회사 안에서도 관리자에게만 보여야 하는 화면이 있습니다. 구성원 초대나 결제 정보가 그런 자리입니다.
앞의 두 토글과 다른 점은 수명입니다. 미완성 기능을 감추거나 집단을 나눠 비교하는 스위치는 일이 끝나면 코드에서 걷어내지만, 권한 토글은 요금제가 있는 동안 계속 쓰입니다. 치울 날짜를 적지 않고, 대신 어느 등급에 무엇이 열려 있는지를 한곳에서 봅니다.
화면에서 버튼을 감추는 것만으로는 막은 것이 아닙니다. 주소를 직접 입력하면 열리는 경우가 흔해서, 화면과 서버 양쪽에서 같은 조건을 확인해야 값을 합니다.
실무 용례
"그 고객사만 감사 로그 켜 주세요. 권한 토글로 열 수 있습니다."
배포 없이 계정 하나에만 기능을 여는 요청입니다.
"이건 릴리스 토글이 아니라 권한 토글이니 정리 목록에서 빼 주세요."
임시 스위치가 아니라 계속 남아야 하는 스위치라는 뜻입니다.
"화면에서는 숨겼는데 서버에서 안 막혀 있습니다."
권한 확인이 한쪽에만 걸려 있어 우회가 가능하다는 지적입니다.
태오는 스위치를 심을 때 종류를 함께 적습니다. 임시로 붙인 것에는 치울 날짜를 넣고, 권한 토글에는 어느 등급과 역할에 걸린 조건인지를 적습니다. 수아는 이제 기능을 먼저 열어 주겠다는 말을 협상 자리에서 할 수 있습니다.
자주 헷갈리는 용어
같이 보면 좋은 페이지
마지막 업데이트 2026-09-16