티스토리 뷰

반응형

VB에서 기본적으로 제공하지 않는

특정개체를 참조를 하는 방법에 대해서

지난번에 ADO객체에 대해 이야기를 하면서

간단히 설명한 바가 있다.

.
.

아래 링크를 타면 아주 잠깐 설명한 걸 볼 수 있음..

(2009/06/02 - [VB 6.0] - [vb 6.0] ADO - RecordSet 타임아웃 속성 걸기 - Connection 응용)


VB에서는 이 특정 개체 참조 할 수 있는 두가지 방법을 제시하고 있다.

제목에서도 얘기했듯이 Early Binding과 Late Binding인데, 걍 우리말로 하면 일찍묶음, 나중묶음

정도 되겠으나, 그 의미 전달이 또 애매해 지므로 그냥 사용하기로 한다.










그럼 본론으로 돌아가서

Early Binding과 Late Binding에 대해서 알아보도록 하겠다.



1. Early Binding

  
 간단하게 말하자면 위에서 말한 것 처럼 SDI툴에서 참조할 객체를 추가해 주는 방법이다.

 선언부는 다음과 같다.


e.x) ADO의 RecordSet 객체를 Early Binding해서 선언하는 경우
Dim adoRs As New ADODB.RecordSet


Early Binding방식은 프로그램 디자인 타임에 객체 바인딩이 이루어지게 되며, 컴파일러가

런타임에 객체를 바인딩 하는 것보다 효율적으로 동작하기 때문에 실행속도가 더 빠르다.



그런데 이 방식도 실제로는 다음과 같이 사용하는 것이 더욱 효율적이다.

Dim adoRs As ADODB.RecordSet
set adoRs = new ADODB.RecordSet


선언문에 New를 사용하게 되면 응용프로그램이 개체를 사용할 때마다 객체가 생성되었는지

확인하는 작업이 추가로 발생하게 되는데, 이는 응용프로그램의 성능에 상당히 안좋은 영향을

끼치기 때문에 선언문에 New를 사용하지 않는 습관을 들이는 것이좋다.


2. Late Binding

 
뭐 이쯤되면 다 알겠지만, ㅎㅎ

Late Binding은 Early Binding과는 달리 디자인 타임에 객체를 참조하지 않고 실행타임에

객체를 생성하고 참조하는 방식을 말한다.

사용법은 객체를 생성할 변수를 우선 Object형으로 선언한 후

참조할 객체를 만들어서 변수에 대입하는 방식이다.


e.x) ADO의 RecordSet 객체를 Late Binding해서 선언하는 경우
Dim adoRs As Object
Set adoRs = CreateObject("ADODB.Recordset")


하지만, 이 방식은 실행타임에 VB는 개체로 접근하기 위해 추가적인 작업을 하게되며 

역시 성능에 좋지 않은 영향을 미치게 된다.

 








반응형
댓글
반응형
02-19 07:24
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함