1. 바인딩?
프로그램의 기본 단위가 가질 수 있는 구성 요소의 구체적인 값, 성격을 확정하는 것을 말한다.
String fruit = "apple";
변수 선언을 예시로 들어본다면,
- String 은 변수의 자료형
- fruit은 변수의 이름
- apple은 변수의 자료값
변수의 속성의 구체적인 값이다.
이처럼 구체적인 값을 할당하는 과정을 바인딩이라고 한다.
바인딩은 일어나는 시간에 따라 정적 바인딩, 동적 바인딩으로 나뉜다.
정적 바인딩
컴파일 시간에 일어나며, 실행 중 변하지 않고 유지됨
함수의 정적 바인딩은 컴파일 시간에 호출될 해당 함수의 주소가 결정되어 바인딩 된다.
즉, 실행 파일에 호출할 함수가 위치한 메모리 주소가 이미 확정 기록된 것이다.
일반적인 함수는 정적 바인딩이 일어난다.
정적 바인딩은 컴파일 시간에 대부분 변수들의 속성이나 호출될 함수의 주소를 확정하기 때문에 실행시간의
속도가 빨라 효율적이다.
동적 바인딩
실행 시간 중에 일어나며, 프로그램 실행 도중 변경이 가능하다.
함수의 동적 바인딩은 실행 파일을 만들 때 호출할 함수의 메모리 주소가 확정되지 않고 보류 상태로 둔다.
실행될 지 확정되지 않은 함수를 위해 저장공간을 빼둬야 하는 점 때문에 메모리 관리에 있어 비효율적일 수 있다.
가상 함수들이 일반적으로 동적 바인딩이다.
반응형
'개발정보' 카테고리의 다른 글
Side Effect (1) | 2022.05.16 |
---|---|
Singleton 패턴 (2) | 2022.05.04 |
브라우저 캐싱 (1) | 2022.04.12 |
디자인 패턴 (1) | 2022.04.02 |
비즈니스 로직 (1) | 2022.04.01 |