Delphi 2007 for Win32 리뷰 가이드

By: Jeehoon Imp Park /Korea

Abstract: Delphi 2007의 개요와 새로운 기능들을 소개합니다.

Delphi 2007 리뷰 가이드

2007년 7월

    서론

CodeGear의 Delphi 2007 for Win32를 살펴볼 시간을 내어주신 데 대해 감사드립니다. 이 가이드는 여러분이 리뷰를 집필할 때 Delphi 2007 for Win32의 기능, 특징 등을 충분히 숙지할 수 있도록 소개하기 위해 작성되었습니다. 이 가이드는 세 부분으로 구성되어 있습니다. 첫번째 부분은 Delphi 2007 for Win32에 대한 개괄적인 내용을 알려주고 기본적인 목적과 기능들을 설명합니다. 이 섹션은 Delphi 2007 for Win32의 특징에 대한 기본적인 개요라고 할 수 있습니다. 두번째 부분은 Delphi 2007 for Win32의 주요 신기능들의 요약입니다. 이 부분에서는 Delphi 2007 for Win32을 구입 혹은 업그레이드해야 할 이유가 되는 가장 "최신이며 대단한" 기능들을 설명할 것입니다. 세번째 부분은 이 제품의 광범위한 기능들 중 몇몇을 좀 더 자세히 설명합니다.

    Delphi 2007 for Win32 개요

Delphi 2007 for Win32는 다목적의 RAD 윈도우 애플리케이션 개발툴로, x86 운영체제에서 실행되는 네이티브 바이너리를 생성합니다. 개발자들은 Delphi 2007을 이용하여 거의 모든 종류의 윈도우 바이너리를 빌드할 수 있으며, 여기에는 스탠드 얼론 실행파일(EXE), 동적 링크 라이브러리(DLL), OCX 및 COM 객체, 타입 라이브러리, 제어판 애플릿, 윈도우 서비스 애플리케이션과 콘솔 애플리케이션 등이 포함됩니니다. 개발자들은 풍부하고 복잡한 유저 인터페이스를 가진 클라이언트 애플리케이션이나 단순한 컴맨드라인 애플리케이션을 개발할 수 있습니다. 주요 관계형 데이터베이스 관리 시스템(RDBMS)들과 직접 연결하는 데이터베이스 클라이언트 애플리케이션을 개발할 수도 있고, 애플리케이션 서버나 웹 애플리케이션, 웹 사이트나 웹 서비스(클라이언트 및 서버 양쪽 모두) 개발할 수 있습니다. Delphi 2007 for Win32은 웹 기반 애플리케이션이나 완전한 웹 사이트, 씬 클라이언트, 팻 클라이언트, 이런 클라이언트들이 액세스할 수 있는 애플리케이션 서버, 웹 서비스(클라이언트와 서버 모두), 윈도우 애플리케이션, 액티브X 컨트롤, 모든 네이티브 프로그래밍 언어 프로그램에서 액세스 가능한 코드 라이브러리, 복잡한 임베디드 시스템에서 동작하는 멀티 쓰레드 애플리케이션을 개발할 수 있습니다. 간단히 말하자면, Delphi 2007 for Win32는 윈도우용 애플리케이션을 개발하려는 모든 개발자들의 요구를 충족시킬 수 있습니다. Delphi로 개발하는 데 있어 한계에 이르려면 긴 시간과 매우 큰 노력이 필요합니다.

    사전 설치 소프트웨어

Delphi 2007 for Win32를 설치하려면 다음과 같은 소프트웨어 환경이 먼저 설치되어 있어야 합니다.

  • 마이크로소프트 .NET 2.0 프레임워크
  • 마이크로소프트 .NET 2.0 프레임워크 SDK (Software Development Kit)
  • 마이크로소프트 Direct Access Objects 2.8
  • 마이크로소프트 인터넷 익스플로러 v6.0 SP1
  • 마이크로소프트 XML 코어 서비스 (MSXML) v4.0 SP2
  • 마이크로소프트 비주얼 J# .NET v2.0 재배포 가능 패키지

    최소 시스템 요구 사항

Delphi 2007 for Win32은 다음과 같은 윈도우 플랫폼들에서 설치를 지원합니다.

  • 마이크로소프트 윈도우 2000 (SP4 이상, 보안 업데이트 권장)
  • 마이크로소프트 윈도우 XP 프로페셔널 (SP2 이상)
  • 마이크로소프트 윈도우 비스타 프로페셔널
  • 마이크로소프트 윈도우 서버 2003

Delphi 2007를 설치하기 전에 다음과 같은 환경이 설치되어 있어야 합니다.

  • 윈도우 XP와 서버 2003을 포함한 모든 플랫폼에서 최신 SP 및 보안 업데이트들을 설치할 것을 권장.
  • 마이크로소프트 인터넷 익스플로러 6.0 SP1 이상
  • 전체 설치를 위해서는 약 1.5 GB의 디스크 공간이 필요. 인스톨러는 추가적인 임시 공간도 필요.
  • 펜티엄 II 450MHz 이상 (펜티엄 III 850+ MHz 권장).
  • 256 MB RAM (512 MB 권장)
  • DVD 드라이브
  • VGA 혹은 그 이상의 해상도를 가진 모니터
  • 마우스 혹은 기타 포인팅 장치

노트: 코드기어 Delphi 2007의 영문 버전은 인터넷 익스플로러를 영문 버전의 인터넷 익스플로러 6.0 SP1으로 업데이트합니다. 자국어 버전의 운영체제를 실행중이라면, 윈도우 업데이트를 실행하여 적절한 자국어 버전의 인터넷 익스플로러로 업데이트하도록 하십시오.

    버전: 프로페셔널과 엔터프라이즈

Delphi 2007 for Win32에는 여러 시장 영역들에 맞도록 프로페셔널과 엔터프라이즈의 두가지 서로 다른 버전들이 있습니다.

    프로페셔널

Delphi 2007 for Win32 프로페셔널 버전은 제한된 혹은 로컬 데이터베이스 액세스만을 필요로 하는 다목적 RAD 윈도우 개발툴을 필요로 하는 개발자들을 목적으로 설계되었습니다. 프로페셔널 버전은 완전한 기능의 IDE와 완전한 VCL 및 VCL의 소스 코드를 포함합니다.

프로페셔널 버전은 VCL for the Web의 제한된 버전을 포함하고 있습니다. 동시에 5 연결까지만 가능하며 스탠드 얼론 서버만 가능합니다.

프로페셔널 버전은 일반적으로 독립 소프트웨어 개발 회사(ISV)들과 데이터베이스 액세스가 필요하지 않은 프로페셔널 개발자들, 그리고 일반적인 윈도우 애플리케이션 및 유틸리티를 개발하려 하는 모든 개발자들에게 매력적일 수 있습니다.

    엔터프라이즈

Delphi 2007 엔터프라이즈 버전은 기업 레벨의 RDBMS데이터를 액세스할 필요가 있는 개발자들을 위해 설계되었습니다. 엔터프라이즈 버전은 다음과 같은 8가지의 데이터베이스 엔진에 대한 로컬 및 원격 액세스를 제공합니다.

  • 인터베이스 7.5.1 and 2007
  • 오라클 10g
  • 마이크로소프트 SQL 서버 2000 및 2005
  • DB2 UDB 8.X
  • MySQL 4.0.x 및 5.0.x
  • 인포믹스 9x
  • 사이베이스 12.5
  • 어댑티브 사이베이스 애니웨어 9

추가로, 엔터프라이즈 버전에는 스탠드 얼론 뿐만 아니라 ISAPI 혹은 아파치 기반의 웹 애플리케이션을 개발할 수 있으며, 연결 개수에도 제한이 없는 풀 버전의 VCL for the Web이 포함되어 있습니다.

