'IT_Expert/dotNET'에 해당되는 글 31

  1. 2007.10.25 [VS.NET] Oracle Developer Tools for Visual Studio .NET - Christian Shay
As Published In

Oracle Magazine
Special Edition for Windows
DEVELOPER: Windows

.NET 개발자를 위한 새로운 툴
저자 - Christian Shay

Oracle Developer Tools for Visual Studio .NET과 Microsoft Visual Studio 2005를 함께 사용하여 오라클 환경을 쉽고 빠르게 개발할 수 있습니다.

여기 한 개발자가 오라클 데이터베이스로부터 가져온 데이터를 처리하기 위한 C# 또는 VB.NET 루틴을 작성하고 있습니다. 개발자는 데이터베이스에 접근하여 몇 가지 스토어드 프로시저를 편집, 디버깅하거나, 테이블의 데이터 일부를 수정하거나, 테이블 또는 뷰의 구조를 변경하거나, 그 밖의 여러 가지 데이터베이스 작업을 수행해야 합니다.

개발자의 소원은 이루어졌습니다. Oracle Developer Tools for Visual Studio 여기 한 개발자가 오라클 데이터베이스로부터 가져온 데이터를 처리하기 위한 C# 또는 VB.NET 루틴을 작성하고 있습니다. 개발자는 데이터베이스에 접근하여 몇 가지 스토어드 프로시저를 편집, 디버깅하거나, 테이블의 데이터 일부를 수정하거나, 테이블 또는 뷰의 구조를 변경하거나, 그 밖의 여러 가지 데이터베이스 작업을 수행해야 합니다 .NET(ODT)은 이러한 모든 것을 가능하게 합니다. 이 아티클에서는 ODT가 제공하는 다양한 기능을 간략하게 살펴 보기로 합니다. 또 새로운 통합 PL/SQL 디버거와 그 활용법을 함께 소개합니다.

Oracle DeveOracle Developer Tools: 기능 목록

ODT는 Visual Studio와 긴밀하게 통합된 애드-인 제품입니다. 2005년 6월 처음 공개된 ODT는 Oracle Technology Network를 통해 무료로 제공되고 있습니다 .

Major features of ODT include

  • Oracle Explorer
  • 디자이너 및 마법사 제공
  • Oracle data window
  • Oracle PL/SQL editor
  • In? 통합 PL/SQL 디버거/span>
  • ? 자동 코드 생성/span>
  • SQL Query Window
  • ? 통합 온라인 도움말 /span>

Oracle Explorer: 오라클 스키마의 조회

테이블, 뷰, 또는 다른 데이터베이스 오브젝트를 처음으로 살펴보고자 하는 경우 가장 우선적으로 사용하게 될 툴이 바로 Oracle Explorer입니다. Oracle Explorer를 실행하려면 메인 메뉴에서 View-> Oracle Explorer를 선택합니다. Oracle Explorer(그림 1 참조)는 오라클 스키마의 구조를 조회하기 위한 트리 컨트롤을 제공합니다. 테이블, 뷰, 패키지, 스토어드 프로시저와 같은 오라클 스키마 오브젝트를 여기에서 조회할 수 있습니다. 스키마 오브젝트 중 하나를 선택하면, Visual Studio 속성 윈도우를 통해 컬럼 데이터타입, 스토어드 프로시저 매개변수 타입 등의 정보가 표시됩니다.

figure 1
그림 1: Oracle Explorer(왼쪽)와 PL/SQL 에디터/디버거 (오른쪽)

각 스키마 오브젝트의 컨텍스트 메뉴를 통해 다른 기능에 접근할 수 있습니다. 스키마 오브젝트를 위한 SQL 스크립트를 생성하거나, 필터를 이용해서 표시되는 스키마 오브젝트의 유형을 제한하거나, 디자이너와 마법사를 실행해서 스키마를 변경할 수 있습니다. 예를 들어, 테이블의 구조를 조회하면서 컨텍스트 메뉴를 통해 Oracle Table Designer를 실행하고 테이블의 설계를 변경할 수 있습니다.

디자이너와 마법사: 데이터베이스 운영의 단순화

ODT가 제공하는 다양한 그래픽 디자이너와 마법사를 통해 테이블, 뷰, 스토어드 프로시저, PL/SQL 패키지, 시퀀스, 인덱스, 제약조건, 트리거, 동의어 등의 데이터베이스 오브젝트를 생성, 변경하는 작업을 위한 단계별 지원을 제공받을 수 있습니다. Oracle Table Designer(그림 2 참조)를 이용하면 데이터타입을 확인하거나 SQL 문법을 외우고 있을 필요가 없습니다. 테이블 이름과 컬럼 이름을 입력하고 목록에서 적절한 데이터타입을 선택한 후 Save를 클릭하기만 하면 새로운 테이블을 생성하거나 기존 테이블을 변경할 수 있습니다. 새로 생성된 스키마 오브젝트는 Oracle Explorer 트리 컨트롤에 바로 표시됩니다.

