[Code Camp 5주차] 권한 분기

FE 08김우중·2022년 8월 8일
0

권한분기란

권한분기가 이루어지는 상황에는 대표적으로는 로그인이있다.
작게보면 로그인을 한 사람하지 않은사람 으로 권한분기가 이루어지고, 크게보면 운영자로 로그인, 판매자로 로그인, 거래처 사장으로 로그인 으로 권한분기를 나눌수있다.

스택과 큐

권한분기를 다루려면 필요한 지식이있는데, 그 중 가장 기본이되는게 스택이다.

1. Stack(스택)

스택이란 출입구가 하나인 우물 형태의 데이터 구조이다.
이름 그대로 위에서부터 쌓이는 형태이고 입구가 들어오는 입구 하나이기 때문에 가장 처음에 입력된 함수가 가장 나중에 스택을 빠져나가게된다.
이를 First In Last Out 이라고하며, FILO 라고 한다.

2. Queue(큐)

큐란 스택과는 다르게 입구가 양방향출입이 가능한 파이프 형태의 데이터 구조이다.
스택과는 다르게 출입구가 양방향으로 출입이 가능하여 가장 먼저 입력된 함수가 가장 먼저 빠져나간다.
이를 First In First Out 이라고하며, FIFO 라고 한다.

스코프체인

스코프란 유효범위를 뜻하며, 해당 변수가 정의되어 있는 영역, 즉 정의된 변수를 사용할 수 있는 소스코드의 집합을 의미한다.

그러면 스코프체인이란 해당 코드의 유효범위안에 있는 변수를 정의하는 객체의 체인, 즉 리스트이다.

자바스크립트가 변수 값을 얻으려고 할 때, 스코프체인에서 변수를 찾는다. 첫 번째 객체에서 해당 변수를 찾고, 없으면 그 다음 객체에서 해당 변수를 찾고, 여기도 없으면 그 다음 객체에서 찾는 형식으로 이루어진다.

클로저

클로저란 상위 함수와, 해당함수가 선언된 스코프 즉 상위함수를 둘러싼 환경이라고 정의할수있다.
예를들어 aaa()라는 함수안에 bbb()라는 함수가 선언되어있는데, aaa 함수는 apple이라는 변수가 있고, bbb 함수에는 apple 이라는 변수가 존재하지않는다.
이때 bbb 함수를 실행하면 콘솔에 apple 변수가 찍히는 모습을 볼수있다.
여기서 bbb 함수 스코프 안에는 apple 이라는 변수가 없지만, aaa라는 상위함수의 스코프로 찾아 올라가 apple이라는 변수를 찾게 된거다.
bbb 함수에서 aaa 함수 스코프로 올라가는 과정에서 스코프 체인이 일어난다고 보면된다.

profile
새내기 개발자

0개의 댓글