seegongsik
데이터

어떻게 정보에도 모양이 있어요

물건을 정리할 때 무엇에 담을까? 긴 줄로 세워 두기도 하고, 칸칸이 나뉜 서랍에 넣기도 하고, 가지처럼 갈라 매달아 두기도 한다. 같은 물건이라도 어디에 담느냐에 따라 꺼내기 쉬운 정도가 달라진다. 정보도 마찬가지예요. 정보를 담는 데에도 모양이 있고, 이 레슨에서는 그 모양을 그릇이라고 부른다.

01

같은 정보, 다른 모양

친구 다섯 명의 이름이 있다고 하자. 이 이름들을 어떻게 담을 수 있을까? 한 줄로 죽 세울 수도 있고, 칸이 나뉜 표에 넣을 수도 있고, 위에서 아래로 가지처럼 갈라 매달아 둘 수도 있다.
담은 내용은 똑같지만 담은 모양은 전혀 다르다. 이 모양을 이 레슨에서는 그릇이라고 부르고, 컴퓨터 과학에서는 자료 구조라고 해요.

Mina
-
Theo
-
Ravi
-
Lia
-
Sora
한 줄로 차례차례 담았어요. 순서가 한눈에 보여요.
담는 모양을 눌러 바꿔봐요. 담긴 이름은 그대로예요.

같은 이름들을 줄, 표, 가지에 차례로 담아 보자. 내용은 그대로인데 모양이 달라져요.

모양이 바뀌어도 담긴 이름은 그대로였다. 그래도 모양마다 쓰임새가 조금씩 달랐을 거예요.
줄은 순서가 한눈에 보이고, 표는 칸을 콕 집어 찾기 좋고, 가지는 누가 누구 위에 있는지가 드러난다. 그렇다면 어떤 모양을 골라야 할까?

02

하려는 일에 맞는 그릇

그릇은 아무것이나 쓰지 않는다. 먼저 하려는 일을 떠올려야 한다. 처음부터 끝까지 순서대로 보고 싶다면 줄로 담는 것이 좋다. 이름만 대면 곧장 찾고 싶다면 표가 낫다.
누가 누구 아래에 있는지 따지고 싶다면 가지가 잘 맞아요. 회사의 조직도나 컴퓨터의 폴더처럼 말이다. 같은 정보라도 목적에 따라 어울리는 그릇이 달라지는 것이다.

줄
표
가지
하려는 일을 눌러봐요.

하려는 일을 눌러 보자. 그 일에 가장 잘 맞는 그릇이 빛나며 까닭을 알려 줘요.

일을 바꿔 누를 때마다 빛나는 그릇이 달라졌다. 언제나 정답인 그릇이 따로 있는 것이 아니라, 무엇을 하려는지가 답을 정한다.
순서가 중요하면 줄, 빨리 찾는 것이 중요하면 표다. 그런데 한 가지가 더 있어요. 그릇 하나가 모든 일을 똑같이 잘해 내지는 못한다는 점이다.

03

빠른 일도, 느린 일도 있다

그릇을 하나 골랐다고 하자. 그 그릇으로 하는 동작 가운데 어떤 것은 아주 빠르고 어떤 것은 꽤 느리다.
줄을 떠올려 보자. 맨 앞부터 차례로 훑는 것은 빠르다. 하지만 줄 한가운데에 새 이름을 끼워 넣으려면 그 뒤에 있는 이름을 모두 한 칸씩 밀어야 해서 느려요. 그릇마다 잘하는 일과 서툰 일이 따로 있는 셈이다.

그릇을 먼저 골라요
그릇을 고른 뒤 동작을 눌러 빠른지 느린지 봐요.

그릇을 하나 고른 뒤 동작을 눌러 보자. 같은 그릇에서도 빠른 동작과 느린 동작이 갈려요.

같은 그릇 안에서도 초록으로 표시된 빠른 일과 빨강으로 표시된 느린 일이 나뉘었다. 그래서 그릇을 고를 때는 내가 가장 자주 할 일이 무엇인지부터 본다.
자주 하는 일이 빠른 그릇이 좋은 선택이에요. 이름이 열 개뿐이면 차이가 작지만, 백만 개가 되면 같은 일이 눈 깜짝할 사이에 끝나기도 하고 한참 걸리기도 한다. 같은 데이터라도 어떻게 담느냐가 빠르고 느림을 가른다.

04

대표 그릇 맛보기

앞으로 자주 만날 그릇들을 이름만 살짝 맛보자. 줄처럼 차례로 담고 번호로 꺼내는 그릇은 배열이다. 이름표를 붙여 짝으로 담는 그릇은 딕셔너리라고 한다.
한쪽 끝에서만 넣고 빼는 그릇은 스택, 줄을 서서 먼저 온 것이 먼저 나가는 그릇은 큐다. 위에서 아래로 갈라지는 가지 모양 그릇은 트리라고 불러요. 지금은 이름과 느낌만 기억해 두면 된다.

배열
줄처럼 차례로 담고 번호로 콕 집어 꺼내요.
어울리는 일순서대로 보고 번호로 찾기
대표 그릇을 눌러 넘겨봐요. 자세한 건 다음 강들에서.

대표 그릇들을 눌러 넘겨 보자. 그릇마다 한 줄 소개와 어울리는 일을 보여 줘요.

이름이 조금 낯설어도 괜찮다. 그릇이 여러 종류라는 것, 저마다 어울리는 일이 있다는 것만 손에 쥐면 충분하다.
하나하나는 이어지는 레슨에서 자세히 다뤄요. 그 전에 지금까지 배운 것을 한 줄로 모아 보자.

05

정리

한 줄로 모으면 이렇다. 정보를 담는 데에도 모양, 곧 그릇이 있다. 같은 데이터라도 줄·표·가지처럼 담는 모양이 달라질 수 있다.
그릇은 하려는 일에 맞춰 고르고, 한 그릇은 어떤 일은 빠르고 어떤 일은 느려요. 그래서 그릇을 잘 고르면 프로그램이 빨라진다. 같은 데이터라도 어떻게 담느냐가 속도를 가른다는 것, 이것이 핵심이다.

핵심을 차례로 눌러 되짚어봐요.

핵심을 차례로 눌러 되짚어 보자. (정보엔 모양이 있어요 → 목적에 맞는 그릇 → 빠른 일·느린 일 → 그릇 맛보기)

이제 정보에도 모양이 있다는 것을 알았다. 그릇을 고르는 눈이 조금 생긴 셈이다.
다음 레슨에서는 가장 기본이 되는 그릇인 배열을 직접 들여다봐요. 칸마다 번호를 매겨 두고 번호만 대면 곧장 꺼내는, 그 빠른 비결도 함께 살펴본다.

한 줄 정리정보를 담는 데에도 모양이 있고, 그 모양을 그릇이라고 부른다. 컴퓨터 과학에서는 이것을 자료 구조라고 해요. 같은 데이터라도 줄로 담느냐, 표로 담느냐, 가지로 담느냐에 따라 모양이 달라진다. 그릇은 아무것이나 쓰지 않고 하려는 일에 맞춰 고른다. 순서대로 보고 싶으면 줄이, 이름으로 빨리 찾고 싶으면 표가 좋다. 그리고 그릇 하나가 모든 일을 똑같이 잘하지는 못해서, 어떤 동작은 빠르고 어떤 동작은 느려요. 그래서 그릇을 잘 고르는 것이 빠른 프로그램의 시작이다.
← 데이터
이 페이지가 도움 됐다면 후원하기