본문 바로가기
  • Top Genius in the world
알고리듬

[알고리듬] #10 오브젝트의 이해

by Mr.Algo 2024. 3. 22.
728x90
반응형

파이썬 실습창을 열 수 있습니다.실습창 열기

브릭으로 만든 비행기

브릭을 조합하면 많은 것을 만들 수 있습니다.

파이썬에서는 브릭을 오브젝트(object)라 합니다.

파이썬은 모든 것이 오브젝트입니다.

우리는 이러한 오브젝트를 조합하여 프로그램을 만듭니다..

오브젝트를 살펴봅시다.

 

1. 오브젝트의 개념

1-1. 값의 저장

다음을 코딩하고 실행하여 봅시다

a=5
print(a)

5가 출력되었습니다. 컴퓨터 속에서는 어떻게 처리하여 5를 출력할까요?

개략적으로 알아봅시다.

 

컴퓨터의 기억장치(memory)에는 데이터를 저장하는 곳(data area)과 이름을 저장하는 곳(name space)이 있습니다.

●  a=5 에서 하는 일

·  실행하면  '='(대입 연산자)의 왼쪽에 있는 이름 a를 name space에 저장한다.   

    a는 이름이고, '='의 왼쪽에는 항상 이름이 있다. 또한 이름에는 숫자를 적어 넣을 수 있는 꼬리표가 붙어 있다.    

·   '='의 오른쪽에 있는 5를 data area에 저장한다.  5를 값(value)이라 한다.

·   값(5)이 저장된 곳의 주소를 a의 꼬리표에 기록한다. 값을 저장하는 주소는 컴퓨터가 정한다.

● print(a)에서 하는 일

·   a의 꼬리표에 있는 주소로 가서 그곳에 있는 값(5)을 읽어 화면에 출력한다.

 

1-2. 값, 주소, 형, 메서드

● 값(value)의 출력

다음을 코딩하고 실행합시다.

a=5
print(a)

 a의 꼬리표에 있는 주소로 가서 그곳에 있는 값(5)을 출력합니다.

 

● 주소(id)의 출력

마지막 줄을 추가하여 코딩하고 실행합시다.

a=5
print(a)
print(id(a))

매우 큰 숫자가 출력됩니다 (trinket<실습창>에서는 작은 숫자).

이 숫자가 a의 꼬리표에 있는 숫자로서 값이 저장된 주소입니다.

주소를 파이썬에서는 id( 아이디, identity)라 합니다.

 

  형의 출력

마지막 줄을 추가하여 코딩하고 실행합시다.

a=5
print(a)
print(id(a))
print(type(a))
5
4
<class 'int'>

형(type, 타이프)이란 공통된 특징이 있는 것들의 모임인 유형을 뜻합니다.

과일, 채소, 자동차 등이 유형의 예입니다.

파이썬에서는 소수점이 없는 수는 정수, 소수점이 있는 수는 실수  등과 같이 데이터를 12가지 유형으로 나누어 사용합니다.

위의 프로그램에서는 값이 5이므로 정수입니다.  <class 'int'>는 소속(class)이 정수(int, integer, 인티저)라는 뜻입니다.

5가 정수인 것은 컴퓨터가 값을 보고 스스로 추론하여 파악합니다.

 

●  메소더 출력

5라는 정수를 사용하는 방법은 어떠한 것이 있을까요?

덧셈에 사용할 수 있고, 뺄셈, 곱셈, 나눗셈, 몫, 나머지 등에도 사용할 수 있을 것입니다.

 

마지막 줄을 추가하고 코딩하고 실행하여 보세요.

a=5
print(a)
print(id(a))
print(type(a))
print(dir(a))

우와! 복잡한 영어가 출력되었습니다. 여기에 나온 것들이 숫자 5(정수)를 사용하는 방법들입니다.

이곳에 없는 방법은 기본적으로 사용할 수 없습니다(어렵게 만들어 사용할 수는 있음).

이와 같이, 값을 사용하는 방법을 메소드(method)라 합니다.

dir(디렉토리, directory)는 메소드를 출력하라는 명령어입니다.

 

모든 방법을 어느 개인이 다 찾지는 못합니다. 수천명의 전문가들이 10년이상 찾았습니다.

파이썬에는 인류의 지혜가 모아져 있습니다(파이썬은 인류 지혜의 보고).

 

●  오브젝트

우리는 a=5를 적었습니다. 그런데 컴퓨터는 5를 보고.

- 주소를 정하여(id),

- 값을 저장하고(value),

- 값의 유형을 추론하며(type),

- 값의 사용방법들을 모아둡니다(method).

id, value, type, method는 한 묶음입니다. 우리가 5를 입력하면 컴퓨터는 값이 5인 이러한 묶음을 만들어서 저장합니다.

이 묶음을 오브젝트(object, 객체)라 합니다. 즉, 우리가 5를 입력하면 컴퓨터는 값이 5인 오브젝트를 만듭니다..

정리하면 오브젝트는 주소, 값, 형, 메소드로 구성된 자료구조입니다.

파이썬은 모든 것을 이러한 object로 만듭니다.

 

[참고]

파이썬은 숫자나 문자열 같은 변경 불가능(immutable)object가 사용하는 메모리를 절약하기 위하여 이미 만들어진 object를 중복하여 만들지 않습니다. 예를 들어, a=3, b=3 과 같이 코딩하면 값이 3인 오브젝트를 1개 만들고 a와 b가 함께 사용합니다. 

 

∙ ● python은 객체지향 언어( (OOL : object-oriented language)입니다.

객체지향 언어는 프로그램을 명령어의 목록으로 작성하지 않고, 객체(object)들의 모임으로 구성합니다.

각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있습니다. 프로그램이 유연하고 변경이 용이하기 때문에 대규모 소프트웨어 개발에 많이 사용됩니다.

또한, 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있습니다.

 

2. 바인딩

바인딩(binding)은 흩어진 여러 개를 묶어서 하나의 묶음으로 만드는 것입니다.

낱장의 종이를 바인딩하면  책이 됩니다. 파이썬에서는 무엇을 묶을까요?

 

a = 5를 코딩하면 컴퓨터는 값이 5인 오브젝트를 만들고,  이 오브젝트가 저장된 주소를 a의 꼬리표에 저장합니다.

오브젝트의 주소를 꼬리펴에 저장하는 것을 '바인딩한다'라고 얘기합니다.

a=5는 '값이 5인 오브젝트를 a에 바인딩하라'는 것입니다. 간단히 '5를  a에 바인딩하라'입니다.

'a와 5를 한 묶음으로 만들어라'는 뜻입니다.

 

다음의 얘기를 코딩하여 보세요.

5를 a에 바인딩하고, 3은 b에 바인딩 하세요.

그리고 a와 b를 더하여  c에 바인딩하세요.

마지막에는 c에 바인딩되어 있는 값을 출력하세요.

 

더보기
a=5
b=3
c=a+b
print(c)

 

컴퓨터에는 낯선 용어들이 많습니다.

또 영어들이 많습니다.

뿐만 아니라 한가지에 대하여 여러 용어들이 있기도 하고, 하나의 용어가 여러 가지를 의미하기도 합니다.

그러나 그냥하면 됩니다.

하다보면 다 됩니다.

 

힘을 내어 몇 번 읽어보세요.

수고하셨습니다.

끝.

 

 

728x90
반응형