본문 바로가기

Dev.../델파이4의 모든것

Chapter 1 - 이것이 델파이4 ! (This is Delphi 4 !)

이것이 델파이 4 ! (This Is Delphi 4 !)

델파이 4는 현재 사용할 수 있는 가장 유연하면서도 강력한 개발 도구이다. 델파이 4는 비주얼 인터페이스 디자인과 강력한 객체지향 언어로서의 특징을 가지고 있는 오브젝트 파스칼 언어를 통합하고 있다. 개발자는 이를 이용하여 빠르면서도 직관적이고, 견고한 Win32 어플리케이션을 쉽게 개발할 수 있다.

이번 장에서는 델파이 4에서 새롭게 선보이는 여러 가지 기능과 특징 들을 소개한다. 처음으로 델파이를 접하는 사람들에게는 다소 어려운 내용이 될 수도 있으나, 대부분의 내용이 나중에 다시 자세히 언급될 것이므로 그냥 한 번 읽어두는 것도 좋을 것이다.

흔히 차를 새로 홍보할 때 보면, 그 기능은 잘 몰라도 각종 기술 이름을 들먹여가며 '이 차에는 이런, 저런 기능을 추가했습니다. ' 라는 문구를 많이 보게 되는데, 이번 장의 내용이 그렇다고 보면 된다.

몰라보게 좋아진 IDE

델파이 4에서 가장 향상된 점을 들라고 하면, 그동안 항상 비슷하게 유지되던 IDE의 모습이 상당히 많이 바뀐 점이다. 과거로부터 바라왔던 부분들이 반영되어 편리한 개발 환경이 되었다. 보다 자세한 사항은 다음 장에서 다루게 된다.

  • Form 디자이너에 기본적인 마우스 좌표지원

    델파이 4의 폼 디자이너에서는 컨트롤의 위치를 표시하는 힌트 윈도우를 이용하여 좌표를 표시해주는 기능이 추가되었다.

  • 윈도우 98의 듀얼 모니터 기능 지원

    윈도우 98의 듀얼 모니터 기능을 이용하여 코드 에디터를 여러 개의 모니터로 나누어 사용하거나, 실행 파일을 따로 보는 것 등이 가능해졌다.

  • 프로젝트 관리자 (Project Manager)

과거의 단일 프로젝트 그룹 방식에서 여러 개의 프로젝트를 동시에 관리할 수 있는 프로젝트 관리자를 지원한다.

이를 이용해서 멀티-tiered 어플리케이션의 각각의 어플리케이션 또는 DLL과 이를 사용하는 어플리케이션과 같이 서로 관계 있는 프로젝트 들을 동시에 관리하며 개발이 가능하다

  • 클래스 완료 (class completion), 모듈 탐색 (module navigation), 코드 브라우저 (code browser)를 포함한 모듈 탐색기 (Module Explorer)

새로운 모듈 탐색기는 클래스를 만드는 여러 과정을 자동화하여 클래스의 생성 과정을 쉽게 만들었다. Interface 섹션에서 메소드의 prototype을 기록하고, 모듈 탐색기에게 skeleton code를 작성하도록 하면, implementation 섹션에 기본 코드가 생성된다. 유닛 파일에서 interface, implementation 섹션 사이에서 객체를 탐색할 수 있는 기능도 포함되어 있다.

  • 도킹 툴 윈도우 (Dockable tool windows)

IDE의 각 윈도우가 오피스 97과 같이 도킹이 가능한 형태로 바뀌었다. 각각의 툴 윈도우를 drag-and-drop 만으로 원하는 위치에 둘 수 있다. 모듈 탐색기와 프로젝트 매니저 역시 도킹이 가능하다.

오브젝트 파스칼의 확장

델파이 4는 오브젝트 파스칼에 여러가지 언어적인 확장을 가져왔다. 여기에는 다음과 같은 것들이 있다.

  • 동적 배열
  • 메소드 오버로딩
  • 디폴트 파라미터
  • 64비트 정수형
  • 32비트 unsigned 정수형
  • 실수형의 변화
  • 인터페이스 구현 방식에 대리자(delegation) 허용

이들에 대한 자세한 내용은 4, 5, 7장의 내용을 참고하기 바란다.

디버깅 기능의 강화

델파이 4는 C++ 빌더 3에서 볼 수 있었던 여러 가지 디버깅 기능이 새로 추가되었다. 새로운 인스펙터와 CPU 윈도우, 모듈 윈도우와 이벤트 로그를 이용하여 보다 편리한 디버깅 환경을 제공한다. 또한, 원격 어플리케이션에 대한 디버깅과 다중 프로세스 디버깅을 지원하므로 멀티-tiered 어플리케이션의 개발이 용이하다.

추가된 CPU 윈도우 화면은 다음과 같다.

향상된 VCL

