앞 강의에 이어, 클래스 개념에 대해 좀 더 자세히 살펴 보겠습니다.
이제 클래스 내부를 살펴보도록 하겠습니다. 여기에 ‘개(Dog)’라는 클래스가 있다고 해 보겠습니다.
그런데 클래스 안에는 두 가지 요소가 있습니다. 첫 번째 요소는 속성입니다. 속성은 개가 가지고 있는 특징들, 예를 들면 이름, 품종, 크기, 성별, 털 색깔 등을 말합니다.
두 번째 요소는 행동입니다. 예를 들어, 개는 짖거나 물거나 꼬리를 흔드는 등의 행동을 합니다.
이제 ‘개’라는 클래스로부터 개별 개들이 생성되는 과정을 살펴 보겠습니다.
이 개별 개들을 우리는 객체라고 부릅니다(또는 클래스의 인스턴스라고 부릅니다).
플라톤의 이론을 떠올려 보면, ‘개’라는 클래스로부터 구체적인 개들이 만들어집니다. 예를 들어, ‘브라우니’, ‘땡칠이’와 같이 다양한 개들이 생겨날 수 있습니다.
이 개들은 겉모습이나 짖는 소리, 꼬리를 흔드는 모습 등은 다를 수 있지만, 모두 같은 속성과 행동을 공유합니다.
예를 들어, ‘브라우니’는 ‘왈왈’ 짖고, ‘땡칠이’는 ‘멍멍’하고 짖지만, 둘 다 짖는 행동을 가지고 있다는 점은 똑같습니다.
마찬가지로 ‘브라우니’는 파란색 목줄을 착용하고, ‘땡칠이’가 빨간색 목줄을 착용할 수 있지만, 둘 다 목줄이라는 속성을 가지고 있다는 사실은 똑같습니다.
이들은 ‘개’라는 클래스에서 파생되어 나온 다양한 객체들입니다. 즉, 클래스가 정의해 놓은 다양한 속성과 행동들을 그대로 가지고 태어납니다. 다만, 구체적인 내용은 다를 수 있습니다. 예를 들어, 어떤 색의 목줄을 가지고 있는지, 어떤 방식으로 짖는지 등은 다르지만, 공통적인 속성과 행동을 가지고 있는 것입니다.
추가로, 여기서 중요한 개념이 등장하는데 바로 ‘인스턴스화(instantiate)’입니다. 클래스로부터 객체가 만들어지는 과정을 인스턴스화라고 부릅니다.
유니티에서도 클래스로부터 객체를 만들어내는 과정에서 ‘Instantiate’라는 명령어를 사용합니다. 이 명령어는 앞으로 유니티를 사용하면서 자주 접하게 될 것이므로 기억해 두시기 바랍니다.