본문 바로가기
Computer Science

바인딩(binding)

by 일상코더 2023. 2. 28.

바인딩(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

댓글