델파이 4에서는 VCL의 구조가 다소 향상되었다. 변경된 부분만 나열하면 다음과 같은 것들이 있다.

  • 액션 리스트(Action Lists)는 메뉴나 각종 버튼에 의한 사용자 명령을 중앙에서 집중하여 관리할 수 있도록 해준다.
  • 윈도우 NT에 대한 프로그램을 개발할 때 서비스 프로그램으로 활용할 수 있도록 TServiceApplication, TService 클래스를 제공한다. 또한, New items 대화상자에는 여기에 대한 위저드를 2가지 제공하고 있다.
  • TControl과 TWinControl이 도킹을 지원하도록 변경되었으며, TControl에는 윈도우의 크기를 변경하지 못하게 설정할 수 있는 기능이 추가 되었다.    
  • Ini 파일에 대한 지원도 확대되었다. 레지스트리와 ini 파일을 동시에 지원하는 TRegistryIniFile 클래스, 그리고 Ini 파일의 변화를 메모리에 캐쉬했다가 저장하는 TMemIniFile 클래스가 추가되었다.
  • TParams 클래스의 유닛 위치가 dbtables에서 db로 바뀌었는데, 이는 TClientDataSet 클래스에 파라미터를 지원하게 하기 위한 것이다. 그리고, 스크롤 바가 좌측에 있다거나 텍스트를 우측에서 좌측으로 표현하는 등의 세계화에 걸맞는 프로퍼티가 추가되었다.
  • 기본적인 TObject 클래스에 BeforeDestruction, AfterConstruction 이라는 2개의 새로운 protected 메소드가 추가되었다. BeforeDestruction은 객체가 destructor를 호출하기 직전에 호출되며, AfterConstruction은 객체가 constructor를 호출한 직후에 호출된다. TObject를 상속한 클래스들은 이들 메소드를 override하여 constructor나 destructor에서 일어나면 안되는 작업이 일어나지 않게 한다. 예를 들어, 폼의 경우 이들 메소드를 오버라이드하여 OnCreate, OnDestroy 이벤트를 발생시키는데, 이것이 중요한 이유는 컴포넌트가 델파이 뿐만 아니라 C++ 빌더에서도 사용될 수도 있기 때문이다. 즉, 오브젝트 파스칼과 C++의 constructor, destructor의 행동에 차이가 있기 때문에 이 문제를 해결하기 위한 것이다.
  • 윈도우 98을 지원하는 새로운 컨트롤이 추가되었다. 여기에는 TControlBar, TPageScroller, TComboBoxEx, TMonthCalendar, TFlatScrollbars등의 컴포넌트가 있다.

클라이언트 데이터 세트의 향상

델파이 4에서는 BDE를 사용하지 않고도 여러가지로 활용할 수 있는 클라이언트 데이터 세트 컴포넌트가 보다 강화되어 그 효용성이 더욱 높아졌다.

TClientDataSet 컴포넌트는 BDE를 사용하지 않고, DBClient.DLL 파일 만을 사용해서 데이터베이스의 기능을 활용할 수 있게 해준다. 클라이언트 데이터 세트를 사용할 때에는 데이터베이스 연결이 필요하지 않으므로 TDatabase 컴포넌트도 사용하지 않는다.

클라이언트 데이터 세트는 데이터에 접근, 편집, 탐색, 데이터 제한과 필터링 기능까지 제공하고 있다.

멀티-tiered 어플리케이션 지원의 강화

델파이 4에서는 멀티-tiered 어플리케이션에 대한 지원이 더욱 강력해졌다. 여기에는 다음과 같은 것들이 있다.

  • Refresh/resync 지원
  • 데이터 패킷에 대한 지원
  • 중첩된 테이블을 이용한 마스터/디테일 관계 지원
  • 브로커 커넥션의 후킹
  • 클라이언트 데이터 세트에서 파라미터를 어플리케이션 서버에 넘기거나 사용자 정의 정보를 데이터 패킷에 저장할 수 있다.
  • 쉬운 서버 인터페이스 호출
  • TDataSetProvider라는 새로운 클래스를 통한 데이터 세트 지원
  • 어플리케이션 서버에 접속하는데 필요한 다양한 연결 컴포넌트
  • 서버 소켓의 콜백 지원과 NT 서비스 지원
  • Midas의 OLE Server지원

데이터베이스 기능 향상

테이블 컴포넌트가 폼 디자이너에서 테이블을 생성, 이름 변경, 삭제할 수 있도록 향상되었다. 테이블 컴포넌트를 디자이너에서 선택하고, 오른쪽 버튼을 클릭한다. 여기에서 적당한 메뉴를 선택하면 된다.

또한 새로운 BDE 엔진은 액세스 97과 오라클 8, 인포믹스 9.0, 인터페이스 5.1을 지원한다. 또한, 델파이 4에서는 SQL을 확장하여 오라클 8의 새로운 확장성을 지원하게 되었다. 즉, ADTs(Abstract Data Types), 배열, 참조, 중첩된 테이블 등을 지원한다. 이를 위해 새로운 TField 데이터 형인 TADTField, TReferenceField, TArrayField를 지원한다. 또한, ADTs와 중첩된 테이블을 보여주기 위해 Grid 컴포넌트를 향상시켰다. 또한, 기존의 Visual Query builder에 새로운 쿼리 기능을 추가한 SQL builder를 제공한다.

