객체 지향 프로그래밍 (Object Oriented Programming, OOP)이란, 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 여기서 객체란, 우리가 인지할 수 있는 '실재하는 모든 것'이자 '사용할 수 있는 실체'를 의미한다. 객체 지향 이론의 핵심 개념은 '실제 세계는 이러한 객체들로 구성되어 있으며, 발생하는 모든 사건들은 이 객체들 간의 상호작용을 통해 발생한다'는 전제로부터 출발한다. 컴퓨터 프로그래밍의 관점에서 보면 일련의 명령어들의 나열을 통해 컴퓨터에게 말을 건네는 절차적 프로그래밍 방식과는 다르게, 객체지향적 프로그래밍은 '프로그래밍에서 필요한 데이터를 한 데 모아 추상화시켜 상태와 ..