Python 기초 | 바인딩(Binding) 이란?

원준·2023년 4월 21일

파이썬

목록 보기
18/21

1. 바인딩(Binding)?

프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것

2. 그래서?

  • C언어의 변수를 예시를 들어 설명하겠다.
int num = 123;

num = 변수의 이름
int = 변수의 자료형
123 = 변수의 자료값

  • 변수 속성의 구체적인 값에 대한 이름, 자료형, 자료값을 할당하는 각각의 과정을 '바인딩'이라고 한다.

  • 함수에서도 바인딩이 일어나는데, 함수를 호출할 때 해당 함수가 위치한 메모리 주소로 연결해주는 것을 바인딩이라 한다.

    3. 정적 바인딩(Static Binding)

    컴파일 시간에 일어나며, 실행 중 변하지 않고 유지됨

  • 실행 파일에 호출할 함수가 위치한 메모리 주소가 이미 확정 기록된 것을 말한다.

  • 변수 선언 같은 경우 컴파일 시간에 할당되고, 싱행 중 변하지 않는 변수 속성을 말한다.

  • 일반 적인 함수는 정적 바인딩이 일어난다.

    4. 동적 바인딩(Dynamic Binding)

    실행 시간(run time) 중에 일어나며, 프로그램 실행 도중 변경 가능

  • Python에서 사용되며, 'num=10'와 같이 실행 시간에 변수의 자료형을 결정한다.

  • 실행 파일을 만들때 호출할 함수의 메모리 주소가 확정되지 않고 보류 상태로 둔다.
    - 실제 시간에 주소가 결정되기 때문에 공간을 미리 확보 해둔다.

  • 보통 가상 함수들이 동적 바인딩

    동적 바인딩 값은 프로그램 실행 도중 변경될수 있기 때문에 할당되는 메모리 또한 유동적이며, 동적 바인딩 되는 변수를 동적 변수라고 한다.

profile
공부해보자

0개의 댓글