본문 바로가기

Python

객체 지향 프로그래밍이란

udemy의 강의를 듣고 정리한 내용입니다.

 

객체 지향 프로그래밍은 객체를 중심으로 해서 소프트웨어 설계를 하는 프로그래밍 패러다임입니다.

프로그래밍 패러다임이란, 프로그램을 만들기 위해 코드를 작성하는 방법을 뜻한다고 보면 됩니다.

(패러다임은, 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념입니다. 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식등의 체계를 뜻합니다. 예를 들어 천동설이 진리로 받아들여지던 시기에 다른 모든 천문 현상은 천동설의 테두리에서 설명되었습니다.)

프로그래밍 패러다임은 명령형((Imperative), 함수형(Functional), 선언형(Declarative)…등이 있습니다.

 

이 중에 하나로 객체지향 프로그래밍이 있는 것입니다.

객체 지향 프로그래밍에서 객체는 크게 state(attribute)와 behaviour로 구성되어 있습니다.

OOP(앞으로 객체지향 프로그래밍을 OOP로 적겠습니다.)는 오브젝트에 보내는 메시지를 기반으로 하는 방식입니다.

명령형 프로그래밍처럼 한줄 한줄 코드를 작성해서 프로그램에게 우리가 하고자 하는 것을 전달하는 하는게 아니라 객체를 중심으로 코드를 작성합니다.

 

객체는 메시지를 교환하며 작업을 수행하여 메시지에 응답합니다.

파이썬에서 객체를 class를 사용해서 표현합니다.

이러한 OOP는 복잡한 기능이나 구조를 만들기 위해 결합할 수 있는 레고라고 생각해도 됩니다.

프로그래밍 패러다임은 상호 배타적이지 않습니다. 예를 들어 OOP를 사용한다고 해서 선언형 프로그래밍을 전혀 사용하지 않는 것은 아닙니다.

프로그램을 OOP와 함수형, 선언형 프로그래밍을 사용해서 만들 수 있습니다.

객체와 객체를 결합하는 작업을 선언형 프로그래밍으로 한줄한줄 코드를 작성해서 하는 경우도 있습니다.

 

정리하자면, OOP는 프로그래밍 패러다임 중 하나로, 객체를 중심으로 코드를 작성하는 방법입니다.

다른 프로그래밍 방식과는 달리, 객체를 중심으로 코드를 작성합니다.

OOP는 객체에 보내는 메시지를 기반으로 하는 방식입니다. ex. Student.study()

파이썬에서 OOP는 class를 활용해서 작성하고 이 class는 state(attribute)와 behaviour 구성되어 있습니다.

그리고 OOP로 프로그램을 작성한다고 해서 선언형, 함수형과 같은, 다른 프로그래밍 패러다임을 사용하지 않는 것은 아닙니다. 한 프로그램을 만들 때 여러 프로그래밍 패러다임을 함께 사용할 수 있습니다.

이러한 OOP를 사용하는 장점으로는,

다른 프로그래밍 패러다임과 비교해서 복잡한 프로그래밍을 이해하기 쉽고 관리하기 쉽게 작게 나눌 수 있다는 것입니다.

 

Reference

패러다임

Udemy Python OOP - Object Oriented Programming for Beginners