엔터프라이즈 버전은 일반적으로 기업 데이터를 액세스해야 하는 기업 개발자들과 데이터베이스 지원이 필요한 독립 소프트웨어 개발 회사(ISV), 그리고 엔터프라이즈 레벨의 개발자들을 지원해야 하는 컨설턴트 및 부가가치 재판매 기업(VAR)들에게 매력적일 수 있습니다.

    설치

Delphi 2007는 DVD로부터의 설치 뿐만 아니라 웹으로부터의 다운로드로도 설치할 수 있습니다. DVD로부터의 설치는 기존의 방법과 동일합니다. 컴퓨터에 DVD를 넣고 설치 애플리케이션을 실행합니다.

반면, 인터넷 다운로드(전자 소프트웨어 배포, ESD) 방식에서는, 고객은 작은 SETUP.EXE 스텁 애플리케이션을 받게 되며, 이 파일을 실행하면 필요한 바이너리들을 인터넷을 통해 다운로드하고 Delphi 2007 for Win32를 설치하게 됩니다.

    통합 개발 환경 (IDE)

Delphi 2007 for Win32가 실행된 후 개발자들이 보게 되는 것은 통합 개발 환경, IDE입니다. IDE는 개발자들이 애플리케이션을 개발하기 위해 필요한 모든 기능들을 단일 애플리케이션에서 제공합니다. IDE는 개발자들이 애플리케이션을 빠르고 쉽게 개발하기 위한 에디터, 폼 디자이너, 프로젝트 매니저, 디버거, 그리고 수많은 다른 다른 기능들을 통합하여 개발자들이 필요한 모든 기능들이 통합된 단일 환경에서 모든 작업을 할 수 있게 해줍니다.

    IDE 소개

IDE는 윈도우 사용자에게 익숙한 유저 인터페이스를 제공합니다. 기본적인 기능은 드롭 다운 메뉴와 커스터마이즈 가능한 툴바의 버튼들을 통해 제공됩니다. IDE의 다양한 윈도우들 중 많은 것들은 도킹 가능하여 개발자들이 자신의 작업 환경을 커스터마이즈 할 수 있습니다. 데스크탑 레이아웃을 저장할 수 있으며, 디버깅과 같이 특정한 목적을 위해 지정할 수도 있습니다. IDE 자체 내에서 애플리케이션을 실행하고 디버깅할 수 있습니다. 개발자들은 IDE와 자신의 애플리케이션 및 프로젝트의 거의 모든 부분에 대해 옵션을 설정할 수 있습니다. IDE 전체가 효율적이고 빠른 개발을 위해 커스터마이즈가 가능하도록 설계되었습니다.

    코드 작성 – 코드 에디터

Delphi 2007 for Win32의 코드 에디터는 단순한 텍스트 에디터가 아니라 개발자의 생산성을 높이기 위한 타이핑을 위한 광범위한 지원과 코드 생성을 위한 수많은 도움 기능들을 제공합니다. 에디터는 탭 윈도우 안에 있으므로 동시에 여러 파일을 열고 편집할 수 있습니다. 코드 문법 하이라이트 기능은 코드의 각 부분들이 무엇인지 분명하게 해주어 주석, 문자열, 식별자, 키워드, 그리고 예약어 등이 쉽게 알아볼 수 있도록 각각의 색깔로 나타납니다. 코드 컴플리션은 개발자가 타이핑하는 내용에 따라 가능한 식별자들에 대한 힌트를 제공합니다. 라이브 템플릿을 이용하면 몇 번의 키 타이핑만으로 그에 해당하는 코드 블록을 자동으로 표시하고 적절한 부분을 채워넣을 수 있습니다. 라이브 템플릿은 단순한 XML 파일이므로, 개발자들은 빠르고 쉽게 자신만의 템플릿을 만들 수 있습니다. 또한 라이브 템플릿은 완벽하게 스크립트 가능하므로, 개발자들이 코드 에디터에서 원하는 거의 모든 것을 할 수 있게 해줍니다. 클래스 컴플리션은 클래스 선언을 위한 뼈대 구현을 자동으로 생성해줍니다. 리팩토링 지원은 개발자들이 자신의 코드를 더 읽기 쉽고 체계적으로 만들 수 있게 도와줍니다. 코드 인사이트는 주어진 루틴에 필요한 파라미터들을 보여주는 팝업 윈도우를 제공합니다. 에러 인사이트는 코드의 문법 오류가 있는 부분의 아래에 밑줄을 보여줌으로써 즉각적으로 반응합니다. 헬프 인사이트는 코드에 포함된 어떤 식별자에 대해서도 기본적인 설명과 선언 정보를 보여주는 팝업 윈도우를 제공합니다. 블록 컴플리션은 모든 코드 블록이 정확하게 열리고 닫혔는지 확인해줍니다. 예를 들어, 개발자들이 begin 타이핑하고 엔터 키를 치면, 그에 해당하는 end 자동으로 추가되어 코드가 정확하게 구성될 있도록 해줍니다.

Hide image
CodeEditor

“문맥상응(Context-sensitive)” 에 기반하여 코드 전반을 쉽게 네비게이션 할 수 있습니다. 식별자를 클릭하면 해당 식별자의 선언이나 구현으로 이동할 수 있습니다. 스택 기반의 모델을 이용하여 개발자들은 코드 전반에 걸쳐 뒤나 앞으로 이동할 수 있습니다. 단일 핫키로 클래스 메소드의 선언과 구현 사이를 오갈 수 있습니다. 인텔리마우스 스크롤링 지원 덕분에 대규모 파일도 쉽게 이동하며 살펴볼 수 있습니다. 라인 번호 기능은 현재 위치 정보를 빠르게 알 수 있도록 해줍니다. 북마크를 지정하면 한 애플리케이션의 코드에서 특정 위치로 빠르게 돌아갈 수 있습니다. 자주 사용되는 타이핑 작업을 실행하기 위해 매크로 기능으로 타이핑을 기록해둔 후 다시 재실행할 수 있습니다.

전반적으로, 코드 에디터는 코드 작업을 쉽고 능률적이며 효과적으로 할 수 있도록 설계되어 있습니다.

    비주얼한 유저 인터페이스 디자인 – 폼 디자이너

Hide image
VisualGuidelines

코드 작성 외에 개발자들이 많은 시간을 소모하는 것은 유저 인터페이스를 생성하기 위해 폼에 컴포넌트들을 배치하는 작업일 것입니다. Delphi 2007 IDE는 바로 그런 목적을 위한 강력한 폼 디자이너를 제공합니다. Delphi 2007 for Win32의 폼 디자이너는 하나의 윈도우처럼 보여지므로 디자인 타임에 폼을 What-You-See-Is-What-You-Get (WYSIWG) 방식으로 배치할 수 있습니다. 개발자들은 완벽하게 설정 가능한 툴 팔레트로부터 컴포넌트들을 드래그&드롭할 수 있으며 컴포넌트를 원하는 대로 배열할 수 있습니다. 컴포넌트들은 비주얼 가이드라인(컴포넌트를 폼에서 드래그할 때 다른 컴포넌트들 사이에서 위치를 조절하거나 정렬시키기 위해 보여주는 컬러 라인)을 이용하여 쉽게 위치를 잡고 정렬할 수 있습니다.

