Object Oriented Programing (OOP)의 기본 아이디어는 단순하고 직관적이다. 객체는 데이터와 기능을 논리적으로 묶어 놓은 것이다. OOP는 우리가 사물을 이해하는 자연스러운 방식을 반영하도록 설계되었다. 만약 자동차가 객체라면 그 데이터에는 제조자, 모델, 차량 번호와 같은 것들이 있을 것이다. 그 기능으로는 변속, 문 열기와 같은 것들이 있을 것이다. 그렇다면 비유를 통해 OOP의 기본 용어에 대해 알아보자. 클래스는 '어떤 자동차'처럼 추상적이고 범용적인 것이다. 인스턴스는 특정 자동차처럼 구체적이고 한정적인 것이다. 기능은 메서드라고 부른다. 클래스에 속하지만 특정 인스턴스에 묶이지는 않는 기능을 클래스 메서드라고 부른다. 예시로 시동을 거는 기능은 클래스 메서드라고 부를 수 ..