바인딩(binding)

DragonTiger·2022년 1월 18일
2

바인딩(binding)

컴퓨터 프로그래밍에서 각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것.
프로그램 내에서 변수, 배열, 라벨, 절차 등의 명칭, 즉 식별자(identifier)가 그 대상인 메모리 주소, 데이터형 또는 실제 값으로 배정되는 것이 이에 해당되며, 원시 프로그램의 컴파일링 또는 링크 시에 확정되는 바인딩을 정적 바인딩(static binding)이라 하고,
프로그램의 실행되는 과정에서 바인딩 되는 것을 동적 바인딩(dynamic binding)이라고 한다.
프로그래머가 코딩을 해서 컴파일을 하게 되면 프로그래머가 값을 변경할 수 없는 상태가 되는데, 이걸 바인딩이라고 한다.
메모리에 값을 할당하는 것 또한 바인딩이라고 할 수 있다.
쉽게 말하자면 바인딩(Binding) 이란 프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것을 말한다.

프로그래밍에서는 바인딩을 가급적 뒤로 미루도록 권고하고 있다.

변수(프로그램의 기본 단위)를 예로 든다면,

int num = 10;

int 자료형 바인딩
num 변수명 바인딩
10 변수값 바인딩

위와 같이 자료형, 변수명, 변수값에 각각 int, num, 10 이라는 구체적인 값을 할당하는 각각의 과정을 바인딩이라고 한다.

실행 이전에 값이 확정되면 정적 바인딩(static binding)이라고 하고,
실행 이후에 값이 확정되면 동적 바인딩(dynamic binding)이라고 한다.

자료형으로 int가 바인딩 되는 것은
프로그램을 컴파일 할 때, 메모리에 할당되므로 정적 바인딩이라고한다.
num라는 변수명 또한 컴파일 할 때, 메모리에 할당되므로 정적 바인딩이라고한다.
그런데 값 10은 실행 시에 할당되므로 동적 바인딩이라고 한다.

또한, 자바에서는 메소드를 기본적으로 동적 바인딩 하기 때문에
메소드 오버라이딩이 가능하다.

우리가 static으로 선언하는 것은
메모리를 한 번밖에 할당하지 않기 때문에
컴파일 시에 메모리에 할당된다.

따라서 static으로 선언된 것은 모두 정적 바인딩이 된다.

바인딩 장단점

우선 정적 바인딩은 실행시 효율이 높아진다.
왜냐면 컴파일 시 이미 값이 확정되어있기 때문에 실행만 하면 끝이기 때문이다.
동적 바인딩 보다 속도가 빨라서 효율적이고,
값이 변하지 않아서 안정적이다.

그리고 동적 바인딩의 큰 장점은 값이 변할수있어서 유연하다,
그러나 들어올 값보다 많은 메모리 공간을 차지하고 있기 때문에
메모리 공간이 낭비될 수 있다는 것과
들어오는 값이 메모리 타입에 맞는지 확인하기 때문에 속도가 늦어진다는 것.

참고
pro

profile
take the bull by the horns

0개의 댓글