일단 컴포넌트들을 폼에 놓고 나면, 오브젝트 인스펙터를 이용하여 그 속성들을 설정할 수 있습니다. 오브젝트 인스펙터는 해당 컴포넌트의 모든 속성들과 이벤트들을 나열해줌으로써 개발자들이 빠르고 쉽게 컴포넌트의 모양을 조작할 수 있게 해주고 그 컴포넌트에 발생할 수 있는 다양한 이벤트들에 코드를 연결할 수 있게 해줍니다. 예를 들어, 오브젝트 인스펙터를 이용하여 모든 컴포넌트의 위치와 크기를 지정할 수 있습니다. 툴바에 버튼을 추가하거나 에디트 박스의 텍스트를 변경하거나 폼의 배경의 컬러를 변경할 수도 있습니다. 또한 해당 컴포넌트에 특정 이벤트들(OnClick, OnMouseOver, OnKeyDown 등)이 발생할 때 코드가 실행되도록 할 수도 있습니다.

Hide image
ToolPallete

툴 팔레트에는 IDE에 설치된 모든 VCL 컴포넌트들이 나타나 있습니다. 기본적으로 툴 팔레트는 Delphi 2007 for Win32의 모든 표준 컴포넌트들을 포함합니다. 또한 개발자들은 서드파티 컴포넌트를 추가할 수도 있습니다. 툴 팔레트는 완벽하게 설정 가능합니다. 컴포넌트들은 원하는 대로 그룹을 지을 수 있습니다. 필터 서치 기능을 이용하면 빠르게 원하는 컴포넌트를 찾을 수 있습니다. 컴포넌트를 선택하여 폼에 놓는 일은 마우스 혹은 키보드로도 할 수 있습니다.

    애플리케이션 항목 관리 – 프로젝트 매니저

많은 폼들과 코드 파일들을 포함하는 애플리케이션은 쉽게 복잡해집니다. 많은 애플리케이션들은 여러 바이너리들과 프로젝트들로 구성되어 있습니다. Delphi 2007 for Win32의 프로젝트 매니저는 개발자들이 자신의 프로젝트들을 바로 IDE 안에서 관리할 수 있게 해줍니다. 프로젝트 매니저는 파일들과 폼들을 프로젝트로 체계적으로 구성하고, 또 프로젝트들을 프로젝트 그룹으로 구성합니다. 개발자들은 새 폼과 파일들을 생성하고, 기존의 폼과 파일들을 프로젝트에 추가하고, 프로젝트 그룹에 새 프로젝트를 추가할 수 있습니다. 프로젝트 매니저 안에서 프로젝트를 직접 컴파일하고 빌드할 수 있습니다. 파일들과 폼들은 IDE에서 열릴 수 있습니다. 프로젝트들을 재배열하여 그 애플리케이션에 필요한 순서대로 컴파일되도록 할 수 있습니다. 파일들이나 폼들의 관리와 관련하여 개발자가 필요한 모든 작업들을 프로젝트 매니저 내에서 처리할 수 있습니다.

Hide image
ProjectManager

    오동작의 수정 – 디버거

모든 개발 작업은 문제에 부딪히게 마련입니다. 버그가 발생하면, 개발자는 자신의 애플리케이션의 내부 동작을 들여다보고 프로그램이 실행되는 동안 무슨 일이 일어나는지 살펴볼 수 있어야 합니다. Delphi 2007 for Win32는 애플리케이션이 실행되는 동안 깊이 액세스하고 살펴볼 수 있게 해주는 IDE에 통합된 디버거를 제공합니다.

Hide image
Debugger

애플리케이션이 IDE 안에서 실행되면, 디버거가 동작을 시작하고 개발자가 실행의 과정을 제어할 수 있게 해주며, 전체 프로세스에 대한 모든 정보를 액세스하게 됩니다. 개발자들은 자신의 코드 어디에든 브레이크 포인트를 지정하여 실행을 중지시킬 수 있습니다. 일단 실행이 중지되면, 디버거는 범위 내에 있는 모든 정보를 액세스할 수 있게 해줍니다. 개발자들은 어떤 변수든지 그 값을 추적하기 위해 와치를 설정할 수 있습니다. 코드를 라인 단위로 한 라인씩 실행하며 언제든지 변수들의 값을 점검할 수 있습니다. 디버거는 현재의 호출 스택, 모든 로드된 모듈들, 그리고 디버깅 중인 애플리케이션에 연관된 모든 쓰레드들의 상태를 보여줍니다. 더 자세한 정보가 필요하다면 디버거는 CPU 레벨 뷰에서 실행되고 있는 정확한 어셈블리를 보여줄 수 있습니다.

데이터의 액세스 – 데이터 익스플로러

많은 Delphi 애플리케이션에서는 데이터 액세스가 필요합니다. IDE에는 데이터 익스플로러가 포함되어 있습니다. 이것은 데이터베이스 데이터를 빠르고 강력하게 액세스할 수 있는 기능을 제공합니다. 개발자는 데이터 익스플로러 안에서 Delphi의 데이터베이스 액세스 기술인dbExpress에서 지원되는 RDBMS로 연결할 수 있습니다. 연결이 된 후에는 데이터 익스플로러로 해당 데이터베이스의 데이터와 메타데이터를 살펴볼 수 있습니다. 연결과 데이터가 사용 가능하게 되면 연결들과 테이블들은 데이터 익스플로러에서 드래그해서 폼 디자이너에 드롭 함으로써 쉽게 데이터 액세스 컴포넌트를 폼에 생성할 수 있습니다.

    VCL (Visual Component Library)

Delphi 2007 for Win32로 거의 모든 종류의 애플리케이션을 개발할 수 있지만, 그 가장 주된 강점의 핵심은 윈도우 클라이언트 혹은 스탠드 얼론 데스크탑 애플리케이션의 개발에 있습니다. 이를 위해, Delphi 2007 for Win32는 Visual Component Library (VCL)라고 불리는 애플리케이션 개발 프레임워크를 제공합니다. VCL은 윈도우 애플리케이션 개발을 위한 광범위한 Win32 API를 포괄합니다. VCL은 컴포넌트 기반으로, 이것은 개발자들이 디자인타임에 폼 디자이너에서 조작할 수 있는 컴포넌트를 개발할 수 있도록 설계되었다는 것을 의미합니다.


Hide image
FormDesignerWithComponents

Delphi 2007 for Win32에서 VCL은 모든 윈도우 애플리케이션 개발을 위한 기반입니다. VCL은 윈도우 기반의 윈도우를 TForm 클래스로 캡슐화 하여 제공합니다(오랜 기간 동안의 관습으로 오브젝트 파스칼의 클래스는 ‘T’자로 시작합니다). IDE의 폼 디자이너는 개발자들이 유저 인터페이스를 디자인할 수 있는 “캔버스”를 제공합니다. VCL은 모든 표준 윈도우 UI 컨트롤들을 TButton, TEdit, TLabel, TCheckbox와 같은 컴포넌트로 포장하고 있습니다. 또한 VCL 프레임워크는 개발자들이 생각할 수 있는 거의 모든 다른 비주얼 컴포넌트를 개발에 사용할 수 있게 해줍니다. (따라서, 상용, 프리웨어, 오픈소스 등 Delphi 개발자들이 이용할 수 있는 광범위하고 풍부한 기능들의 컴포넌트들을 제공하는 서드파티 개발자들의 거대한 커뮤니티가 존재하게 됩니다.)

VCL은 여러 해 동안 여러 다른 플랫폼들로 적용되면서 대단히 견고한 프레임워크라는 것이 검증되었습니다. VCL은 16비트 윈도우 환경에서 시작되었지만 곧 32비트로 이전하여 윈도우 95를 지원하게 되었습니다. 또한 리눅스와 .NET을 지원하도록 적용되어 왔습니다. 심지어는 .NET 컴팩트 프레임워크 애플리케이션을 개발하기 위해 VCL을 사용할 수도 있습니다.

    Delphi 2007 for Win32에서 새로워진 점들

업그레이드된 제품에서 리뷰어들이 가장 흥미를 가지는 부분은 업그레이드에서 새로워진 특징들입니다. 이 섹션에서는 Delphi 2007 for Win32에서 지난 버전 이후로 새로워진 특징들에 대해 살펴보겠습니다.

    비스타 지원

