본문 바로가기
코딩

파이썬은 객체 지향 언어다.

by 눈표범  2021. 7. 2.

객체 지향 언어 Object-Oriented Programming (OOP)

 프로그램 설계방법론이자 개념의 일종.

 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음으로 봐야 한다.

 서술의 편의상 객체지향을 Java 위주로 소개하고 있고 class나 public 같은 용어를 사용했다. 이 경우만 객체지향에 해당하는 것으로 오해하지 않게 주의해야 한다. 모든 언어가 class나 접근 제한자(public이나 private)를 사용하지는 않는다.



 대표적인 예로 JavaScript는 프로토타입 객체지향을 사용하고 있고 Python에는 접근제한자가 없다. 객체지향은 특정 언어가 아니라 개념이다. "클래스는 객체이며 구조체는 객체가 아닌 데이터의 집합"이라는 설명 역시 틀렸고, 특정 언어가 객체지향 언어라는 말도 완전히 틀린 표현이다.

 

객체 지향이 무슨 말이지?


>

강한 응집력(Strong Cohesion)과 약한 결합력(Weak Coupling)을 지향한다는 것.

 

>>

프로그램을 유연하고 변경이 용이하게 만든다.
프로그램의 개발과 보수를 간편하게 만든다.
직관적인 코드 분석을 가능하게 한다.

 

 

객체(Object)를 좀 더 자세히 설명하면?

>

세상에 존재하는 모든것을 의미한다. 지금 우리 앞에 있는 컴퓨터와 마우스도 객체라고 볼 수 있다.
프로그래밍에서의 객체는 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹이라고 볼 수 있다.

이해를 돕기 위해 컴퓨터(PC)로 예를 들면,
컴퓨터(PC) = 데이터(본체, 모니터, 키보드, 마우스, 스피커.......등등) + 기능(화면제공, 소리, 입력, 출력.......등등)

모든 것이 객체다.

 

프로그래밍에서의 객체란 하나의 역할을 수행하는 '메소드와 변수(데이터)'의 묶음이다.

 

'코딩' 카테고리의 다른 글

컴파일러 vs 인터프리터  (0) 2021.07.02
class가 뭐지?  (0) 2021.07.02
'디렉토리'란?  (0) 2021.07.02
@@.getcwd()  (0) 2021.07.02
과일 숫자 세는 프로그램 만들기  (0) 2021.07.02

댓글