정적 바인딩과 동적 바인딩의 차이
우선 자바에서 '바인딩' 이란 개념을 알아볼 필요가 있다. 바인딩은 컴파일러 또는 실행 시 실제로 어떤 메서드 구현을 호출 할지를 결정하는 과정을 나타낸다.
프로그래밍에서 '바인딩'은 함수나 메소드를 호출할 때 어떤 코드가 실행될지를 결정하는 프로세스를 의미하며 정적 바인딩과 동적 바인딩은 이러한 바인딩 방식의 두 가지 주요 유형이다.
이 두 가지 방식은 언제 어떻게 함수나 메소드가 결정되는지에 관한 중요한 차이점을 가지고 있다.
- 정적 바인딩(Static Binding)
정적 바인딩은 컴파일 시간에 함수 또는 메소드가 호출될 때 어떤 코드가 실행될지가 결정되는 방식이다. 이 방식에서는 호출 대상이 컴파일 시간에 이미 결정되므로 실행 중에는 변경되지 않는다.
정적 바인딩의 특징:
속도 : 정적 바인딩은 컴파일러가 최적화할 수 있기 때문에 실행 속도가 상대적으로 더 빠를 수 있다.
컴파일 시 오류 검출 : 호출 대상 함수 또는 메소드가 존재하지 않을 경우 컴파일 시간에 오류가 발생 할 수 있다.
예측 가능성 : 프로그램의 동작이 컴파일 시에 결정되므로, 실행 중에 예측할 수 있는 결과를 가지고 있다.
- 동적 바인딩 (Dynamic Binding)
동적 바인딩은 실행 시간에 함수 또는 메소드가 호출될 때 어떤 코드가 실행될지가 결정되는 방식이다. 이 방식에서는 호출 대상이 실행 시간에 결정되므로, 상황에 따라 호출되는 함수나 메소드가 변경될 수 있다.
동적 바인딩의 특징:
유연성: 실행 시간에 호출 대상을 결정하므로, 프로그램의 동작을 동적으로 변경할 수 있다.
런타임 오류 검출: 호출 대상 함수나 메소드가 없을 경우 런타임 중에 오류가 발생하므로, 컴파일 시간에는 확인하기 어렵지만 프로그램의 흐름을 더 유연하게 다룰 수 있다.
다형성 및 상속 활용: 동적 바인딩은 다형성과 상속과 같은 객체 지향 프로그래밍 개념을 효과적으로 활용할 수 있도록 한다.
- 결론 차이점
정적 바인딩과 동적 바인딩은 프로그래밍에서 함수나 메소드 호출 시 어떤 코드가 실행될지를 결정하는 방식의 차이를 나타낸다. 정적 바인딩은 컴파일 시간에 호출 대상이 결정되고, 동적 바인딩은 실행 시간에 결정된다. 각각의 방식은 프로그램의 성격과 상황에 따라 선택되어야 할 것이다.
'JAVA' 카테고리의 다른 글
| 싱글톤 패턴 , 빌더 패턴 , 프록시 패턴 의 특징 은? (0) | 2023.08.08 |
|---|---|
| 집약 이란 무엇인가? (0) | 2023.08.03 |
| 추상화와 다형성의 차이는? (0) | 2023.08.03 |
| SOILD 원칙 이란? (0) | 2023.08.03 |
| 자료구조 - 양방향 연결리스트 (DoublyLinkedList) JAVA (0) | 2023.02.13 |