figure 2
그림 2: Oracle Table Designer

Oracle Data Window: 테이블 데이터의 조회 및 변경

테이블 또는 데이터를 신속하게 조회하려면 Oracle Explorer의 테이블 또는 뷰를 마우스 오른쪽 버튼으로 클릭하고 Retrieve Data를 선택합니다. Oracle Data Window (그림 3 참조)는 표 형태로 테이블/뷰 데이터를 표시하고 Visual Studio 개발 환경 안에서 데이터를 직접 삽입, 변경, 삭제할 수 있는 기능을 제공합니다. 사용자가 특정 로우를 변경하면, 커서는 새로운 로우로 이동하고 데이터가 즉각적으로 커밋됩니다. 테이블의 크기가 큰 경우에는 로우 넘버를 입력하여 해당 로우로 바로 이동할 수 있습니다.

figure 3
그림 3: Oracle Data Window

PL/SQL 편집기

프로시저, 함수 또는 패키지를 편집하려면 Oracle Explorer의 아이템을 마우스 오른쪽 버튼으로 클릭하고 Edit를 선택합니다. PL/SQL 편집기(그림 4 참조)는 개발 환경과 긴밀하게 통합된 SQL 편집 기능을 제공합니다. 개발자는 스토어드 프로시저를 작성하기 위해 Visual Studio 환경에서 빠져나갈 필요가 없습니다. Visual Studio의 PL/SQL 편집기는, 복잡한 패키지 안에서 스토어드 프로시저와 함수를 “collapse”하거나 컬러 코드를 사용하여 가독성을 향상시킬 수 있는 기능을 제공합니다. 따라서 현재 작업 중인 프로시저 또는 함수에 집중할 수 있습니다. SQL 또는 PL/SQL 구문을 입력하면 테이블과 컬럼의 목록이 팝업으로 표시되면서 구문이 자동완료(autocomplete)됩니다.

figure 4
그림 4: PL/SQL 편집기

PL/SQL 코드를 컴파일하려면, Oracle Explorer에서 아이템을 마우스 오른쪽 버튼으로 클릭하고 Compile을 선택합니다. PL/SQL을 컴파일하는 과정에서 발견되는 에러는 Visual Studio 태스크 리스트에 표시됩니다. 에러 텍스트를 클릭하여 에러의 원인이 된 라인으로 이동합니다. 컨텍스트 기반 도움말 키를 눌러 에러 코드에 대한 매뉴얼(Error Messages and Codes)을 표시할 수 있습니다.

전체 스토어드 프로시저와 함수를 테스트하려면 Oracle Explorer를 마우스 오른쪽 버튼으로 클릭한 뒤 Run을 선택합니다. 대화 상자가 표시되고 스토어드 프로시저 또는 함수를 위한 입력 매개변수를 지정할 수 있습니다. 대화 상자에서 OK를 클릭하여 코드를 실행합니다. 스토어드 프로시저의 실행 결과(출력 매개변수)가 최종 윈도우에 표시됩니다 (그림 5 참조). REF CURSOR와 같은 복잡한 출력 타입은 링크의 형태로 표시됩니다. 이 링크를 클릭하여 표 형태로 데이터를 디스플레이할 수 있습니다.

figure 5
그림 5: PL/SQL 테스트

통합 PL/SQL 디버거

ODT 10.2.0.2는 Visual Studio와 완전하게 통합된 PL/SQL 디버거를 새로이 제공합니다. 이제 VB.NET 또는 C# 코드를 디버깅하는 것과 동일한 방법으로 스토어드 프로시저, 함수, 트리거에 포함된 PL/SQL 코드를 디버그할 수 있습니다. PL/SQL 코드를 트레이스하고, 변수 값을 조회/수정하고, 콜 스택을 확인하고, 브레이크 포인트를 설정하는 등의 모든 작업이 가능합니다.

또 트레이스 과정에서 VB.NET 또는 C# 애플리케이션 코드로부터 PL/SQL 코드로 넘어가거나 다시 되돌아오는 것도 가능합니다. 예를 들어 C# 코드에서 Oracle Data Provider for .NET(ODP.NET)을 사용하여 PL/SQL 프로시저 또는 함수를 호출하는 경우, C# 코드를 디버그하는 과정에서 PL/SQL 코드로 트레이스한 후 계속 디버깅 작업을 계속할 수 있습니다. 또 스토어드 프로시저 또는 함수에 전달되는 전체 매개변수의 값을 PL/SQL 디버거 내부에서 확인할 수 있습니다 (컴플렉스 데이터타입, 어레이의 값도 조회가 가능합니다). PL/SQL 코드의 실행이 완료되면 다시 C# 코드로 돌아가 디버깅을 계속하게 됩니다.

