컴포넌트기반개발(CBD), 소프트웨어를 부품화 한다
상태바
컴포넌트기반개발(CBD), 소프트웨어를 부품화 한다
  • 이재봉 기자
  • 승인 2003.01.02 00:00
  • 댓글 0
이 기사를 공유합니다

소프트웨어를 마치 레고 블록같이 필요한 부분만 조립해 새로운 서비스에 활용할 수 있는 응용 소프트웨어를 만들 수 없을까. 이 같은 고민에 대한 노력의 산출이 바로 컴포넌트기반개발(Component Based Development) 기술이다. 컴포넌트기반개발은 이미 개발된 컴포넌트(소프트웨어)를 조립하거나 활용해 보다 큰 규모의 소프트웨어를 개발, 정보시스템을 구축하는 것을 말한다. 현재 국내 CBD시장은 초기 형성 단계이지만 많은 중소 소프트웨어 업체들이 기존 애플리케이션을 컴포넌트하거나 SI 업체들이 SI 프로젝트의 부가가치를 높이기 위해 컴포넌트 기반 시스템 개발방식을 도입하고 있어 향후 전 소프트웨어 산업으로 확대될 전망이다. 소프트웨어 산업의 혁명으로 일컬어지는 국내 컴포넌트기반개발에 대한 현재 상태와 향후 방향을 살펴보았다.

정보화사회가 진전될수록 소프트웨어의 라이프사이클이 단축되고 저비용에 의한 소프트웨어 개발 기간 단축이 절실하게 요구되고 있다. 또한 인터넷의 확산으로 다양한 플랫폼 환경에서 다양한 소프트웨어 획득이 가능해져 이질적인 소프트웨어 컴포넌트들을 효과적으로 분류, 유통 및 조립할 수 있는 기술들이 필요하게 됐다. 따라서 컴포넌트 소프트웨어의 생산, 선택, 평가 및 통합으로 구성되는 소프트웨어 개발 방법이라는 새로운 패러다임이 등장하게 됐다.

컴포넌트=S/W 개발 부품

컴포넌트를 기반으로 한 소프트웨어 개발(CBD)은 독립된 단위의 컴포넌트들을 조립해 새로운 응용 소프트웨어를 개발하는 것을 말한다. 이는 메인보드에 사운드·그래픽·TV수신·메모리·랜 카드, CPU, 모니터 등 원하는 부품을 구입해 조립하면 하나의 컴퓨터 시스템을 완성할 수 있듯이 소프트웨어를 개발한다는 방법론이다.

컴포넌트는 독립된 단위로 기능을 하는 소프트웨어 조각으로 이를 조립해 완성된 소프트웨어를 개발할 수 있도록 만들어진 부품화된 소프트웨어이다. 이처럼 컴포넌트는 소프트웨어 산업구조를 주문개발의 형태에서 자동화된 조립생산 구조로 전환해 소프트웨어 생산공장을 실현함으로써 소프트웨어 생산성 및 품질향상을 획기적으로 가져올 수 있는 소프트웨어 산업혁명으로 일컬어지고 있다.

이처럼 CBD는 애플리케이션 개발의 신속성, 용이성, 플랫폼 독립성 등에 의해 개발비용의 절감, 제품 시장진입의 신속성, 생산성 및 품질 향상을 기할 수 있기 때문에 현재의 소프트웨어 위기를 극복하는 최선의 방법으로 떠오르고 있다.

CBD 개발에서 주요 이슈가 되고 있는 것은 ‘어느 단위까지를 하나의 컴포넌트로 묶을 것인가’와 ‘인터페이스를 어떻게 정의할 것인가’ 등이다. 이와 같은 부분이 업계 전반적으로 결정되지 않으면 컴포넌트를 만들어도 조립이 불가능하다. 이를 위해 업계에서는 기본적인 아키텍처를 표준화하는데 노력하고 있다.

현재의 소프트웨어 컴포넌트 산업구조는 컴포넌트 개발 및 판매(기능성 컴포넌트 및 비즈니스 컴포넌트), CBD 프로젝트 수행(SI), 컴포넌트 기반의 패키지 등 상용 소프트웨어 개발 판매, 아키텍처 및 플랫폼 개발 판매, 컴포넌트 및 CBD 지원도구 개발 및 판매, CBD 컨설팅, CBD 교육 등으로 구분되어 있다.

