바인딩(binding)이란?
- 컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것
- 프로그램 내에서 변수, 배열, 라벨, 절차 등의 명칭, 즉 식별자(identifier)가 그 대상인 메모리 주소,
데이터형 또는 실제 값으로 배정되는 것
- 원시 프로그램의 컴파일링 또는 링크 시에 확정되는 바인딩을 정적 바인딩(static binding)
- 프로그램의 실행되는 과정에서 바인딩 되는 것을 동적 바인딩(dynamic binding)
- 프로그래머가 코딩을 해서 컴파일을 하게 되면 프로그래머가 값을 변경할 수 없는 상태가 된는 것
- 메모리에 값을 할당하는 것 또한 바인딩이라고 할 수 있다.
=> 바인딩 이란 프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인
값 성격을 확정하는 것
int num = 10;
int 자료형 바인딩
num 변수형 바인딩
10 변수값 바인딩
자료형 int 와 변수형 num은 컴파일 할 때, 메모리에 할당되므로 정적 바인딩
변수값 10은 실행 시에 할당되므로 동적 바인딩
static 으로 선언 하는 것은 메모리를 한 번밖에 할당하지 않기 때문에 컴파일 시에 메모리에 할당됨
-> static으로 선언된 것은 모두 정적 바인딩 이다.
바인딩 장단점
정적 바인딩
- 컴파일 시 이미 값이 확정되어있기 때문에 실행시 효율이 높아진다.
- 동적 바인딩 보다 속도가 빨라서 효율적이고, 값이 변하지 않아서 안정적이다.
동적 바인딩
- 큰 장점은 값이 변할수있어서 유연하다
- 들어올 값보다 많은 메모리 공간을 차지하고 있기 때문에 메모리 공간이 낭비될 수 있다
- 들어오는 값이 메모리 타입에 맞는지 확인하기 때문에 속도가 늦어진다는 것.
'Computer Science' 카테고리의 다른 글
PATH 환경 변수(environment variable) (0) | 2023.02.22 |
---|---|
스크럼(애자일 개발 프로세스) (0) | 2023.02.16 |
CPU, 메모리, 레지스터 (0) | 2022.10.31 |
컴퓨터'언어' 역사 (0) | 2022.07.12 |
트리(tree)와 이진트리(binary tree) (0) | 2022.07.11 |
댓글