Kotlin은 객체지향 프로그래밍 패러다임을 지원하는 프로그래밍 언어이다. 따라서 Kotlin을 알기 위해서는 객체지향이 무엇인지에 대한 이해가 필수적이다. 이 장에서는 객체 지향 프로그래밍에 대한 간단한 이야기를 하고 넘어가고자 한다. 객체 지향에 대한 깊은 내용은 뒤에서 다룰 내용이니 가볍게 읽고 가도록 하자.
객체지향이란 무엇인가?
객체지향은 객체를 중심으로 프로그래밍을 하는 프로그래밍 패러다임을 뜻한다. 쉽게 설명하면 우리가 코딩을 통해 하나의 세계를 창조한다고 보고 해당 세계 안에는 객체들이 존재한다고 보는 프로그래밍 방식이다. 여기서의 객체란 상태를 저장할 수 있는 자율적으로 행동하는 주체를 뜻한다.
한 번 객체지향적으로 우리가 하나의 세계를 창조하고 사람과 고양이 강아지가 존재한다고 해보자. 이를 시각화하면 다음과 같다.
위 그림의 세계에는 사람, 고양이, 강아지가 있다. 이들은 모두 객체이며 이러한 객체들이 존재하는 세계를 프로그래밍을 통해 창조하는 것이 객체지향이다. 객체지향 언어를 사용하게 되면 수많은 객체 지향 세계를 창조하게 된다.
자 그러면 객체의 요건을 알아보자. 객체 지향에서 객체들은 각자 자율적으로 행동하고 서로 간에 메세지를 전달하며,
이러한 메세지 전달 과정이 바로 프로그램의 동작이 된다.
💡 정리하면 프로그래밍 상의 객체의 요건은 두가지이다.
1. 상태를 저장할 수 있어야 한다.
2. 자율적으로 행동할 수 있어야 한다.
위 두가지 요건을 만족시키는 실제 세계의 대표적인 객체가 있다. 바로 사람이다. 첫째 사람은 자신의 상태를 저장한다. 컨디션이 좋은지, 보통인지, 나쁜지를 판단하며, 자신의 체온이 36.5도에서 많이 벗어나는지 아닌지를 저장한다. 둘째 사람은 자율적으로 행동한다. 사람은 자신의 자율적으로 행동한다. 예를 들어 커피를 마시거나 밥을 먹는 행위 혹은 공부하는 행위는 모두 자신의 의지로 하는 행위이다.
우리는 사람과 같은 상태를 저장할 수 있는 자율적으로 행동하는 주체를 객체라고 부른다. 마찬가지로 강아지나 고양이 같은 동물들 또한 하나의 객체가 될 수 있다. 즉, 언어적으로 정의하면 객체는 상태와 행동으로 이루어진 하나의 주체이다.
객체와 객체의 두가지 구성요소인 상태와 행동은 이후 진행할 모든 Kotlin 프로그래밍의 기본이 된다. 꼭 기억해 두도록 하자.
💡 객체의 구성요소
1. 상태
2. 행동