장준영 메인라인코리아 연구소장은 “컴포넌트 기반 개발을 통한 기대효과는 기술적인 측면과 경제, 산업적 측면에서 찾아볼 수 있다. 기술적 측면은 소프트웨어의 조립식 개발에 의해 시장 요구에 신속히 대처 가능하며 소프트웨어 라이프사이클에 적절히 대응할 수 있다”며 “재사용 환경 및 소프트웨어 표준화의 조기 정착을 유도할 수 있다”고 밝혔다. 또한 그는 “경제 및 산업적 측면에서는 응용분야별 공용 컴포넌트를 구축해 입체간 컴포넌트 공유환경을 제공하며 중복 투자를 방지해 개발비용 절감 및 기업의 경쟁력을 향상시킬 수 있다. 또한 컴포넌트 기반 소프트웨어 개발은 생산성 향상, 비용 절감, 품질 향상뿐만 아니라 특정 소프트웨어 컴포넌트나 모듈의 중복 개발을 감소시켜 기업과 국가의 투자 수익성을 증대시킬 수 있다”고 덧붙였다.

<표1> 비즈니스 컴포넌트 특징
구분
내용컴포넌트 예
비즈니스 공통
컴포넌트
대부분의 응용분야 시스템에서 공통적으로 사용되는 일반 비즈니스용 컴포넌트주소, 어카운트, 사업체, 환율, 회계연도 카렌다, 숫자표기, 환율차, 지불방식, 도량단위, 은행계좌, 송장 등
비즈니스 핵심
컴포넌트
특정 응용분야 시스템 개발에 사용되는 컴포넌트로 해당분야의 핵심기능을 제공하며, 확장 및 변경을 통해 시스템을 개발하는 컴포넌트를 프레임워크라고도 함회계원장, 창고관리, 주문관리, 그룹웨어, ERP 등의 컴포넌트
비즈니스 응요
컴포넌트
특정 응용분야에 직접 확용되는 실행 모듈 형태의 대규모 컴포넌트로 비즈니스 공통 컴포넌트 또는 비즈니스 핵심 컴포넌트 등을 조립하거나 확장해 개발 응용분야별 컴포넌트 개발철강, 금융, 조선, 자동차, 반도체, 항공 등의 비즈니스 컴포넌트
<자료: 메인라인코리아>

표준화 채택으로 재사용성·관리 수월

CBD가 세상에 처음 나타나게 된 것은 1995년 전후로 컴포넌트에 대한 상업적인 연구가 시작되면서 부터다. 국내에서는 초기 학계에서 학문적인 관점에서 연구되어 오다가 1999년 한국소프트웨어컴포넌트컨소시엄(KCSC)의 설립과 정부의 후원 등을 통해 본격적인 개발이 시작됐다.

CBD 전문가들은 CBD를 도입함으로써 얻을 수 있는 혜택을 크게 소프트웨어에 대한 재사용성과 관리의 효율성으로 압축하고 있다.

<표2> 기능별 컴포넌트 특징
구분내용컴포넌트 예
사용자
인터페이스
컴포넌트
가장 작은 규모의 컴포넌트로 GUI에 이용된다. 대부분의 경우 특화된 개발 도구가 직접 컴포넌트를 제공하며 여러 도구에 공통적으로 사용이 가능한 컴포넌트들로 개발각종 클래스 라이브러리 및 GUI 컴포넌트
개발자 툴
컴포넌트
각종 소프트웨어 개발도구가 제공하는 기능을 덧붙일 수 있도록 지원하는 컴포넌트로 대부분 개발도구에 특화되어 있음컴포넌트 개발 툴, 모델링 툴 컴포넌트 등
데이터 처리
지원 컴포넌트
데이터 및 데이터베이스 기능을 처리하는 컴포넌트데이터베이스 연결, 데이터 압축, 데이터 변환 컴포넌트 등
<자료: 메인라인코리아>

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.