비스타 운영체제의 출시로 비스타의 새로운 기능들을 지원하는 수많은 새로운 API들이 추가되었습니다. Delphi 2007 for Win32는 이런 새로운 비스타 API들을 직접적으로 이용할 수 있게 한 최초의 툴입니다. 새 기능들을 VCL 컴포넌트들과 속성들로 래핑함으로써 ,Delphi는 개발자들에게 비스타의 새로운 기능들의 많은 부분들을 즉시적으로 그리고 쉽게 액세스할 수 있게 해줍니다.

비스타 지원을 포함하여 개발된 애플리케이션은 오직 비스타에서만 예상되는 기능 그대로 완벽하게 동작할 수 있습니다.

    글래스 효과

Delphi 2007 for Win32는 이제 윈도우 에어로(Aero) 인터페이스를 지원합니다. VCL에서는 폼의 테두리에 글래스 프레임을 만들어주는 속성들을 TForm 추가했습니다. 이렇게 해서 네이티브 윈도우 개발자들은 자신의 네이티브 애플리케이션에서 기능을 활용할 있습니다. 기능을 구현하는 방법은 대단히 쉬워서, TForm.GlassFrame.Enabled 속성을 True로 설정하기만 하면 됩니다. 개발자들은 폼의 바깥쪽 주변의 글래스 프레임의 너비를 지정할 수도 있으며, SheetOfGlass 속성을 True 설정하여 전체에 글래스 효과를 수도 있습니다.

글래스 효과를 사용하는 애플리케이션이 비스타가 아닌 시스템에서 실행되면 글래스 효과는 아무 동작도 하지 않습니다.

    비스타 다이얼로그들

새 비스타 운영체제에서는 또한 운영체제에 포함된 표준 다이얼로그들도 강화되었습니다. Delphi는 이런 새로운 다이얼로그들을 TFileOpenDialog, TFileSaveDialog, TTaskDialog 컴포넌트로 캡슐화했습니다. 이런 컴포넌트들은 새로운 비스타 다이얼로그 컨트롤들에서 제공하는 기능들을 캡슐화한 것들로서, Delphi 개발자들이 매우 쉽게 이들 다이얼로그들을 자신의 애플리케이션에 통합할 있게 해줍니다.

이 기능은 오직 비스타 기반 시스템에서만 지원되므로, 이런 새로운 다이얼로그들을 사용하는 애플리케이션이 비스타가 아닌 시스템에서 실행되고 새 다이얼로그를 호출하면 특수한 예외가 발생합니다.

    AJAX와 VCL for the Web

Delphi 2007 for Win32에서는 VCL에 새로운 부분으로 VCL for the Web이 추가되었습니다. AtoZed Software의 Intraweb 기술을 기반으로 한 VCL for the Web은 개발자들이 (웹 사이트가 아닌) 웹 애플리케이션을 표준 Delphi 클라이언트를 개발하는 방식과 동일한 방식으로 개발할 수 있게 해줍니다. VCL for the Web은 VCL for Win32와 매우 비슷하게 동작하는 컴포넌트 기반의 기술입니다. 개발자들은 폼에 컴포넌트를 드롭하고 속성들을 설정한 후 일반적인 Delphi 폼에서처럼 웹 페이지를 디자인할 수 있습니다. 하지만, 이 VCL for the Web 애플리케이션이 실행되면 이 애플리케이션은 브라우저에서 실행됩니다.

VCL for the Web은 웹 사이트가 아닌 웹 애플리케이션을 생성하기 위해 특별히 맞춰진 최초이자 유일한 툴입니다. 이 기술은 현재 시장에서 구할 수 있는 어떤 다른 툴보다 더 빠르고 더 쉽게 웹 애플리케이션을 개발할 수 있게 해줍니다. VCL for the Web은 강력한 HTML 엔진을 기반으로 하므로 개발자들이 일반적인 윈도우 애플리케이션을 디자인하는 것과 동일한 방법으로 웹 애플리케이션을 디자인할 수 있게 해줍니다. 드래그&드롭 접근 방식을 이용함으로써, 개발자들은 컨트롤들을 폼(HTML 페이지와 폼이 합쳐진 것이라고 볼 수 있습니다)에 드롭하고 이벤트를 만들고 속성을 설정할 수 있습니다.

VCL for the Web은 또한 자동으로 비동기 XML 및 Javascript 기술(AJAX)을 광범위하게 활용합니다. VCL for the web은 가능한 경우에는 자동으로 필요한 AJAX 코드를 애플리케이션에 삽입하여 클라이언트 측 처리의 이점을 이용할 수 있게 해줍니다. 단순히 디자인타임에 Async 이벤트에 코드를 연결하기만 함으로써 개발자들은 Delphi 코드만으로 AJAX 기반 이벤트를 클라이언트 브라우저에 생성할 수 있습니다.

    DBX4

데이터베이스 지원과 데이터로의 컴포넌트 기반 액세스는 Delphi의 첫 등장 때부터 Delphi의 특징들 중 핵심적인 부분이었습니다. 오랜 전통을 이어, Delphi 2007 for Win32에는 새로운 기반 데이터 액세스 아키텍처인 dbExpress 4, DBX4가 포함되어 있습니다. 이전의 dbExpress 3와 컴포넌트 레벨에서 완벽하게 하위 호환되는 DBX4는 완전히 새로 구축된 Delphi 데이터베이스 액세스 레이어로서, 동일한 소스로 데이터를 다루는 통일된 수단을 제공합니다.

DBX4는 데이터베이스 드라이버를 개발하는 과정을 대단히 단순화시켜주므로, Delphi 개발자들이 더 많은 범위의 데이터베이스 서버들을 액세스할 수 있도록 해줍니다. 완전히 오브젝트 파스칼로 작성된 DBX4는 네이티브 및 매니지드 코드 사이에서 크로스 플랫폼 개발이 가능하게 해주며, 연결 풀링(connection pooling)과 명령 추적(command tracing) 기능도 포함하고 있습니다. 추가로, DBX4는 개발자들에게 델리게이트 모델을 공개하여 데이터 액세스 과정에 끼어 들어 데이터의 읽기 및 쓰기 과정에 추가 기능을 할 수 있도록 해줍니다. 또한 DBX4는 이전 버전에 비해 현저하게 성능이 높아졌습니다.

DBX4는 저수준의 아키텍처이므로, Delphi 2007 for Win32 사용자는 애플리케이션 수준에서는 거의 차이점을 느낄 수 없습니다. dbExpress 컴포넌트들, 즉 데이터를 액세스하고 데이터 컨트롤들에 데이터를 제공하는 VCL 컴포넌트들은 그다지 변경되지 않았습니다. 그 대신, DBX4 아래의 코드는 더 효율적이고 확장성 있게 변경되었습니다. 일반적인 사용자들은 큰 변화를 느끼지 못하겠지만, 속도 개선과 데이터에 대해 더 폭넓은 액세스를 할 수 있게 된 것은 분명히 알아챌 것입니다.

    Delphi 2007 for Win32의 주요 기능들

    통합 개발 환경

    코드 에디터

Delphi 2007 for Win32의 코드 에디터는 코드 개발을 위한 강력한 환경입니다. 이 코드 에디터에는 코드를 작성하는 지겨운 작업들을 줄여주는 여러 기능들이 포함되어 있어, 개발자들이 빠르게 적절한 메소드 이름을 찾고, 템플릿으로 공통 코드 블록을 삽입하고, 코드 에러를 쉽게 알아볼 수 있게 해줍니다.

라이브 템플릿

