'IDL'에 해당되는 글 1건

  1. 2007.12.09 IDL (2)
컴퓨터 과학!/SCA2007. 12. 9. 18:05

IDL

인터페이스 정의언어, 구현언어로 매핑을 지원.
객체지향 개념. C++의 class와 비슷하지만,  JAVA의 interface와 더욱 유사.

interface Sample {
    attribute long a; // attribute 키워드 없으면 에러.
    readonly attribute string b;
    string oper1();
    oneway void oper2();
    void oper3() raises(UsrException);
};

간단히 뭐 이런 식.

상속 가능, 다중 상속도 가능, 단 상속 받을 interface간에 같은 이름이 있으면 안됨.
interface A {
    attribute long l;
    void oper();
};
interface B {
    attribute long l; // 이름 충돌 에러 발생
};
interface C: A, B {
    void oper(); // 재정의 시도 에러 발생
};

Scop을 정하고 계층화 하는 module을 사용할 수도 있음.
module CF {
    interface DomainManager{};
    module CF1{
        interface Resource{};
    };
};
CF::DomainManager, CF:CF1:Resource 이런 식으로 접근이 가능함.

이렇게 만들어진 IDL 파일과 실제 구현과의 mapping은 IDL 컴파일러가 하는 것 같은데,
그 과정이 궁금함. 프로그래머는 어느 수준까지 정의해 줘야 하는가?

Posted by 스니
TAG

댓글을 달아 주세요

  1. 옛날에 다니던 회사에서는 저렇게 정의한 IDL 을 가지고 서버 클라이언트 간 통신 모듈 만들 때 사용했는뎅.
    IDL 로 인터페이스를 정의하면 IDL 컴파일러가 네트웍 IO 를 책임지는 소스까진 generate 하고 나머지
    비지니스 로직은 generate 된 소스에다가 사용자가 직접 프로그램해서 추가해넣고.

    IDL 컴파일러 구현은 프레임웍을 만드는 프로그래머가 다 했... ㄷㄷ.. -_-;;; (근데 뭐 간단하게 만든거라
    상속 이런건 지원 못하고.. -.-)

    2007.12.10 11:39 [ ADDR : EDIT/ DEL : REPLY ]
  2. 스니스니

    nezy 슨배닷! +_+
    그르쿤요. 현재 omniORB를 사용하고 있는데 omniidl 이란 놈이 컴파일을 해주는 듯.
    사실 지금은 다 구현된 소스를 쓰고 있어서... 이에 관련된 프로그래밍은 할 필요가 없... ^ㅇ^
    그러나. 아직 궁금증이 다 해소가 되지 않는군요.
    이런거 때문에 자꾸 파다 보면, 항상 프로젝트 진도는 안나가고 산으로 가있는. TAT
    그나저나ㅡ 본 지 백만년.... ;ㅁ;

    2007.12.13 03:01 [ ADDR : EDIT/ DEL : REPLY ]