바인딩 작업이란 무엇인가?

초월차선·2023년 3월 4일

Java

목록 보기
11/14
post-thumbnail

바인딩이란 프로그램에서 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위를 의미한다. 즉, 프로그램에서 사용되는 변수나 메서드 등 모든 것들이 결정 되도록 연결해주는 것을 말한다.

위의 정의를 봐서 제대로 이해가 안 될 수 있어, 간단한 예로 설명을 해보자면
Java에서 값을 할당할 때 int a=3 이런식으로 값을 할당한다. 이것이 바로 바인딩이다. 정적 바인딩과 동적바인딩도 컴파일 시간에 할당되는 값이냐 실행시간에 결정되는 값이냐에 따라 정적 바인딩과 동적 바인딩으로 나뉜다.

정적 바인딩:

  • 컴파일 시간에 결정
  • 프로그램이 실행되도 변하지 않음
  • 예: 오버로딩
  • static, private, final method에 해당

동적 바인딩:

  • 실행시간(Runtime)에 결정
  • 늦은 바인딩이라고도 부름
  • 예: 오버라이딩

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

이것을 미루어 보았을 때, 바인딩은 컴파일러가 컴파일 과정에서 언제 호출할 지 결정하는 작업이라고 할 수 있다. 즉, 정적 바인딩은 컴파일 하는 시점에 실제 값 또는 프로퍼티를 결정짓는 행위를 말하고, 동적 바인딩은 runtime 시점에 실제 값 또는 프로퍼티가 결정되어 지는 행위라고 할 수 있다.

0개의 댓글