객체는 붕어빵, 클래스는 붕어빵 틀이라는 예시가 적절할까요?

Su Bak
3 min readApr 1, 2022
Photo by Xavi Cabrera on Unsplash

저는 백엔드를 처음 배울 때 자바로 공부를 했었습니다(자바공화국==대한민국…).

지금은 자바스크립트를 자바보다 훨씬 오래 써서 객체지향이나 프로토타입 개념에 익숙하지만 처음 자바를 배웠을 때는 객체는 또 뭐고 클래스는 또 뭔지 전혀 이해가 되지 않아서 억지로 머리에 욱여 넣었던 기억이 있습니다.

이런 저와 같이 개발을 시작할 때 가장 어려운 점 하나가 용어와 추상적인 개념이라고 생각합니다.

소프트웨어는 하드웨어와 달리 실질적으로 손에 잡히고 보이는 것이 아니다 보니 이를 설명하기 위해 사용하는 개념들이 잘 이해가 되지 않을 때가 많이 있습니다.

안그래도 추상적인 개념이라 어려운데 평소 생활할 때 사용하는 용어로 설명하는 것도 아니라서 처음 개발을 공부할 때 많이 어려웠던 기억이 있네요.

용어에 익숙해지고 개발을 하다보면 예전엔 어려웠던 개념이 이해되는 순간이 오기는 하지만 당장에 공부를 할 땐 그냥 외우다보면 나중에 실제 개발을 할 때 살짝만 깊이있게 들어가면 벽을 마주하게 됩니다.

그래서 이번 글은 저와 같이 삥삥돌아서 객체와 클래스를 이해할 필요 없이 좀 더 직관적으로 예시를 들어 설명을 해볼려고 합니다(이 글이 처음 객체, 클래스에 대한 개념을 접하시는 분들께 도움이 되었으면 좋겠네요).

흔히 책이나 강의를 보면 객체와 클래스에 예시를 들때 객체붕어빵, 클래스붕어빵 틀에 비유하는 경우가 대부분인데요. 사실 붕어빵과 붕어빵 틀을 예시로 들어도 잘 마음에 와 닿지 않는(?) 그런 느낌이 듭니다.

그래서 다른 예시를 들어볼려고 하는데요. 여러분 혹시 겨울왕국을 보셨나요?

보시지 않으셨어도 상관없습니다. 자신이 가장 좋아하는(또는 익숙한) 영화(또는 드라마)의 어떤 건축물을 본떠서 만든 레고 상품이 나왔다고 가정해보겠습니다.

저는 겨울왕국1에서 엘사가 만든 얼음성을 선택하겠습니다.

여러분들이 겨울왕국의 얼음성을 본 떠서 나온 레고를 샀다고 가정해보겠습니다. 레고 상자 안에는 레고 블록들과 얼음성을 완성할 수 있는 조립 설명서가 들어있을 것입니다.

여러분들은 설명서를 보고 열심히 레고를 조립해서 얼음성을 만들었습니다.

짜잔! 여러분들은 객체와 클래스라는 개념을 이미 실제로 겪으셨습니다(???).

이게 무슨 소리일까요? 자세히 들어가 보겠습니다.

객체는 좀 더 실생활에 적절한 용어를 사용하면 사물 또는 물체라고 할 수 있습니다.

예시에서는 완성된 얼음성이 바로 객체(사물)인 것이죠.

그렇다면 클래스는 무엇일까요? 바로 얼음성에 대한 조립 설명서를 클래스라고 할 수 있습니다.

레고 블록 하나하나 들은 얼음성(객체)을 구성하는 하나의 부품(속성, property)이라고 할 수 있죠.

우리는 이 레고 블록(속성)으로 조립 설명서(클래스)를 이용해서 얼음성(객체)을 만들 수도 있고 같은 레고 블록으로 조립 설명서(클래스)를 수정해서 얼음 계단(객체)을 만들 수도 있을 것입니다.

또는 조립설명서(클래스)도 사실 하나의 사물(객체)이기도 하니 이 조립설명서로 종이 비행기(객체)를 만들 수도 있겠네요.

어떤가요? 레고를 예시로 들었을 때 붕어빵과 붕어빵 틀로 객체와 클래스를 설명했을 때보다 좀 더 와 닿는 예시였을까요? 그랬으면 좋겠네요.

이 글이 개발을 공부하시는 모든 분들께 도움이 되기를 바랍니다. 모두 힘내세요!

--

--

Su Bak

Backend Developer. Mainly use JavaScript but try not to have language constraints. Always trying to acquire new knowledge