라이브 템플릿(Live Templates)은 개발자들이 몇 번의 키 타이핑만으로 공통 코드 블록을 빠르고 쉽게 작성할 수 있게 해주는 코드 에디터 기능입니다. 라이브 템플릿은 자기 설명적(self-describing)이고 지능적인 코드 삽입 기능을 제공하며, 템플릿의 변수 부분들을 인터랙티브하게 오갈 수 있습니다.

라이브 템플릿은 짧은 기호를 큰 코드 블록으로 확장할 수 있게 해주며, 개발자가 직접 필요한 대로 커스터마이즈할 수도 있습니다.

Hide image
IMAGE108

그림 8 – 라이브 템플릿이 for 루프를 자동으로 만들어준다

위의 그림 8에서는, 개발자는 단지 ‘for’라고 타이핑하고 스페이스 바를 누르기만 함으로써 해당 템플릿을 호출하였습니다. 그러면 템플릿이 나타나고 코드 템플릿을 채우기 위한 입력 지점을 알려줍니다. 개발자는 탭 키를 눌러 한 입력 지점으로부터 다른 입력 지점으로 이동할 수 있으며, 이동한 지점에서 필요한 정보를 채워넣을 수 있습니다. 이 라이브 템플릿 시스템은 또한 각각의 입력 지점에서 필요한 정보에 대한 힌트도 제공합니다.

라이브 템플릿은 템플릿이 어떻게 동작할지를 지정하는 단순한 XML 파일로 되어있습니다. 따라서 개발자들은 특정 목적을 위한 자신만의 라이브 템플릿을 쉽게 만들어낼 수 있습니다. 또한 라이브 템플릿은 스크립트 엔진을 이용할 수 있으므로 거의 모든 기능을 수행할 수 있습니다.

코드 컴플리션

코드 컴플리션(Code Completion)은 개발자들이 클래스를 이용하려고 할 때 그 클래스에 대한 모든 정보를 제공하는 코드 에디터 기능입니다. 더불어 현재 코드의 범위 내에서 선언된 식별자들에 대한 모든 정보도 제공합니다.

Hide image
CodeCompletion

그림 9 – 코드 컴플리션은 복잡한 식별자를 쉽게 완성할 수 있게 해준다

중요한 애플리케이션들의 대부분은 많은 식별자들을 포함하게 되며, 그런 식별자들은 설명적인 의미를 가지고 있어 길이가 긴 경우가 많습니다. 코드 컴플리션은 그런 식별자들을 빠르고 쉽게 타이핑할 수 있게 해주며, 동시에 정확한 식별자가 입력될 수 있게 해줌으로써 타이핑 실수도 줄여줍니다.

그림 9에서 보여주는 것처럼, 코드 컴플리션 기능이 호출되면 개발자가 타이핑을 시작한 식별자를 쉽게 찾아낼 수 있습니다. 선택한 후 엔터 키를 누르기만 하면 코드 에디터에 식별자 전체가 추가됩니다.

이에 더하여, 코드 컴플리션은 클래스나 레코드의 적절한 메소드와 필드를 빠르게 찾을 수 있게 해주어 코드 작성을 도와줍니다.

Hide image
CodeCompletionMethod

그림 10 – 코드 컴플리션이 CodeCompletion TButton의 모든 메소드들을 나열해준다

그림 10에서, 개발자는 Button1 식별자를 입력하고 마침표를 타이핑한 후 CRTL+SPACE 키를 누름으로써 코드 컴플리션을 호출했습니다. 그러자 코드 컴플리션이 TButton 클래스에 속한 모든 메소드와 필드들을 나열해주었습니다. 개발자는 원하는 메소드나 필드를 계속 타이핑할 수도 있고( 경우 타이핑하는 내용에 따라 코드 컴플리션 리스트가 필터됨), 혹은 원하는 항목을 찾기 위해 리스트를 스크롤해볼 있습니다. 원하는 항목을 찾아낸 후에는 단지 엔터 키를 누르기만 하면 선택된 항목을 코드 에디터에 추가할 수 있습니다.

블록 컴플리션

블록 컴플리션(Block Completion)은 코드 블록이 항상 정확히 닫히도록 도와줌으로써 코드의 구조를 개선할 수 있도록 도와줍니다. 예를 들면, Delphi에서는 모든 begin에는 그에 해당하는 end 문이 따라와야 합니다. 모든 case 문도 end 필요로 합니다. 블록 컴플리션은 이런 문들이 개발자의 노력 없이도 정확하게 닫히도록 해줍니다. 개발자가 다음과 같이 타이핑하면,

begin<엔터 키를 누름>

블록 컴플리션은 end 추가하여 블록을 닫고 커서를 다음과 같이 ‘|’ 위치에 이동시킵니다.

begin

|

end;

에러 인사이트

에러 인사이트(Error Insight)는 개발자에게 코드 에디터에서 문법 에러가 있음을 비주얼하게 보여줍니다. 에러 인사이트는 코드의 문제를 인식하여 맞춤법 검사기에서의 “붉은 구불구불한 선” 기능과 비슷하게 개발자에게 알려줍니다.

Hide image
ErrorInsight

그림 11 – 에러 인사이트가 코드 에러를 강조해준다

헬프 인사이트

