[자료구조] Stack과 Queue

daun·2022년 8월 18일
1

[기술 면접 준비]

목록 보기
45/48

질문 : Stack과 Queue의 차이점은 무엇인가요?

크루답
Stack은 “쌓다"라는 의미를 가진 자료구조입니다. 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근 자료구조이며 먼저 들어간 데이터는 제일 나중에 나오는 LIFO(Last In First Out)의 구조를 가지고 있습니다. Queue는 Stack과 반대되는 개념으로, 먼저 들어간 데이터(data)가 먼저 나오는 FIFO(First In First Out) 을 특징으로 가지고 있습니다. 티켓을 사려고 줄을 서서 기다리는 모습과 흡사한 이 자료구조는 입력과 출력의 방향이 고정되어 있으며, 두 곳으로 접근이 가능합니다.

  • stack과 queue에 대해 질문 받았습니다. 웹 브라우저 내부에 있는 자료 구조 입니다. JS는 하나의 스텍, 즉 싱글 스레드를 갖는 언어입니다. stack은 FILO(선입후출) 구조를 갖고 queue는 FIFO(선입선출) 구조를 갖습니다.

질문 : 둘은 어떤 관계?

  • 상호보완적 관계이다. 싱글 스레드인 JS은 한번에 한줄의 코드만 실행할 수 있다. 따라서 시간이 걸리는 코드들은 stack에서 바로 처리하지 않고, queue에 쌓이게 된다. stack이 깨끗하게 비어진 뒤 queue에서는 선입선출의 구조로 코드를 다시 stack으로 올리고 실행되게 된다. 따라서 브라우저는 시간이 걸리는 코드들이 읽히기 전에 다른 코드들이 읽을 수 있기 때문에 화면 랜더링 속도를 올릴 수 있다.

질문 : 시간이 걸리는 코드들은?

  • AJAX요청, setTimeOut등의 메소드 등 시간이 소요되는 요청
profile
Hello world!

0개의 댓글