CBD (Component-based development)


이미지 출처 : https://mobileappcircular.com/understanding-the-essence-of-component-based-architecture-5c6d4452f100

🖥️ CBD(component-based development, 테스트 주도 개발)이란?

기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 만드는 소프트웨어 개발방법론.


🖥️ CBD의 주요 원칙

1. 테스트 우선 접근법

  • 테스트를 먼저 작성하여, 원하는 기능을 구현하기 전에 예상되는 동작과 실패 조건을 명확히 정의.

🖥️ CBD의 출현 배경 및 역사

연도내용
1970년대소프트웨어의 개발속도가 하드웨어의 개발속도를 따라가지 못하고, 소프트웨어 유지보수에 너무 많은 시간과 인력이 필요하게 되면서 소프트웨어위기(Software Crisis)가 도래됨.
1980년대컴포넌트 기반 개발(CBD) 방법에 대한 연구 개발 시작. 소프트웨어의 재사용(Reuse) 및 독립성이 보장된 객체지향 방법론이 활용됨.
1990년대 중반객체지향 방법론에 기반한 컴포넌트 기반 개발 방법론은 컴포넌트 기반의 대규모 개발에 정착하기 시작.
2004년 ~차세대 컴포넌트 기술로 응용 분야에 특성을 잘 반영할 수 있는 영역별 아키텍처를 기반으로 하는컴포넌트 기술인 제품계열(Product Line) 방법론이 대두

🖥️ CBD의 장·단점

[CBD의 장점]

  • 소프트웨어의 재사용성(Reusability) 및 독립성
    • 기존의 컴포넌트를 재사용 할 수 있어 생산성과 경제성을 높일 수 있다.
  • 개발 기간 단축
    • 컴포넌트를 만드는데 자동화기능(Wizard)을 사용하거나, 소프트웨어 컴포넌트를 조립해서 새로운 애플리케이션을 만들 수 있다.
  • 유지보수(리팩토링) 용이
    • 컴포넌트가 캡슐화돼 있어, 로직상의 에러나 런타임 에러 등의 범위를 컴포넌트로 한정할 수 있다.
    • 단위 테스트 기반의 테스트 코드를 작성하기 때문에 추후 문제 발생시, 각각 모듈별로 테스트를 진행하여 이슈를 보다 빠르게 찾을 수 있다.
  • 시스템 통합성 및 확장성

[CBD의 단점]

  • 생산성 저하
    • 예외 상황의 발생으로 개발 기간이 타이트하게 잡힐 경우가 더러 있는데, TDD의 경우 테스트 코드를 작성한 후에 통과 코드를 작성하기 때문에 비효율적이다.
  • 사전 준비 기간 필요
    • 사전에 필요한 지식을 습득하고 개발 환경을 구축해야하기 때문에, TDD를 효과적으로 사용할 수 있는 수준으로 개발자를 교육하는 데 보통 수 개월의 시간이 필요하다.

🖥️ CBD 기술 종류

기술종류
특정 도메인의 컴포넌트 기반 소프트웨어 프레임워크ESMF, React.js
컴포넌트 지향 프로그래밍Unity, Unreal engine, XPCOM 등
분산 컴퓨팅 소프트웨어 컴포넌트Jakarta EE
웹 서비스REST
인터페이스 서술언어(IDLs)XML-RPC 등

출처 :
* https://en.wikipedia.org/wiki/Component-based_software_engineering
* 정의석, 「차세대 소프트웨어 개발 방법론」, 한국데이터베이스진흥원, 제115권, p94-97
* https://incodom.kr/%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%A3%BC%EB%8F%84%EA%B0%9C%EB%B0%9C


© 2024. All rights reserved.

Powered by Hydejack v9.2.1