본문 바로가기
* Language/Python

[Python] 파이썬 : 객체지향 프로그래밍(OOP)란?

by codinguser 2020. 12. 31.

 

 

[Python] 파이썬 : 객체지향 프로그래밍(OOP)란?(1/2)
프로그래밍 언어 전체 큰 틀

 

 

이 질문에 대답을 하기전, 우선 프로그래밍 언어들이 나누어지는 기준을 알아야 합니다.

크게 절차 지향 언어와, 객체지향 언어입니다.

 

대략적으로

절차 지향 언어는 C언어를 생각하시면 되며, 객체 지향 언어는 Python의 예시를 생각해보시면 됩니다.

C언어의 경우는 오로직 위에서 아래로 흘러가는 프로그래밍 기법을 사용하고 있으나,

Python의 경우는 이와는 별개로 독립적인 프로그래밍 기법을 사용하고 있습니다.

 

 

Ref)

 

2020/12/30 - [* IT/Dictionary] - 객체지향 언어를 위한 필수 지식 : 객체(Object)와 클래스(Class) 개념

 

객체지향 언어를 위한 필수 지식 : 객체(Object)와 클래스(Class) 개념

객체지향 언어를 공부하다보면(C++, Java, Python 등..) 항상 나오는 개념이다. 객체와 클래스라는 개념은 항상 등장한다. 이 글은 객체와 클래스의 개념적인 "그림"을 그리기 위해 작성한 글이다. 객

codinglevelup.tistory.com

 

 

 

 

 

 

 

 

 

 

객체 지향 프로그래밍(Object Oriented Programming)란?


: 절차 지향의 반댓말로, 함수를 시작해서 끝으로 흐르는 절차적인것으로 보지 않고 함수, 모듈 각각이

독립적인 존재로 필요할 때 마다 꺼내 쓸 수 있도록 구현해놓은 프로그래밍

 

쉽게 말하면, 프로그래밍을 하는 대상을

인간 세상의 사물과 현상 모두를 객체(Object)로 담아서 표현하는 프로그래밍 기법

 

 

프로그램을 부분부분 만들어 놓고 이를 조립해서 전체를 완성하는 법

 

Ex) 자동차(프로그램) = 몸체(객체) + 바퀴(객체) + 핸들(객체)

 

 

 

 

그렇다면 왜 객체 지향 프로그래밍을 쓸까?


3가지의 이점이 있기 때문이다.

 

- (관리)의 용이성

: 일부가 고장이 나면 부분만 고치면 가능.

 

 

- 프로그램 (확장)이 편함

: 새로운 무언가를 추가 할때 편함

 

 

- 객체 (재사용) 가능

: 특정 객체를 다른곳에서 사용 가능

 

 

 

 

 

그렇다면 객체 지향 프로그래밍의 특성은 무엇이 있을까요?


캡슐화, 상속성, 다형성 이라는 특징이 있다.

 

 

 

< 캡슐화 >

 

기본적으로 객체는 클래스라는 틀안에서 제작되어 만들어지게 됩니다. 즉 클래스는 객체를 포함하고 있다.

객체를 또 다시 분해해보면, 특성과 메소드를 가지고 있다.

(위의 Ref 참조)

 

클래스 안에는 객체가 있다. 그 객체는 특성과 메소드를 가지고 있다.

 

클래스는 마치 캡슐처럼 객체를 품고 있다.

 

< 상속성 >

 

: 상속이 가능한 성질

 

부모 클래스를 이어 받아 자식 클래스에게 상속을 해주는 개념

 

 

 

< 다형성 >

: 형태가 다양한 성질

 

즉, 같은 모양의 코드가 다른 동작을 하게 되는것을 의미한다.

 

Ex)

 

키보드를 누를 때

 

push(keyboard): 키보드를 누른다

 

push(Enter), push(ESC), push(Shift) 등 동작이 다른것을 나타낸다.

 

 

 

 

 

 

Ref)

참고1

 

파이썬과 객체지향 프로그래밍: 다형성(polymorphism) - 잔재미코딩

8. 다형성(polymorphism)¶ 같은 모양의 코드가 다른 동작을 하는 것 키보드의 예로 push(keyboard): 키보드를 누룬다는 동일한 코드에 대해 ENTER, ESC, A 등 실제 키에 따라 동작이 다른 것을 의미함 다형성

www.fun-coding.org

 

댓글