728x90

* 이 글은 오라클 기술 네트워크(Oracle Technology Network)에 공개된 Joh Paul Cook 의 영문 아티클을 번역 / 의역한 글입니다. 원문은 링크(http://tinyurl.com/m69mvh)를 통하여 확인하실 수 있습니다.

글을 시작하며

마이크로소프트의 개발 프레임워크인 닷넷 프레임워크의 인기가 높아짐에 따라 많은 개발자들이 닷넷 어플리케이션과 오라클과의 통합을 위한 가장 좋은 방법에 대한 정보를 갈구하고 있습니다. 기본적인 연결에 대한 것 뿐아니라 비주얼 스튜디오 2005 또는 2008을 이용하여 효과적이고 효율적인 개발을 하는 방법에 대한 요구가 무척 많습니다.

이 글을 통해서 오라클 데이터베이스를 사용하는 닷넷 어플리케이션을 만드는 기본적이지만 필수적인 과정에 대한 설명을 하고자 합니다.

  • 닷넷 프로젝트에 오라클 클래스 라이브러리를 추가하고 참조하는 방법
  • 오라클 데이터베이스 연결 문자열을 만드는 방법
  • Connection, Command, DataReader 객체를 사용하는 방법
  • 여러분들은 비교적 쉬운 것부터 복잡한 것까지 준비된 3개의 예제를 통해 이 같은 내용을 적용해 볼 수 있을 것입니다. 글에 포함되어 있는 모든 스크린 샷은 비주얼 스튜디오 2008의 화면들 입니다만, 비주얼 스튜디오 2005 에서도 크게 다르지 않은 화면을 보게 될 것입니다.

    .NET Data Provider

    닷넷으로 오라클 연계 어플리케이션을 개발하기 위해서 기본적인 오라클 클라이언트(Oracle Client) 뿐만 아니라 관리되는 데이터 프로바이더(Managed Data Provider)가 필요합니다. 데이터 프로바이더는 우리가 만들게 될 닷넷 어플리케이션 코드와 오라클 클라이언트 연결 소프트웨어 사이에 위치한 계층입니다. 대부분의 경우 닷넷 OLE DB 데이터 프로바이더가 아닌, 개별 데이터베이스 패키지에 최적화된 데이터 프로바이더를 사용할 때 어플리케이션은 최적의 성능을 발휘하게 됩니다.

    오라클, 마이크로소프트 뿐만 아니라 서드 파티 벤더들은 오라클에 최적화된 데이터 프로바이더를 제공하고 있습니다. 오라클과 마이크로소프트는 무료로 이같은 데이터 프로바이더를 제공하고 있습니다. (마이크로소프트의 닷넷 프레임워크 2.0에 데이터 프로바이더가 포함되어 있긴 하지만, 여전히 오라클 클라이언트를 필요로 합니다) 이 글에서는, 마이크로소프트가 닷넷 프레임워크에 제공하는 데이터 프로바이더 대신, 오라클이 공급하는 Oracle Data Provider for .NET (이하 ODP.NET) 을 사용할 예정입니다. ODP.NET 은 오라클 데이터베이스 혹은 오라클이 제공하는 별도의 다운로드 경로(http://tinyurl.com/ndouwh)를 통해서 다운로드 받을 수 있습니다.

    ODP.NET 은 표준 ADO.NET 데이터 엑세스를 제공할 뿐만 아니라, XML DB, 데이터 엑세스 성능 최적화, RAC(Real Application Clusters) 커넥션 풀링과 같은 오라클만의 특화된 기능들을 사용할 수 있도록 해줍니다.

    ODP.NET 과 오라클 클라이언트 소프트웨어가 설치되었다면, 비주얼 스튜디오를 통한 오라클 연계 어플리케이션 개발을 할 준비가 완료되었습니다. 개발을 시작하기 전에 오라클 데이터베이스와의 연결 상태를 확인하는 것은 좋은 생각입니다. 오라클 클라이언트 소프트웨어에 기본적으로 제공되는 SQL*Plus 와 같은 도구를 이용해서 데이터베이스 연결이 잘 되는지 테스트 해보시기 바랍니다.

    비주얼 스튜디오 2008 에서 프로젝트 생성하기

    지금부터 오라클 데이터베이스에서 데이터를 추출하는 ODP.NET 어플리케이션을 만들어 보도록 하겟습니다. 에러 핸들링과 관련한 부분은 글 후반부에 다루도록 하겠습니다. 비주얼 스튜디오를 실행한 후, 가장 먼저 해야 할 일은 프로젝트를 생성하는 것입니다. File 메뉴의 New > Project 를 선택하여 프로젝트를 생성하겠습니다.


    새 프로젝트 창이 열리면 개발 하고자 하는 언어를 선택하고 (주: 이 글에서는 Visual C# 을 이용하여 코드 샘플을 보여주도록 하겠습니다) "Windows Form 응용 프로그램" 템플릿을 선택하도록 하겠습니다. 프로젝트와 솔루션 이름은 임의로 OraWinApp 라고 정하도록 하겠습니다. 이름을 입력한 후 "확인" 버튼을 눌러 프로젝트를 생성합니다.


    참조 추가하기

    OraWinApp 프로젝트는 오라클 데이터베이스에 연결되어야 하므로, 우리가 선택한 ODP.NET 데이터 프로바이더의 DLL 파일을 프로젝트에 참조로 추가해야만 합니다. 일반적인 어플리케이션 개발의 참조 추가와 마찬가지로 "솔루션 탐색기"의 "참조"에서 마우스 오른쪽 버튼을 눌러 "참조 추가"를 선택합니다. (혹은 프로젝트에서 마우스 오른쪽 버튼을 눌러 "참조 추가"를 선택해도 관계 없습니다)

    참조 추가 방법 #1


    참조 추가 방법 #2

    참조 추가 다이얼로그가 출력되면 "Oracle.DataAccess" 컴포넌트를 찾아서 확인 버튼을 누르면 됩니다. 설치된 오라클 클라이언트 버전에 따라 버전 정보, 런타임 정보가 조금 상이할 수 있습니다. 가능하면 최신 버전의 런타임을 사용하는 것이 좋지만, 일반적인 경우 런타임 버전에 따라 생기는 큰 차이점은 없습니다.


    참조 추가가 완료되면 오라클 데이터베이스를 이용하는 닷넷 어플리케이션 개발의 준비는 모두 끝납니다. 다음 글에서는 실제로 Oracle.DataAccess 컴포넌트를 이용하여 코드를 어떻게 만드는지 본격적인 개발 작업에 들어가도록 하겠습니다.

    - NoPD -

     

    728x90
    728x90

    닷넷 환경에서 오라클을 개발하기 위한 방법은 크게 두가지이다. 오라클 클라이언트를 전체 설치할 때 따라오는 ODP.NET (Oracle Data Provider for .NET) 만을 이용하는 방법이 한가지이고, 다른 하나는 Visual Studio IDE 환경에 Plug-in 가능한 ODT.NET (Oracle Developer Tools for Visual Studio.NET) 을 설치해서 사용하는 방법이 다른 한가지이다.

    복잡하지 않은 개발을 하는 상황이고 데이터베이스에 의존적인 개발이 적은 경우 (예>Stored Procedure 의 사용 등) 에는 전자의 방법을 사용하는 것이 간단하며, 그렇지 않은 경우는 ODT.NET 을 설치해서 사용하는 것이 디버깅, 개발 효율성 측면에서 훨씬 우수할 수 있다.

    NoPD 의 경우 마이크로소프트가 닷넷 환경에서 제공하는 표준 Provider (System.Data.OracleClient) 를 사용하던 도중 오라클 Provider 로 교체를 하는 케이스를 경험했었는데, 구문이라던가 사용하는 방법이 크게 다르지 않기 때문에 마이그레이션을 하는 경우에도 전자의 방법을 강력하게 추천한다.

    ※ ODT.NET 다운로드 : http://tinyurl.com/lvcw56

    - NoPD -
    728x90
    728x90
    그동안 닷넷 환경에서 오라클을 연계해서 개발하는 프로젝트를 많이 해보지 못했다. 최근 몇 건의 오라클 연계 프로젝트에서 닷넷과 작업을 하면서 한글로 된 Article 의 부재와 기술 지원의 미비함을 보면서 뭔가 직접 작업을 좀 해봐야 겠다는 생각을 무척 많이 하게되었고, 관련된 Oracle.com 의 영문 아티클들 번역을 시작해 볼까 한다.

    - 오라클 닷넷 개발자 센터 : http://www.oracle.com/technology/tech/dotnet/index.html
    - ODP.NET 개발자 센터 : http://www.oracle.com/technology/tech/windows/odpnet/index.html

    시간이 얼마나 걸릴지 모르지만, 하루 한개의 아티클을 번역한다는 개념으로 열심히 하다보면 언젠가 쓸만한 한글 기술문서 셋트가 될 수 있지 않을까 싶다.

    - NoPD -
    728x90
    728x90
    If you experience ORA-12537 connection closing after you opened firewall properly, you should check contents of protocol.ora file placed in Oracle Server.Generally, you can find it at "$ORACLE_HOME/network/admin/protocol.ora".


    tcp.validnode_checking = yes
    tcp.invited_nodes=( 192.168.0.100 )


    Above config means, 152.68.18.73 is the only IP address which has authority to contact this Oracle Server. Be careful not to miss add server own IP address should be here.


    tcp.validnode_checking = yes
    tcp.excluded_nodes= (192.168.0.100 )


    If you set any IP address into tcp.excluded_nodes item, that IP will be blocked when try to connect Oracle Server. Surely, you can use invited and excluded nodes with in same protocol.ora file simultaneously. When you need to allow more IP addresses, you can describe IP addresses in one line with comma seperation.


    tcp.validnode_checking = yes
    tcp.invited_nodes=( 192.168.0.100, 192.168.0.101 )


    If you have so many IP addresses to allow or block, you can use IP range like 192.168.0.0 (B-Class). And you also can use domain name to describe specific IP address. Let`s see below example.


    tcp.validnode_checking = yes
    tcp.invited_nodes=( 192.168.0.100, 192.168.0.101, 192.168.0.0 )


    Once you change on protocol.ora file, you should restart Oracle listener to make it effective.

    - NoPD -
    728x90

    + Recent posts