28. Python에도 OOP(Object Oriented Programming)을 지원해요.

안녕하세요. 언휴예요.

이제까지 Python에서 제공하는 기본 문법을 소개했어요. 그런데 프로그래밍을 하다 보면 개발자가 목적에 맞는 자료 형식을 정의하는 부분은 필수적이예요.

Python에서는 개발자가 목적에 맞게 형식을 정의하는 사용자 정의 형식에 관한 문법으로 클래스를 제공하고 있어요. 클래스는 OOP(Object Oriented Programming: 개체지향 프로그래밍)의 중심에 있어요. OOP는 개체지향 프로그래밍을 의미하며 객체 지향 프로그래밍이라고 부르는 이들도 많습니다.

OOP는 현실 세계처럼 프로그램을 작성하는 것을 말합니다. OOP는 다양한 특징을 갖고 있는데 그 중에 캡슐화, 상속, 다형성은 주요 특징입니다.

캡슐화는 이름, 번호, 나이, 공부하다, 놀다 등의 데이터와 기능을 하나의 형식으로 정의하는 과정을 말합니다. 대부분의 OOP 언어에서 캡슐화를 위해 클래스 문법을 제공하고 있어요.

상속이란 특정 형식을 정의하였을 때 이를 기반으로 파생한 형식을 정의하는 것을 말합니다. 이는 다양한 파생 형식의 공통적인 특징을 일반화하여 기반 형식으로 정의를 하면 파생 형식에서는 공통적인 특징은 다시 정의하지 않고 고유한 특징만 정의할 수 있게 해 줍니다.

마지막으로 다형성은 보이는 것은 하나의 이름이지만 실제 개체 혹은 행위는 다를 수 있음을 의미합니다.

이 외에도 OOP에서는 추상화, 정보 은닉 등의 주요한 특징을 갖고 있는데 이들은 캡슐화, 상속, 다형성을 얘기하면서 같이 다룰 수 있는 특징들입니다.

앞으로 OOP 개념을 기반으로 Python의 클래스 관련 문법을 살펴보기로 할게요.