seegongsik
프로그래밍

어떻게 여러 이름표를 한 상자에, 객체

키와 값은 이름표 하나에 값 하나였다(11강). 그런데 사람 한 명은 이름 하나로 다 담을 수 없다. 이름도 있고 나이도 있고 사는 곳도 있으니까. 이 여러 이름표를 한 상자에 묶은 것이 객체예요.

01

한 상자에 여러 이름표

11강의 키와 값은 '사과 → 과일' 같은 짝 하나였다.
하지만 사람 한 명을 적으려면 이름, 나이, 사는 곳처럼 여러 짝이 필요하다.
이것들을 한 상자에 모아 담은 것이 객체예요.

사람

이름표를 하나씩 넣으면 짝들이 모여 '사람' 상자 하나가 완성된다.

이름표 하나하나는 키와 값 그대로다.
달라진 것은 흩어진 짝들을 '사람'이라는 상자 하나로 묶었다는 점이다.
그렇다면 이 상자 전체는 무엇이 될까요?

02

상자가 곧 하나의 '것'

이름, 나이, 사는 곳을 따로따로 들고 다니면 금세 헷갈린다.
한 상자에 묶으면 그 상자 자체가 '미나'라는 한 사람이 된다.
사람 하나를 통째로 주고받을 수 있게 되는 거예요.

이름 Mina나이 12사는 곳 서울

흩어진 짝과 한 상자로 묶인 '사람'을 견준다. 묶이면 하나로 다뤄진다.

이제 '미나'는 이름표 더미가 아니라 속성을 가진 하나의 것이다.
그렇다면 이 상자 안에서 '나이'만 콕 집어 꺼내려면 어떻게 할까요?

03

점 하나로 안을 들여다본다

상자 안의 값을 꺼낼 때는 상자 이름과 이름표를 함께 부른다. '미나의 나이', '미나의 사는 곳'처럼.
보통은 점으로 이어 써서 mina.나이 → 12가 된다.
상자를 가리키고, 점을 찍고, 원하는 이름표를 적는 거예요.

mina
이름표를 눌러요

이름표를 누르면 '상자.이름표'가 그 값만 콕 집어 꺼낸다.

이제 상자 전체로도, 안의 값 하나로도 자유롭게 다룰 수 있다.
그런데 사람이 미나 하나만 있는 것은 아니다.
같은 모양의 사람을 여럿 만들려면 어떻게 할까요?

04

같은 틀, 다른 내용

'사람'에 어떤 이름표가 들어갈지를 한 번 정해 두면(이름·나이·사는 곳), 그 틀로 여러 사람을 찍어 낼 수 있다.
미나, 소라, 톰은 모두 같은 항목을 가지지만 안에 든 값은 제각각이에요.

사람 만들기를 누를 때마다 틀에서 사람이 하나씩 찍혀 나온다. 항목은 같고 값만 다르다.

틀 하나로 같은 모양을 계속 만드니 편하고 실수도 준다.
이름표 이름이 통일되어 있기 때문이다.
이 단순한 묶음이 사실 프로그램의 거의 전부예요.

05

진짜 세상을 담는 그릇, 그리고 그 너머

게임 캐릭터(이름·체력), 상품(이름·가격), 사용자(아이디·레벨).
프로그램이 다루는 것은 대부분 이런 객체다. 세상의 '것'들을 상자에 담아 다루는 셈이다.
다음 레슨에서는 비슷한 객체끼리 공통점을 물려받는 법으로 넘어가요.

이름 → Mina
체력 → 80

캐릭터, 상품, 사용자 탭을 누르면 셋 다 같은 '상자에 담은 것'이라는 게 보인다.

키와 값(11강)으로 짝을 배웠고, 이제 그 짝들을 묶어 '하나의 것'을 만들었다.
흩어진 정보가 의미 있는 사물이 된 셈이다.
다음은 비슷한 것들이 닮은 부분을 서로 물려받는 상속이에요.

한 줄 정리객체는 여러 '이름표 → 값' 짝을 한 상자에 묶고, 그 상자 전체를 하나의 것으로 다룬다. 상자 안의 값은 '상자.이름표'로 꺼내고, 같은 틀로 여러 개를 찍어 낼 수 있어요.
← 프로그래밍
이 페이지가 도움 됐다면 후원하기