헬프 인사이트(Help Insight)는 식별자에 대한 정보를 알려주는 제공해주는 “툴팁” 형식의 팝업을 보여줍니다. 이런 툴팁은 개발자의 코드에서 세 개의 연속된 슬래시(///)로 주석 처리된 XML 태그로 정의할 수 있습니다. 개발자들은 자신의 코드를 주석 처리하고 그 주석이 IDE에 의해 처리되어 해당 식별자 위에 마우스 커서가 위치했을 때 툴팁 헬프가 나타나도록 할 수 있습니다. 개발자는 툴팁 자체의 스타일을 CSS(Cascading Style Sheets)를 이용하여 형식을 지정할 수 있습니다.

Hide image
Click to see full-sized image

그림 12 – 헬프 인사이트를 위해 형식을 바르게 지정한 주석과 그 결과로 나타나는 헬프 인사이트 툴팁. 클래스 선언 위의 텍스트가 툴팁 윈도우의 텍스트와 일치한다.

    비주얼 디자인 관련 기능들

    폼 디자이너

Delphi의 폼 디자이너(Form Designer)는 Delphi 개발자에게 비주얼하고 이벤트 기반의 개발 인터페이스를 제공합니다. 폼 디자이너는 폼 위의 컴포넌트들을 비주얼하게 조작할 수 있게 해줍니다. 개발자는 툴 팔레트로부터 컴포넌트를 드래그&드롭하고 폼의 디자인을 조절하여 디자인타임에 유저 인터페이스를 만들어낼 수 있습니다. 컴포넌트들은 런타임에서 동작하는 것과 매우 비슷하게 동작하고 보여집니다. 오브젝트 인스펙터를 이용하여 컴포넌트들의 속성들을 설정하여 해당 컴포넌트를 조작할 수 있으며, 속성이 변경되는 즉시 비주얼하게 반영됩니다. 폼 디자이너 자체도 디자인을 위한 그리드나 비주얼 가이드라인 등 폼에 컴포넌트들의 배열하는 작업을 단순하고 쉽게 해주는 중요한 디자인 도움 기능을 제공합니다.

비주얼 가이드라인

많은 애플리케이션들은 수많은 컨트롤들을 가진 폼들을 포함하고 있으며, 그로 인해 그 컨트롤들을 배열하는 일은 개발자들에게 어려운 작업들 중 하나입니다. 레이블은 자신이 설명하는 다른 컨트롤과 정확하게 배열되어야 하는 경우가 종종 있습니다. 잘 디자인된 폼에서는 컨트롤들이 적절하게 배열되어야 하며 무작위로 흩어져 있어서는 안됩니다.

Delphi의 폼 디자이너는 컨트롤들과 컨트롤 안의 텍스트가 정확히 배열되었는지를 보여주는 비주얼 가이드라인(Visual Guidelines) 기능을 제공합니다. 이 기능은 개발자들이 단지 마우스로 컨트롤을 움직이는 것만으로 폼을 빠르고 쉽게 완성할 수 있게 해줍니다.

Hide image
VisualGuidelinesText

그림 13 – 비주얼 가이드라인을 이용하여 레이블들과 에디트 박스들을 배열

비주얼 가이드라인은 세 가지 타입의 배열 표시를 제공합니다. (위의 그림 13를 보십시오). 파란색 라인은 컴포넌트의 Top, Bottom, Left, Right 위치가 같다는 것을 표시합니다. 진홍색 라인은 컨트롤 내부의 텍스트의 배열을 표시합니다. 그리고 옅은 회색 라인은 컨트롤들이 자신의 MarginPadding 속성에 따라 정확히 배치되었다는 것을 표시합니다.

오브젝트 인스펙터

오브젝트 인스펙터는 두 가지 기능을 가지고 있습니다. 컨트롤의 속성 값을 보여주고 설정할 수 있게 해주며, 또한 컴포넌트에 발생하는 이벤트와 그 이벤트에 연결된 코드 사이의 연결 관계를 제공합니다.

Hide image
ObjectInspector

그림 14 – 오브젝트 인스펙터가 TButton 컴포넌트의 속성들을 보여준다

오브젝트 인스펙터는 동적이며 자동으로 선택된 컨트롤의 속성들을 보여줍니다. 하나 이상의 컨트롤이 선택되면 모든 컨트롤들에 공통된 속성들을 보여줍니다. 오브젝트 인스펙터는 기본 값으로부터 변경된 속성들을 볼드체로 보여줌으로써 표시해줍니다. 속성들을 알파벳 순서 혹은 분류별로 정렬할 수 있습니다. 추가로, 오브젝트 인스펙터의 모양은 완전히 스타일 가능합니다.

    프로젝트 매니저

애플리케이션 프로젝트와 코드, 파일들, 그리고 그와 함께 필요한 다른 리소스들을 관리하는 일은 모든 개발툴에 있어 핵심적인 부분입니다. Delphi는 Delphi 개발자들이 코드 파일들, 폼 파일들, 리소스들, 그리고 다른 항목들을 하나의 개발 프로젝트로 관리할 수 있게 해주는 강력한 프로젝트 매니저를 제공합니다.

프로젝트 매니저는 프로젝트의 계층적인 뷰를 제공합니다. 루트는 하나 혹은 그 이상의 프로젝트들을 포함하는 프로젝트 그룹입니다. 하나의 프로젝트 그룹에 속한 프로젝트들은 그 사이의 의존 관계를 고려하여 특정 순서대로 재정렬될 수 있습니다. 한 프로젝트 그룹 내의 모든 프로젝트들은 프로젝트 매니저에서 나타나는 순서대로 컴파일할 수 있습니다.

    디버거

Delphi 2007에는 완벽하고 완전한 기능을 갖춘 디버거가 통합되어 있습니다. Delphi의 디버거는 애플리케이션의 실행 동안 완벽한 제어를 할 수 있게 해주며, 실행되고 있는 머신 코드에 대해 모든 정보를 제공합니다. 개발자들은 모든 변수들의 상태를 추적할 수 있으며, 코드 라인들을 한 라인씩 진행하면서 실행을 제어할 수 있습니다. 디버거가 브레이크포인트에서 실행을 일시 중지하면, 범위 내의 모든 변수들을 빈틈없이 쉽게 살펴볼 수 있습니다. 항상 스택 추적(stack trace) 기능을 사용할 수 있으며, 일반적으로는 스택에 대한 디버그 정보를 살펴볼 수 있어 개발자들이 역 방향으로 추적하여 어떻게 특정 지점이나 상태에 도착했는지 추적할 수 있게 해줍니다. 요약하자면, Delphi의 디버거는 문제를 찾으려 할 때 실행중인 애플리케이션의 동작을 들여다보는 데에 개발자에게 필요한 모든 기능과 자유를 제공합니다.

브레이크포인트

디버깅 기법들 중 가장 일반적이고 1차적인 방법은 브레이크포인트(breakpoint)를 이용하는 것입니다. 브레이크포인트는 특정 지점에서 프로그램의 실행을 일시적으로 정지시키도록 디버거에게 지시하는 신호입니다. 디버거가 브레이크포인트에서 코드 실행을 정지시켰을 때 애플리케이션이 종료되거나 어떤 다른 방법으로 프로그램의 실행을 끝내지 않습니다. 대신, 디버거는 실행을 일시 정지시키고 개발자들이 애플리케이션의 동작과 상태를 들여다볼 수 있도록 해줍니다. 개발자가 애플리케이션의 상태를 볼 수 있는 방법들에 대해서는 아래에서 설명합니다.

Hide image
BreakPointWithExpanded ToolTip

그림 15 – 디버거가 브레이크포인트에서 중지시킨 상태에서 디버거 툴팁을 펼쳐놓았다.

펼칠 수 있는 와치

디버거 와치(watch)는 개발자들이 코드의 특정 항목을 계속 지켜보기 위해 사용할 수 있는 애플리케이션 내부의 특정 변수들에 대한 참조입니다. 디버거는 지정한 모든 와치 변수들의 상태를 계속 추적하고 보고하게 됩니다. Delphi 2007은 펼칠 수 있는(expandable) 와치를 제공하는데, 이것은 추적되고 있는 복잡한 항목들의 값을 “파고 내려갈” 수 있게 하기 위한 것입니다.

위의 그림 15는 객체에 대한 내부 정보를 보여주기 위해 펼쳐진 툴팁 와치를 보여줍니다.

CPU 뷰

디버거의 CPU 뷰는 개발자에게 애플리케이션의 머신 코드 레벨의 완벽한 정보를 제공합니다. 개발자는 CPU 뷰 안에서 애플리케이션 내부의 모든 저수준 정보들을 살펴볼 수 있으며, 여기에는 레지스터들의 상태와 현재 실행중인 실제 ASM 코드, 애플리케이션의 정확한 바이너리 코드, 그리고 FPU의 상태 등이 포함됩니다. 이 레벨에서는 어떤 정보도 숨겨지지 않습니다. 전체 CPU 윈도우는 그림 17에서 보는 것과 같지만, CPU 뷰의 각각의 사각 영역들은 개별적으로 보이게 하거나 도킹할 수도 있습니다.

Hide image
Click to see full-sized image

그림 16 – CPU 뷰에서 애플리케이션에 대한 완벽한 저수준 정보들을 보여주고 있다

    통합된 유닛 테스팅

테스트 주도 개발(Test-driven Development; TDD)은 최근 몇 년 동안 점점 더 많은 인기를 끌고 있으며, 유닛 테스팅은 그 방법론 중에서 주요한 부분입니다. Delphi는 DUnit을 위한 유닛 테스트를 작성하는 과정을 자동화해줌으로써 유닛 테스팅을 지원합니다 (DUnit은 Delphi 코드에 대해 유닛 테스팅을 수행하기 위한 Delphi 기반의 라이브러리입니다). 개발자들은 특정 라이브러리 코드를 IDE에서 처리하도록 지정할 수 있으며, 그러면 Delphi는 선택된 클래스들의 public 및 published 메소드들을 위한 테스트 프로젝트와 비어 있는 테스트 케이스를 만들어주게 됩니다. 추가적인 메소드들이 테스트된 클래스에 추가되면, 유닛 테스트 위저드는 새 메소드들을 인식하고 이들 새 메소드들에 대한 새 스텁(stub) 메소드를 추가합니다. 따라서, 개발자들은 코드 라이브러리에 대한 유닛 테스트를 빠르고 쉽게 생성할 수 있습니다.

Hide image
UnitTestWizard

그림 17 – 유닛 테스트 위저드가 코드 라이브러리에 대한 유닛 테스트들을 만들기 위해 정보를 수집하고 있다

    리팩토링

리팩토링(Refactoring)은 기존의 코드 바디를 재구성하여 외부적인 동작의 변경 없이 내부의 구조를 바꾸는 작업입니다. 수작업 기반의 코드 리팩토링은 최초의 프로그래밍 당시부터 진행되어왔지만, 최근에 이르러서야 형식화되고 자동화되었습니다. Delphi 2007 for Win32는 개발자들이 코드를 자동으로 리팩토링을 할 수 있도록 도와주는 여러 기능들을 제공합니다.

예를 들어, Change Parameter 리팩토링은 빠르게 메소드 선언과 구현 부분을 빠르게 변경해줄 수 있습니다. 이 기능은 파라미터를 추가하거나 제거할 수 있을 뿐 아니라 기존 파라미터의 특성도 변경할 수 있습니다.

이 기능을 이용하기 위해서는 에디터에서 메소드나 함수, 프로시저를 선택한 후(클래스에서의 선언 혹은 구현부 어디에서도 가능) Refactor | Change Params 메뉴를 선택하면 됩니다. 그림 18과 같은 Change Parameters 다이얼로그 박스를 이용하여 필요한 변경 작업을 하면 됩니다.

Hide image
IMAGE136

그림 18 – Change Parameters 다이얼로그 박스

그 외에도 많은 패턴 관련 리팩토링 기능들이 Delphi 2007 for Win32에 포함되어 있습니다. Delphi 2007 for Win32의 모든 리팩토링 기능들을 아래의 표에서 요약해서 설명합니다.

리팩토링 이름

설명

Move

정적인 메소드를 한 클래스에서 다른 클래스로 이동시킵니다.

Extract Interface

클래스의 선택한 메소드에 기반한 인터페이스를 만들고 그 클래스에서 구현되도록 선언해줍니다.

Extract Superclass

선택한 클래스 멤버를 그 클래스의 새로운 상위 클래스를 만들어 이동시킵니다.

Pull Members Up

선택한 멤버를 선택한 클래스의 바로 상위의 클래스로 이동시킵니다.

Push Members Down

선택한 멤버를 선택한 클래스의 바로 아래 상속된 클래스로 이동시킵니다.

Safe Delete

선택한 아이템이 애플리케이션의 어디에서도 사용되지 않을 경우 삭제해줍니다.

Inline Variable

임시 변수의 인스턴스를 인라인 선언으로 대체합니다.

Introduce Field

기존의 로컬 변수를 지정한 클래스의 필드로 이동합니다.

Introduce Variable

표현식을 새 변수 이름으로 할당하는 문장을 추가하고 표현식을 변수로 바꾸고 선언합니다.

Rename

프로젝트 전체에서 지정한 식별자의 이름을 바꿉니다.

Declare Variable

사용되었지만 아직 선언되지 않은 로컬 변수를 선언해줍니다.

Declare Field

선택된 선언되지 않은 식별자를 지정한 클래스의 필드로 선언해줍니다.

Extract Method

선택된 코드를 기반으로 새 메소드를 생성해주며, 모든 필요한 파라미터를 전달하도록 해줍니다.

Extract Resource String

선택된 문자열을 기반으로 새 리소스 문자열을 만들고 문자열을 새 리소스 문자열의 이름으로 대체합니다.

Change Params

해당 메소드에서 파라미터를 추가, 변경, 제거합니다.

이 리팩토링 기능들 중 상당수는 프로젝트에서 모델링 지원이 활성화되어야만 사용 가능하다는 것을 주의해주십시오.

    오브젝트 파스칼 언어

오브젝트 파스칼 언어는 아주 오랜 동안 교육계에서 사용되어 왔습니다. 원래 프로그래밍 언어를 가르치는 데 사용되었었지만, 현재 오브젝트 파스칼 언어는 완전한 기능을 갖춘 객체 지향 개발 언어가 되었습니다. 오브젝트 파스칼은 언어 설계에 있어 최신의 트렌드 및 특징들의 발전에 보조를 맞추어왔습니다. 사실, 오브젝트 파스칼은 구조적 예외 핸들링(SEH)과 속성들을 구현한 최초의 주류 개발 언어입니다. 읽기 쉬운 문법과 쉽고 직관적인 코드 구성을 사용하는 Delphi는 배우기 쉬우면서도 동시에 극단적으로 강력한 언어입니다.

오브젝트 파스칼은 절차적 코드와 객체 지향 코드를 양쪽 모두 만들어낼 수 있습니다. 이 언어는 두 가지 방법을 매끄럽게 통합하여 개발자들이 양쪽 세계에서 최고가 될 수 있도록 해줍니다. 개발자들은 자신만의 클래스 계층을 만들고 사용할 수 있고, VCL을 사용하고 상속받아 새로운 클래스를 만들 수 있으며, 동시에 일반적인 절차적 코드 라이브러리도 만들어낼 수 있습니다. Delphi는 코딩 기법의 모든 영역을 커버하는 능력을 가지고 있습니다.

오브젝트 파스칼 언어에 대한 최고의 자료로 알려져 있는 것는 마르코 칸투(Marco Cantú)의

에센셜 파스칼(Essential Pascal) (PDF 포맷)입니다.

    VCL (Visual Component Library)

VCL (Visual Component Library)는 완전한 기능을 갖추고 대단히 확장이 용이하며 강력한 컴포넌트 기반 클래스 라이브러리입니다. 가장 밑바닥에서부터 컴포넌트 기반으로 설계되어 비주얼 디자이너에서 사용되는 VCL은 1995년까지 그 역사가 거슬러올라갑니다. VCL은 지금까지 여러 플랫폼 변경을 거쳐왔으며, 여기에는 Win16으로부터 Win32까지, 그리고 Win32로부터 .Net까지가 포함됩니다.

    데이터베이스 액세스

Delphi는 단순하면서도 동시에 강력한 데이터 액세스 모델을 제공합니다. TDataset이라는 VCL 클래스를 기반으로 하는 Delphi의 데이터베이스 액세스는 매우 비주얼하며 매우 코딩하기 쉽습니다. 커넥션 컴포넌트를 데이터셋 컴포넌트에 간단히 연결함으로써 테이블 형태의 데이터를 쉽게 VCL 데이터 연결 컨트롤들에 공급할 수 있습니다. 사실, 코드를 전혀 작성하지 않고도 데이터를 표시할 수 있습니다.

그리고 데이터 필드들을 VCL의 TField 상속 클래스에 자동으로 바인딩 해줌으로써 개발자들은 이해하기 쉬운 코드로 쉽게 데이터를 가져오고 수정할 수 있습니다. 예를 들면 다음과 같습니다.

CustomerTableCustomerNameField.AsString := ‘Gary Johnson’;

이런 방식으로, Delphi 개발자들은 비주얼하게 혹은 코드로 데이터를 쉽게 액세스할 수 있으며 코드 작업이 거의, 혹은 전혀 필요하지 않습니다. VCL 컴포넌트들은 데이터를 액세스하고 관리하는 데 있어 개발자들이 코드를 작성하도록 하도록 강요하지 않습니다.

    웹 개발

    VCL for the Web

Delphi 2007 for Win32에서 웹 애플리케이션을 개발하기 위한 주된 방법은 VCL for the Web입니다. AtoZed Software사의 IntraWeb 기술에 기반한 VCL for the Web은, 디자인타임에는 Delphi와 비슷한 느낌으로 개발하게 되지만 런타임에는 브라우저 기반의 웹 애플리케이션을 만들어내기 위해 특별히 설계된 컴포넌트 라이브러리입니다. VCL for the Web은 VCL for Win32와 매우 비슷하게 닮음으로써, 애플리케이션 개발 방식에 있어 일반적인 Delphi 방식에 익숙한 개발자들이 자신의 스킬을 브라우저에서 HTML과 자바스크립트를 통해 제공되는 애플리케이션을 개발하는 데에 이용할 수 있도록 해줍니다.

VCL for the Web은 또한 개발자들이 자바스크립트에 대한 지식이 전혀 없더라도 매우 쉽고 직관적으로 AJAX 기능을 구현할 수 있게 해줍니다. 개발자들은 서버에서 동작하는 오브젝트 파스칼 코드 기반 애플리케이션을 개발하여 클라이언트에서 실행시킬 수 있습니다.

    멀티 티어 개발

Delphi는 멀티 티어 아키텍처를 개발하기 위해 DataSnap이라는 강력한 아키텍처를 제공합니다. 다양한 통신 프로토콜을 채용하고 강력한 컴포넌트 세트를 제공함으로써 Delphi 개발자들은 데이터를 공급하는 애플리케이션 서버와 애플리케이션 서버로부터 데이터를 받거나 보내는 씬 클라이언트를 적은 노력으로 쉽게 개발할 수 있습니다.

개발자는 TRemoteDataModule 클래스를 이용하여 HTTP, DCOM, 혹은 소켓 연결을 통해 인터페이스를 데이터 프로바이더 컨트롤로 간단히 리모팅할 수 있습니다. 다음으로 클라이언트 애플리케이션은 원격 데이터에 대한 레퍼런스를 얻어서 TClientDataset이라는 데이터셋으로 임포트합니다. 데이터가 TClientDataset 들어오면 클라이언트 애플리케이션은 데이터에 일반적인 “Create, Read, Update, and Delete” (CRUD)의 모든 동작을 수행할 수 있으며, TClientDataset 모든 변경 내용을 캐시하게 됩니다. 클라이언트 애플리케이션은 심지어 서버로부터 완전히 연결을 끊을 수도 있으며(서류가방 모델), 이후에 다시 연결될 있습니다. 일단 다시 연결이 되면, TClientDataset 변경된 데이터를 서버로 다시 반영하기 위한 모든 코드를 제공합니다.

    추가 자료

    Delphi로 개발된 애플리케이션들

Delphi는 네이티브 개발의 배포 요구 사항을 쉽게하므로 독립 소프트웨어 개발사 (ISV)들에게 많은 인기를 끌고 있는 개발 플랫폼입니다. 많은 유명한 애플리케이션들이 Delphi로 개발되어 있으며, 다음과 같은 애플리케이션들은 그 예입니다.

Delphi로 개발된 애플리케이션들의 더 많은 예는 Delphi 위키 사이트에서 볼 수 있습니다.

Delphi 2007 for Win32가 Delphi 2007 for Win32 자체로부터 개발되었다는 것도 알아둘 만한 사실입니다.

    CodeRage 프리젠테이션

코드기어는 2007년 3월에 온라인 컨퍼런스인 CodeRage를 개최하였으며, 이 행사에서 많은 참가자들이 Delphi 2007 for Win32의 새로운 기술에 대해 발표했습니다. 리뷰어들에게 흥미를 끌 만한 프리젠테이션들을 선별하여 아래에 나열하였습니다. 링크는 컨퍼런스 행사를 녹화한 것을 플래시로 변환한 zip 파일로의 링크입니다.

제목

발표자

Delphi 2007에서 새로워진 점들

Nick Hodges, Delphi 개발 매니저

Delphi 2007의 새로운 VCL

Seppy Bloom, VCL R&D 엔지니어

DBX4의 새로워진 점들

Steve Shaughnessy, DBX4 담당 선임 R&D 엔지니어

Delphi 2007 디버거의 새로워진 점들

Chris Hesik, 디버거 UI R&D 엔지니어

Delphi와 IntraWeb 9.0을 이용한 Ajax 웹 애플리케이션 개발

Olaf Monien, AtoZed Software

Delphi 2007의 웹 서비스

Bruneau Babet, Delphi R&D 엔지니어

MSBuild 프로 매니저

Dave Wilhelm — IDE 담당 R&D 엔지니어

코드기어에 대하여

이전에 볼랜드 개발툴 그룹으로 불렸던 코드기어는 개인 개발자로부터 기업 팀에 이르는 광범위한 소프트웨어 개발자들에게 혁신적이고 고생산성의 개발툴을 제공합니다. 코드기어의 제품들은 개발자들이 선택한 플랫폼에서 자유롭게 개발할 수 있도록 해주며, 동시에 복잡한 기술과 작업들을 단순화시켜 개발자들이 애플리케이션의 인프라가 아닌 설계에 집중할 수 있도록 하여 주어진 시간 내에 프로젝트를 완수할 수 있도록 해줍니다.

볼랜드, 코드기어, JBuilder, ProjectAssist, TeamInsight, Optimizeit, LiveSource, AppServer, Together, StarTeam, VisiBroker, 그리고 기타 모든 볼랜드 브랜드와 제품 이름들은 미합중국과 다른 나라들에서 볼랜드 소프트웨어사 혹은 그 자회사의 상표 혹은 등록 상표입니다. Sun, EJB, Java, JDK, J2EE, JSP, JDBC, Glassfish, JavaBeans, Enterprise JavaBeans 그리고 다른 모든 Sun 브랜드와 제품 이름들은 미합중국과 다른 나라들에서 선 마이크로시스템즈의 상표 혹은 등록 상표입니다. WebSphere와 다른 모든 IBM 브랜드 및 제품 이름들은 미합중국과 다른 나라들에서 IBM 혹은 그 자회사의 상표 혹은 등록 상표입니다. Oracle 및 다른 모든 Oracle 브랜드 및 제품 이름들은 미합중국과 다른 나라들에서 Oracle 혹은 그 자회사의 상표 혹은 등록 상표입니다. 다른 모든 마크들은 각각 해당 소유자의 재산입니다.

면책 정보

이 문서에는 1995년에 개정된 증권민사소송법을 포함한 미국 연방 증권 법률에서 정의된 “미래 예측 정보”를 포함하고 있으며 해당 법률에서 지정된 면책 규정의 적용을 받습니다. 장래 예상 문구는 예정된 발표 일자, 가격, 이익, Delphi for Win32 2007을 포함한 코드기어 제품의 특징들에 대한 내용들에 관련될 수 있지만 반드시 그 내용들에만 제한되는 것은 아닙니다. 이같은 미래 예측 정보는 현재의 예정 계획을 기반한 것으로 많은 불확실성과 상당히 다른 사건이나 결과를 가져오는 위험을 낳을 수 있습니다. 상당히 다른 사건이나 결과를 가져올 수 있는 요인들에는 특히 다음과 같은 것들이 포함됩니다: 코드기어 제품에 대한 요구에 상반된 영향을 미치는 급속한 기술적 변화, 고객 요구의 변화, 전략적 관계의 변화, 코드기어 제품과 서비스를 제공할 능력의 지연, 소프트웨어 에러 혹은 경쟁사의 발표. 이들 및 다른 위험들은 10-K 양식의 연례 보고서와 최근의 10-Q 양식 분기 보고서 등 증권거래위원회에 제출되는 코드기어의 정기 보고서에서 때때로 상세히 설명될 수 있으며 이들 보고서들의 사본은 www.sec.gov에서 찾아볼 수 있습니다. 코드기어는 새로운 정보, 미래의 사건이나 다른 이유로 미래 예측 정보를 수정하거나 변경할 의무가 없습니다. 저희 웹 사이트에 실린 정보들은 이 보도 자료에 포함되지 않았습니다.

Server Response from: ETNASC04