[Coming Up]컴포넌트 기술

 소프트웨어 컴포넌트 기술이 소프트웨어 개발의 생산성을 높여주는 기술로 각광받고 있는 가운데 최근 한국소프트웨어컴포넌트컨소시엄은 ‘컴포넌트란 무엇인가? 알기쉬운 소프트웨어 컴포넌트’란 책자를 발간, 컴포넌트에 대해 소개하고 있다.

 컴포넌트를 한마디로 표현하자면 소프트웨어시스템에서 독립적인 업무나 기능을 수행하는 모듈로 시스템을 유지보수하는 데 교체가 가능한 부품을 말한다. 이 정의를 하드웨어 부품과 관련해 비교해보면 보다 이해가 용이하다.

 마치 컴퓨터 조립시 마더보드·CPU·메모리·랜카드·사운드카드·모니터·그래픽카드 등 부품을 구매한 후 조립하는 것과 마찬가지로 소프트웨어 개발시에도 독립적인 기능을 수행하는 각각의 소프트웨어 모듈을 결합하는 것이다.

 컴포넌트 개발 방법은 기존의 소프트웨어 재사용 방식과 차이점을 갖고 있다. 종전의 소프트웨어 재사용은 소스코드 기반의 재사용이었다고 할 수 있다. 소스코드 기반의 재사용은 비록 재사용 가능한 독립적 모듈로 개발돼 있지만 실제로 소스코드를 그대로 재사용하는 경우는 드물다. 대부분이 소스코드를 개발자의 의도에 따라 수정해 재사용하는 게 허다하다. 특히 원시코드를 재사용할 경우 재사용하는 컴포넌트, 즉 원시코드 내부를 모두 이해해야 하기 때문에 재사용이 사실상 힘들다.

 이런 문제점을 개선한 것이 바로 컴포넌트 기반의 재사용 접근 방식이다. 이는 기존의 소스코드 기반 재사용이 아니라 실행코드 기반 재사용이다. 즉 컴포넌트 내부에 대한 구현은 모두 은폐시키고 인터페이스를 제공, 외부에서는 이인터페이스를 통해서만 접근할 수 있도록 하는 것이다. 이를 통해 컴포넌트를 재사용하는 사용자는 자신이 필요로 하는 컴포넌트를 수정하지 않고 사용할 수 있도록 해준다.

 컴포넌트 기반 소프트웨어 개발은 최근의 소프트웨어 공학에서 매우 중요하게 다루고 있는 반복적인 개발 프로세스를 적용하고 있다. 컴포넌트를 이용한 소프트웨어 개발과정에선 컴포넌트별로 구현대상 기능을 분할하고 이를 독립적으로 개발해 특정 시점에서 통합하는 형태의 접근 방법이 가능하다.

 컴포넌트로부터 애플리케이션을 조립할 수 있다는 것은 컴포넌트들이 일정한 개발환경 표준을 준수해야 한다는 것을 의미한다. 다른 산업에서 부품을 구매하는 것과 마찬가지로 컴포넌트 역시 주어진 일정한 기술표준에 맞아야 플러그인된다. 그렇기 때문에 플러그인하는 조각의 형태가 매우 중요한데 이것을 흔히 컴포넌트 표준이라 부른다.

 현재 시장에선 마이크로소프트의 COM+, 선마이크로시스템스의 EJB, OMG, CORBA 같은 몇몇 컴포넌트 표준 모델이 존재한다. 각 컴포넌트 표준의 특징을 간단히 살펴보면 다음과 같다.

 △COM=가장 큰 특징은 언어 중립성을 보장하기 때문에 C 같은 절차적인 언어나 C++ 같은 객체지향 언어, 비주얼 베이직 등 다양한 프로그래밍 언어를 지원한다. 또한 뛰어난 위치 투명성을 제공, 클라이언트에 동일한 접근 방법을 제공한다.

 △CCM(CORBA 컴포넌트 모델)=가장 두드러진 특징은 언어나 플랫폼·프로토콜 등에 종속되지 않는 완전히 개방된 산업표준을 제공한다는 점이다. 곧 선보일 CORBA 3.0은 CCM을 포함하는데 개발자가 컴포넌트를 구현·관리·구성·배포할 수 있는 트랜젝션·보안·영속성·이벤트 등 서비스를 제공한다.

 △EJB=가장 큰 특징은 서버 측의 표준 컴포넌트 모델을 제공했다는 점이다. 앞에서 언급한 COM+나 CORBA와 다르게 플랫폼이나 공급업체로부터 종속 문제를 해결했다는 점에서 큰 의미를 갖는다.

   

 <장길수기자 ksjang@etnews.co.kr>


브랜드 뉴스룸