seegongsik
내 단어장
데이터

쌓기와 줄서기, 스택과 큐

접시를 차곡차곡 쌓으면 어느 것부터 꺼내나요? 맨 위, 곧 마지막에 올린 것부터죠. 줄을 서면 누가 먼저 들어가나요? 맨 앞, 곧 먼저 온 사람이죠. 자료를 다루는 방법에도 이 두 가지가 그대로 있어요. 쌓기는 스택, 줄서기는 큐예요.

01

접시처럼 쌓아요, 스택

앞에서 자료를 줄지어
늘어놓는 법을 배웠어요.
이번엔 늘어놓는 대신
위로 차곡차곡 쌓아 볼게요.
접시를 쌓는 모습을 떠올려요.
새 접시는 늘 맨 위에 올리고,
꺼낼 때도 맨 위부터 꺼내죠.
그러니 마지막에 올린 접시가
가장 먼저 손에 잡혀요.

A
B ← 맨 위
접시를 쌓고 맨 위부터 꺼내봐요

접시를 눌러 위로 쌓고, 꺼내기를 눌러 봐요. 늘 맨 위, 곧 마지막에 올린 것부터 나와요.

꺼낼 때마다
방금 올린 것이 먼저 나왔죠.
나중에 넣은 게 먼저 나온다,
이게 스택의 한 가지 약속이에요.
넣는 곳도 빼는 곳도
오직 맨 위 한 군데뿐이라
규칙이 아주 단순해요.
이 단순함이 어디에 쓸모가 있는지는
조금 뒤에 다시 만나요.

02

줄을 서요, 큐

이번엔 쌓는 대신
옆으로 줄을 세워 볼게요.
버스를 기다리는 줄을 떠올려요.
새로 온 사람은 맨 뒤에 서고,
버스가 오면 맨 앞부터 타죠.
그러니 먼저 온 사람이
먼저 들어가게 돼요.
쌓기와는 정반대네요.
이 줄서기를 큐라고 불러요.

1
2
맨 뒤에 세우고 맨 앞부터 내보내봐요

사람을 눌러 줄 맨 뒤에 세우고, 내보내기를 눌러 봐요. 늘 맨 앞, 곧 먼저 온 사람부터 나가요.

내보낼 때마다
가장 오래 기다린 사람이 먼저 나갔죠.
먼저 넣은 게 먼저 나온다,
이게 큐의 약속이에요.
뒤로 들어와서 앞으로 나가니
들어온 순서가 그대로 지켜져요.
그래서 새치기 없이
공평한 차례가 보장돼요.
쌓기는 나중먼저, 줄서기는 먼저먼저예요.

03

스택은 되돌리기에 써요

글을 쓰다 실수했을 때
되돌리기를 누르면
방금 한 일이 먼저 취소되죠.
그 전에 한 일은 그 다음에 취소되고요.
동작을 차례로 쌓아 두었다가
맨 위, 곧 마지막 동작부터
하나씩 꺼내 취소하는 거예요.
바로 스택이죠.
뒤로가기 버튼도 똑같은 원리예요.

동작을 쌓고 되돌리기를 눌러봐요
동작을 쌓고 되돌리기를 눌러봐요

동작을 눌러 쌓고, 되돌리기를 눌러 봐요. 마지막에 한 동작부터 차례로 취소돼요.

되돌리기를 누를 때마다
가장 최근 동작부터 사라졌죠.
순서를 거꾸로 되감아야 할 땐
스택만큼 잘 맞는 게 없어요.
마지막에 넣은 걸 먼저 꺼낸다는
그 약속이 곧 되감기니까요.
그럼 순서를 거꾸로가 아니라
들어온 그대로 지켜야 할 땐
무엇을 쓰면 좋을까요?

04

큐는 대기열에 써요

여러 사람이 한 프린터에
인쇄를 맡기면 어떻게 될까요?
먼저 보낸 문서가 먼저 인쇄되고
나중에 보낸 건 뒤에서 기다려요.
이게 인쇄 대기열이에요.
은행 번호표도 마찬가지죠.
먼저 뽑은 번호가 먼저 불려요.
들어온 순서대로 공평하게.
바로 큐가 하는 일이에요.

인쇄 대기열
doc-11
doc-22
문서를 맡기고 먼저 맡긴 것부터 인쇄해봐요

문서를 눌러 인쇄 대기열에 넣고, 인쇄를 눌러 봐요. 먼저 맡긴 것부터 차례로 처리돼요.

인쇄를 누를 때마다
가장 먼저 맡긴 문서가 나왔죠.
순서를 그대로 지켜야 할 땐
큐만 한 게 없어요.
먼저 넣은 걸 먼저 꺼낸다는
그 약속이 곧 공평함이니까요.
같은 자료라도 꺼내는 규칙 하나로
쓰임새가 이렇게 달라져요.
이제 둘을 나란히 정리해봐요.

05

정리해볼까요

한 줄로 모으면 이래요.
스택은 접시 쌓기, 나중에 넣은 게 먼저 나와요.
큐는 줄서기, 먼저 넣은 게 먼저 나와요.
되돌리기와 뒤로가기는 스택,
대기열과 번호표는 큐예요.
넣고 빼는 규칙 하나가
쓰임새를 정하는 거죠.
쌓기는 나중먼저, 줄서기는 먼저먼저,
이 한 줄만 챙기면 돼요.

1. 스택 = 접시 쌓기 (나중먼저)
2. 큐 = 줄서기 (먼저먼저)
3. 스택은 되돌리기와 뒤로가기
4. 큐는 대기열과 번호표
단추를 눌러 핵심을 차례로 되짚어봐요

핵심을 차례로 눌러 되짚어봐요. (쌓기 스택 → 줄서기 큐 → 스택은 되돌리기 → 큐는 대기열)

이제 자료를 쌓고 줄 세우는
두 가지 방법을 알게 됐어요.
넣는 곳과 빼는 곳을 정하는 것만으로
전혀 다른 도구가 되었죠.
다음엔 줄도 쌓기도 아닌
또 다른 방법을 만나요.
자료가 가지처럼 갈라지며
위에서 아래로 뻗어 나가는 모양,
그 이야기를 다음 강에서 이어가봐요.

한 줄 정리스택은 접시 쌓기예요. 위에 올리고, 꺼낼 땐 맨 위(마지막에 넣은 것)부터 나와요. 그래서 나중에 넣은 게 먼저 나오죠. 큐는 줄서기예요. 뒤에 서고, 꺼낼 땐 맨 앞(먼저 온 것)부터 나와요. 그래서 먼저 넣은 게 먼저 나오죠. 어디에 쓸까요? 방금 한 일을 거꾸로 되돌리거나 뒤로 가고 싶을 땐 스택이 딱 맞아요. 마지막 동작부터 차례로 취소되니까요. 들어온 순서대로 공평하게 처리하고 싶을 땐 큐가 맞아요. 인쇄 대기열이나 번호표처럼요. 쌓기는 나중먼저, 줄서기는 먼저먼저, 이 한 줄만 기억하면 돼요.
데이터
이 페이지가 도움 됐다면 후원하기