여러 이름표를 한 상자에, 객체
키와 값은 이름표 하나에 값 하나였죠(11강). 그런데 '사람 한 명'은 이름 하나로는 다 못 담아요. 이름도, 나이도, 사는 곳도 있잖아요. 이 여러 이름표를 한 상자에 묶은 게 객체예요.
한 상자에 여러 이름표
11강의 키와 값은
'사과 → 과일' 같은 짝 하나였어요.
근데 사람 한 명을 적으려면
이름 하나로는 부족하죠.
이름, 나이, 사는 곳... 여러 짝이 필요해요.
이걸 한 상자에 모아 담은 게 객체예요.
이름표를 하나씩 넣어 보세요. 짝들이 모여 '사람' 상자 하나가 완성돼요.
이름표 하나하나는 키와 값 그대로예요.
달라진 건, 흩어진 짝들을
'사람'이라는 상자 하나로 묶었다는 거죠.
그럼 이 상자 전체는 뭐가 될까요?
상자가 곧 하나의 '것'
이름, 나이, 사는 곳을 따로 들고 다니면
금세 헷갈려요.
근데 한 상자에 묶으면,
그 상자 자체가 '민수'라는 한 사람이 돼요.
사람 하나를 통째로 주고받을 수 있죠.
흩어진 짝과, 한 상자로 묶인 '사람'을 견줘 보세요. 묶이면 하나로 다뤄져요.
이제 '민수'는 이름표 더미가 아니라
속성을 가진 하나의 것이에요.
그럼 이 상자 안에서
'나이'만 콕 집어 꺼내려면 어떻게 할까요?
점 하나로 안을 들여다봐요
상자 안 값을 꺼낼 땐
상자 이름과 이름표를 함께 불러요.
'민수의 나이', '민수의 사는 곳'처럼요.
흔히 점으로 이어 써요. 민수.나이 → 12.
상자를 가리키고, 점 찍고, 원하는 이름표.
이름표를 눌러 보세요. '상자.이름표'가 그 값을 콕 집어 꺼내요.
상자 전체로도, 안의 값 하나로도
자유롭게 다룰 수 있게 됐어요.
그런데 사람이 민수 하나만 있는 건 아니죠.
같은 모양의 사람을 여럿 만들려면?
같은 틀, 다른 내용
'사람'에 어떤 이름표가 들어갈지
한 번 정해 두면(이름·나이·사는 곳),
그 틀로 여러 사람을 찍어낼 수 있어요.
민수, 소라, 톰 다 같은 항목을 가지지만
안에 든 값은 제각각이죠.
틀에서 사람을 여럿 찍어내 보세요. 항목은 같고, 값만 달라요.
틀 하나로 똑같은 모양을 계속 만드니
편하고, 실수도 줄어요.
이름표 이름이 통일돼 있으니까요.
이 단순한 묶음이, 사실 프로그램의 거의 전부예요.
진짜 세상을 담는 그릇, 그리고 그 너머
게임 캐릭터(이름·체력·레벨),
상품(이름·가격·재고), 사용자(아이디·이메일).
프로그램이 다루는 건 대부분 이런 객체예요.
세상의 '것'들을 상자에 담아 다루는 거죠.
다음엔 비슷한 객체끼리 공통점을 물려받는 법으로 가요.
캐릭터, 상품, 사용자. 눌러 보세요. 다 같은 '상자에 담은 것'이에요.
키와 값(11강)으로 짝을 배웠고,
이제 그 짝들을 묶어 '하나의 것'을 만들었어요.
흩어진 정보가 의미 있는 사물이 된 거죠.
다음엔 비슷한 것들이 닮은 부분을
서로 물려받는 법, 상속으로 가요.