바인딩

2022. 5. 2. 14:39·개발정보
반응형

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
'개발정보' 카테고리의 다른 글
  • Side Effect
  • Singleton 패턴
  • 브라우저 캐싱
  • 디자인 패턴
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    리얼학습일기
    Node.js
    알고리즘
    자바스크립트
    webpack
    바질 키우기
    영어독학
    next.js
    덤프
    CSS
    Docker
    ChatGPT
    네트워크
    redux
    영어회화
    리액트
    ReactNative
    javascript
    바질
    리얼클래스
    Babel
    식물
    프로그래머스
    react
    네이버 부스트캠프
    CCNA
    타일러영어
    타입스크립트
    다이소
    typescript
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
바인딩
상단으로

티스토리툴바