파이썬/파이썬(python) 중급

[16-1 파이썬] 객체지향 프로그래밍(OOP) vs 객체지향 프로그래밍

Olivia-BlackCherry 2022. 8. 23. 15:11

결론부터 말하자면,

파이썬은 객체지향 프로그래밍이다.

 

1. 절차지향 프로그래밍

객체지향 프로그래밍을 본격적으로 알기에 앞서,

객체지향과 반대되는 개념인,

절차지향 프로그래밍을 알아보겠다.

 

절차지향프로그래밍은.

영어로 Procedural Programming인데.

Procedural의 뜻은 절차, 정해진 순서를 뜻한다.

 

절차지향 프로그래밍은 프로그래밍의 초기 형태이다.

기본적으로 위에서 아래로  일을 처리하며,

필요한 경우에는 함수 안으로 들어가서 일을 처리하고

원래의 순서로 돌아온다.

 

하지만 프로그램이 복잡해질수록, 

내가 무슨 코드를 실행하고 있는지, 어디쯤에 있는지 알기가 어려워지고,

코드가 뒤엉켜 

디버깅하는 작업도 힘들어진다.

 

자동차를 생각해보자.

자율주행 자동차를 만든다고 할 때,

 

바퀴, 몸체, 충격 감지 센서, 차선 이탈 센서, 내비게이션, 유리 등을 만들어야 하는데,

몸체만 만든다고 해도

철, 페인트, 망치 등등 필요한 준비물을 준비해서

녹이고, 붙이고, 잇고... 만드는 데 꽤 오랜 시간이 걸릴 것이다. 

 

나 혼자 이걸 다 만드는 것이 

절차지향 프로그래밍이라고 할 수 있다.

 

내가 처음부터 끝까지 모두 만든다고 하면, 너무 힘들다. 

 

그래서 등장한 것이 

객체지향 프로그래밍이다.

 

 

2. 객체지향 프로그래밍

객체지향 프로그래밍은 영어로 Object Oriented Programming이다.

각 단어의 뜻을 살펴보면 아래와 같다.

Object 객체= 물건, 물체

Oriented ~를 지향하는

Programming 프로그램

 

객체를 지향한다는 뜻은 무엇일까?

 

객체지향프로그램에서는 객체들을 만들고, 이들에게 업무를 준다.

1. 바퀴
2. 문짝
3. 유리
4. 조명

자동차를 예로 들면,

4개의 팀에서 각각의 업무를 배정받고,

이것을 처리하는 과정과 방법을

각각의 매뉴얼로 정리해 둔다.

 

바퀴, 문짝, 유리, 조명 객체라고 말한다.

 

객체들이 4가지 매뉴얼을 모두 완성하면

이들을 조합하여 자동차 만들기를 시작한다.

 

각 업무팀에서 만든 것을

조합하기만 하면 돼서

매우 간단하다. 

전문적이고 효율적이다.

 

 

차후에 

자율주행 시스템이 첨가된 새로운 자동차를 만든다고 하면

기존 4가지 기능에서

5번째 객체만 추가로 만들어

조합하면 된다.

 

이렇듯 객체지향 시스템에서는

 

필요한 객체를 가져와

더하거나 빼며

응용할 수 있다.

 

이것은 앞서 이야기했던 모듈의 개념과 같다.

https://olivia-blackcherry.tistory.com/68

 

[7-4 파이썬] 파이썬 모듈 불러오기, 파일 import하기, module, from~import, import, import as, import *, 모듈 장

파이썬 모듈을 이야기할 때 흔히 자동차에 빗대어 이야기한다. 볼보 XC90, 출처: 볼보코리아 볼보 자동차를 만드는 데 필요한 것을 생각해보자. 간단히 생각해보면.. 본체, 유리, 엔진, 바퀴, 전자

olivia-blackcherry.tistory.com

 

 

다음 시간에는

백종원 사장님의 예를 바탕으로 

 

이런 객체가 가진 요소

어트리뷰트, 메서드

attribute와 method를 살펴보겠다.