프로젝트의 내용 중 하나로, 유저가 어떤 권한을 가지고 있는지에 따라 회사 서비스에 접근할 수 있는지 판단해야 하는 기능을 구현해야 했다.
쉬운 예로, 유료 회원과 무료회원이 사용할 수 있는 서비스는 다를 것이고 유료회원도 등급에 따라 접근할 수 있는 서비스가 다를 것이다.
접근권한을 불 대수 논리를 통해 판단 할 수 있도록 구현하기 위해 스터디를 시작했다.
어떤 명제의 참과 거짓을 이진수 1 과 0에 대응시켜 명제와 명제간의 관계를 수학적으로 표현한 것이다.
명제와 명제간의 관계를 논리 게이트 라고 한다.




위에서 살펴본 내용은 회로와 연관되어 있지만, 소프트웨어에도 적용시켜 코드를 구현할 수 있다.
예를 들어 총 3가지 권한이 있다고 해보자.
먼저 각각을 2진수로 표현해본다면, 아래와 같이 작성해 볼 수 있다.
- 관리자 - 100
- 판매자 - 010
- 소비자 - 001
서버에서는 아래와 같이 위의 권한을 10진수로 유저 data에 담아 보내줄 것이다.
- 관리자 - 4
- 판매자 - 2
소비자 - 1
프론트에서는 위의 data를 받아 회원의 권한을 구분해야 한다.
And 게이트 방식을 활용하면 쉽게 회원의 권한을 찾아 낼 수 있다.
예를 들어 유저권한으로 6이 넘어왔고, 이 유저가 판매자 권한이 있는지 판단하는 로직을 구현한다면 아래와 같이 판단할 수 있다.
유저(6) : 110
110 && 100 = 100 (관리자 권한 있음)
110 && 010 = 010 (판매자 권한 있음)
110 && 001 = 000 (소비자 권한 없음)
컴퓨터가 가장 빠르게 일을 처리하는 방식은 컴퓨터가 가장 빠르게 알아들을 수 있는 방법으로 이야기해주는 것이다.
컴퓨터는 2진수로 정보를 처리하기 때문에, 빠르게 정보를 처리해야 되는 경우 2진수로 로직을 구현해 보는것도 하나의 방법이 될 수 있다.