그리고, 객체지향 데이터베이스 모델을 지원한다.

마이크로소프트 트랜잭션 서버(MTS) 지원

MTS는 DCOM 어플리케이션의 트랜잭션 서비스와 보안, 리소스 관리를 하는 견고한 런타임 한경이다. 델파이 4는 MTS 자동화 위저드를 제공하여 MTS 자동화 객체를 생성할 수 있으며, 이를 이용해 MTS 환경의 여러가지 잇점을 사용할 수 있다. 또한 MTS 서버 객체 위저드를 이용하면 서버 객체를 쉽게 생성할 수 있다. MTS는 COM 클라이언트와 서버를 생성하고, 이를 구현하는데 편리한 많은 서비스를 제공한다. MTS 컴포넌트는 많은 하위 레벨 서비스를 제공하는데, 여기에는 다음과 같은 것들이 있다.

  • 동시에 많은 사용자들이 사용할 수 있는 서버 어플리케이션을 만들기 위해 프로세스나 쓰레드, 데이터베이스 연결 등의 시스템 리소스를 관리한다.
  • 트랙잰션을 자동으로 시작하고, 이를 관리한다.
  • 필요할 때 서버 컴포넌트를 생성, 실행, 삭제한다.
  • 보안을 제공하기 때문에, 인증된 사용자만 어플리케이션에 접근할 수 있다.

MTS는 어플리케이션의 비즈니스 로직을 MTS 자동화 객체나, MTS 원격 데이터 모듈에

구현한다. 컴포넌트를 DLL에 구현하면, DLL은 MTS 런타임 환경으로 설치된다. 델파이에서 MTS 클라이언트는 독립적인 어플리케이션으로 사용되거나 또는 액티브 폼일 수 있다. COM 클라이언트는 어느 것이나 MTS 런타임 환경에서 동작할 수 있다.

액티브X/COM 지원의 강화와 CORBA의 지원

델파이 4는 기존의 COM에 대한 지원을 한층 강화하였다. COM에 대한 강화된 지원 내용을 열거하면 다음과 같은 것들이 있다.

  • COM 객체를 생성해주는 COM 객체 위저드가 추가 되었다.
  • 타입 라이브러리 에디터를 이용해서 IDL에 호환되는 타입 라이브러리 소스를 생성할 수도 있고, 델파이 3에서 문제가 되던 것들을 해결하였다. TypeLib2 규격을 지원한다.
  • VB 데이터 인터페이스를 지원한다.

자세한 내용은 제 5부의 내용들을 참고하기 바란다.

델파이 4에서는 COM 이외에 산업 표준으로 자리잡고 있는 CORBA를 지원하게 되었다. CORBA에 대한 지원 사항을 나열하면 다음과 같은 것들이 있다.

  • CORBA에서 JAVA의 IDL을 지원
  • CORBA 데이터 모듈 위저드 제공
  • CORBA 커넥션 컴포넌트의 제공
  • One-Step CORBA 지원

새로운 인터넷 컴포넌트의 지원

델파이 4에서는 인터넷 컴포넌트가 매우 많이 늘어났다. 우선, 델파이 3에서는 ocx 파일로 제공되던 인터넷 컴포넌트 들이, Net Master에서 제공하는 native 컴포넌트로 제공된다. Net Master의 인터넷 컴포넌트에는 다음과 같은 것들이 있다.

  • TNMDayTime, TNMTime, TNMEcho, TNMFinger, TNMMsg, TNMMsgServ
  • TNMFTP, TNMHTTP, TNMNNTP, TNMSMTP, TNMPOP3, TNMUDP
  • TNMUUProcessor, TNMStrm, TNMStrmServ, TNMPowersock
  • TNMGeneralServer, TNMURL

그 밖의 변화

그 밖에도 델파이 4에서는 다음과 같은 여러 가지 기능이 추가되었다.

  • RC 리소스 스트링 테이블 에디터 (Resource String Table Editor) 지원
  • DFM에디터 추가
  • 리소스 프로젝트 (Resource Project) DLL 위저드 지원
  • OpenHelp로 온라인 Help 시스템

정 리

이번 장에서는 델파이 4에서 새롭게 달라진 내용에 대해서 알아보았다. 자세한 내용에 대한 설명은 앞으로 이 책을 읽어가다 보면 알 수 있게 될 것이다.

델파이 4는 지금까지의 델파이의 여러가지 단점을 보강한 명품이며, 가장 최근의 개발 기법을 활용할 수 있는 여러가지 도구를 지원한다.

그러면, 델파이 4의 세계로 여행을 떠나 보자 !