객체지향 프로그래밍은 자바, C++, C#, 파이썬을 비롯한 현대 주류 프로그래밍 언어 대부분이 채택하고 있는 설계 패러다임이다. 코드를 데이터와 기능이 결합된 독립적인 단위, 즉 객체로 구성하고 이 객체들 간의 상호작용을 통해 전체 프로그램의 동작을 구현하는 방식이라 할 수 있다. 이 글에서는 객체지향 프로그래밍을 지탱하는 네 가지 핵심 특성인 추상화, 캡슐화, 상속, 다형성의 개념과 원리, 그리고 이들이 실제 소프트웨어 설계에서 어떤 의미를 갖는지 체계적으로 살펴본다. ▍ 객체지향 프로그래밍이 등장한 배경 초기의 프로그래밍은 명령어를 순서대로 나열하여 처리하는 절차 지향 방식이 중심이었다. 이 방식은 작은 규모의 프로그램에서는 직관적이고 효율적이지만, 코드의 양이 늘어나고 여러 개발자가 함께 작업..