또 호출하는 애플리케이션, 또는 플랫폼의 종류에 관계없이 PL/SQL 스토어드 프로시저, 함수, 트리거의 브레이크 포인트를 설정하고 디버그할 수 있습니다. 예를 들어 Linux 환경에서 실행되는 PHP 애플리케이션이 PL/SQL 스토어드 프로시저 FOO를 호출하고 어레이 변수 값을 전달하는 경우를 가정해 봅시다. PHP 애플리케이션의 환경 변수를 설정한 후 Visual Studio 내부에서 FOO에 브레이크 포인트를 설정하고, FOO가 실행되는 동안 디버깅을 시작할 수 있습니다.

PL/SQL 디버깅의 설정.ODT는 Oracle Database 9.2 또는 이후 버전에 대한 PL/SQL 디버깅을 지원합니다 (운영체제는 무관합니다). 개발자는 디버그할 프로시저 또는 함수에 대해 DEBUG, EXECUTE 권한을 가지고 있어야 합니다. DEBUG 권한을 할당하기 위해서는 DBA가 “GRANT DEBUG CONNECT SESSION TO USER” 명령을 실행해 주어야 합니다. Oracle Database 10g Release 1 (10.1) 및 이후 버전의 경우, 개발자는 DEBUG CONNECT SESSION 권한을 추가로 보류하고 있어야 합니다. 이 권한을 할당하려면 DBA로 로그인하여 “GRANT DEBUG CONNECT SESSION TO USER” 명령을 실행합니다.

오라클 데이터베이스는 TCP/IP 연결 포트를 통해 PL/SQL 디버거에 연결합니다. 방화벽에서 일부 포트 연결을 차단한 경우, Tools->Options->Oracle Developer Tools->PL/SQL Debugging 페이지에서 포트 설정을 변경해 주어야 할 수도 있습니다. Options 페이지에서 현재 Oracle Explorer에서 활성화된 모든 연결의 목록을 확인할 수 있으며, 여기서 디버깅을 위해 사용할 연결을 선택해 주어야 합니다.

PL/SQL 디버깅을 진행하기 전에 프로시저, 함수, 트리거에 대해 “compile for debug” 작업을 수행해 주어야 합니다. “compile for debug” 작업을 수행하려면 Oracle Explorer에서 프로시저를 마우스 오른쪽 버튼으로 클릭한 후 Compile Debug를 선택합니다.

스토어드 프로시저 또는 함수의 디버깅.Oracle Explorer에서 프로시저 이름을 마우스 오른쪽 버튼으로 클릭하고 Step Into를 선택하는 방법으로 프로시저(또는 함수를) 직접 실행할 수 있습니다. 입력 매개변수가 필요한 경우, 입력을 위한 팝업 윈도우가 표시됩니다.

PL/SQL 스토어드 프로시저 또는 함수를 호출한 Visual Studio 내부에서 애플리케이션(예: C# 코드)을 디버그하려면, 먼저 C# 애플리케이션의 디버그를 위한 빌드 작업을 수행해야 합니다. 그런 다음 Tools 메뉴에서 Application Debugging을 체크합니다. 마지막으로 PL/SQL 코드에 브레이크 포인트를 설정하고 C# 코드의 디버깅을 시작합니다. C#에서 스토어드 프로시저 또는 함수가 호출된 경우, PL/SQL 코드의 브레이크 포인트에서 실행이 중단됩니다.

PL/SQL 스토어드 프로시저, 함수, 트리거를 디버그하려면 Visual Studio에서 Tools 메뉴로 이동하여 Start Oracle External Application Debugger를 선택합니다. 대화상자가 표시되면, 오라클 데이터베이스가 Visual Studio에 연결하는 데 사용할 포트의 수를 입력합니다. 그런 다음 외부 애플리케이션을 위한 환경에서, ORA_DEBUG_JDWP 환경 변수를 “host=machinename;port=XXX”로 설정합니다. 여기서 machinename은 Visual Studio가 위치한 머신, XXX는 앞에서 정의한 포트 번호를 의미합니다. 예를 들어 애플리케이션이 Windows 환경에서 실행 중인 경우 커맨드 프롬프트에서 다음과 같이 실행할 수 있습니다: set ORA_DEBUG_JDWP=host=mypc;port= 1234. 그런 다음 Visual Studio에서 디버그할 PL/SQL 코드에 브레이크 포인트를 설정합니다. 이제 애플리케이션을 실행하면 PL/SQL 코드의 브레이크 포인트에서 실행이 중단됩니다. (PL/SQL 스토어드 프로시저, 함수, 트리거를 디버그하기 위해서는 애플리케이션이 Oracle Database 9.2 이후 버전의 클라이언트 라이브러리를 사용하고 있어야 합니다.)

자동 코드 생성 기능

Oracle Explorer에서 애플리케이션 폼에 스키마를 드래그-앤-드롭 방식으로 적용하는 경우, 해당 스키마 오브젝트의 SELECT, UPDATE, INSERT, DELETE 작업을 위한 코드가 자동으로 생성됩니다. 이 코드는 ODP.NET이 제공하는 OracleDataAdapter 클래스를 사용합니다. 이 클래스는 ADO DataAdapter 클래스를 기반으로 하며, 다른 데이터베이스 벤더가 제공하는 DataAdapter 클래스를 사용해 본 개발자라면 쉽게 친숙해 질 수 있습니다. 또 DataAdapter 클래스를 이용하면 번거로운 코딩 과정을 거치지 않고도 애플리케이션 폼의 UI 엘리먼트(예: DataGrid)에서 오라클 데이터베이스에 바로 접속하도록 할 수 있습니다.

또 오라클 데이블 또는 뷰를 기준으로 “typed”, “untyped” 데이터 셋을 위한 코드를 생성할 수도 있습니다. 코드를 생성하려면 폼의 OracleDataAdapter 아이콘에서 마우스 오른쪽 버튼을 클릭한 후 Generate Dataset을 선택합니다. 이 데이터 셋을 UI 엘리먼트에 바인드할 데이터 소스로 사용할 수도 있고, Visual Studio XML Schema 등의 Visual Studio 환경에서 여러 용도로 활용하는 것이 가능합니다.

SQL Query Window

다음 단계

Oracle Developer Tools for Visual Studio .NET 관련 자료

다운로드
Oracle Developer Tools for Visual Studio .NET
Oracle Database 10g for Windows

.NET 개발자 센터

SQL Query Window를 열려면 Oracle Explorer의 데이터베이스 연결(Data Connections 노드 아래)에서 마우스 오른쪽 버튼을 클릭하고 Query Window를 선택합니다. 직접 입력한 SQL 구문을 실행하려면 SQL Query Window에서 쿼리 구문을 입력한 뒤 Execute를 클릭합니다. SQL 구문의 출력이 테이블 또는 뷰인 경우, text 또는 grid를 출력으로 선택할 수 있습니다. 또 여러 개의 구문을 선택한 후 그룹으로 실행할 수도 있습니다. 스크립트 연산자 @을 사용하여 SQL 스크립트를 실행하는 것도 가능합니다.

드래그-앤-드롭 방식으로 Oracle Explorer의 스키마 오브젝트를 SQL Query Window로 옮겨 놓는 경우, 해당 스키마 오브젝트에 액세스하기 위한 SQL 코드가 자동으로 생성됩니다.

통합 온라인 도움말

ODT는 Visual Studio 도움말 포맷으로 변환된 오라클 제품 문서를 포함하고 있습니다 (그림 6 참조). ODT에 포함된 문서로 SQL Reference, the PL/SQL User's Guide and Reference, Error Messages, Oracle Database Extensions for .NET 매뉴얼 등이 있습니다.

figure 6
그림 6: 온라인 도움말

Visual Studio의 도움말 창에서 매뉴얼의 각 챕터를 순차적으로 조회할 수 있습니다. 또는 Visual Studio의 컨텍스트 기반 도움말 기능을 활용할 수도 있습니다. 예를 들어 스토어 프로시저를 작성하는 과정에서 SQL 또는 PL/SQL 키워드(예: SELECT)를 선택하고 컨텍스트 도움말 키(일반적으로 F1)을 클릭하면, SQL Reference의 SELECT 구문에 대한 도움말이 표시됩니다. ODT 문서는 레퍼런스 가이드뿐 아니라 초보자 가이드와 워크-스루 챕터 등을 함께 포함하고 있습니다.

요약

이 아티클을 통해 .NET 환경에서의 오라클 데이터베이스 작업을 보다 쉽고 빠르게 완료하는데 도움이 될 만한 ODT의 주요 기능을 소개하였습니다. 또 PL/SQL 디버거를 설정하는 과정을 단계별로 설명하였습니다.


Christian Shay (christian.shay@oracle.com)는 오라클의 수석 프로덕트 매니저입니다.

[펌] :http://tong.nate.com/lhs0806/25450545