사업관리

CBD방법론

Lina song 2024. 2. 12. 18:02

'CBD방법론'이란 컴포넌트 기반 개발(Component Based Development)의 약자로, 재사용 가능한 컴포넌트를 조합하여 소프트웨어를 개발하는 방법론이다.

여기서 컴포넌트란 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈을 뜻한다.

예를들어 레고는 각각 독립적이고 재사용이 가능하다. 이러한 특성으로 레고를 조합하여 집, 배, 비행기등 다양한 구조물들을 만들 수 있다.

이와 마찬가지로 레고블럭으로 만든 구조물을 소프트웨어라고 가정하면, 각각의 레고블럭들은 하나의 컴포넌트가 되는 것이다.

컴포넌트 예시

앞서 말했듯 컴포넌트가 독립적이 기능 혹은 서비스를 제공하는 독립적인 모듈이므로 이를 필요로하는 여러 애플리케이션에서 반복적으로 재사용되도록 한다는 것이다. 따라서 이는 코드 수준에서의 재사용이 아니라 실행 모듈 단위의 재사용이다. 즉,  애플리케이션 개발의 관점을 구현이 아니라 이미 만들어진 부품을 바타응로 조립하는 것으로 인식해야 한 다는 것이다.

 

그러므로 컴포넌트 기반 개발 방식을 적용하기 위해서는 개발하고자 하는 시스템에서 필요로 하는 기능 및 서비스를 제공하는 컴포넌트를 식별하고 이를 정의하는것이 가장 중요하다. 식별 및 정의가 잘 되어 있다면 요구상이 변화할 경우 이에 영향을 받는 부분을 식별하여 손쉽게 다른 부품으로 대체가 가능하여 요구사항 변화에 유연한 대처가 가능하다.

 

레고로 만든 집들을 모아 마을을 만들수 있듯, CBD 방법론은 특정 프레임워크 상에서 실행되는 부품화된 컴포넌트를 바탕으로 이를 조립하여 더 큰 컴포넌트를 만들거나 애플리케이션을 개발하는 방법론이다.

이러한 컴포넌트 기반 개발은 기존 방법론들이 제대로 해결하지 못한 개발 생산성, 소프트웨어 재사용성, 시스템 유지보수 성, 품질을 향상 시킬 수 있는 대안으로 주목받고 있다.

 

CBD를 이용한 접근법은 개념적으로 두가지로 구분할 수 있다.

컴포넌트 자체를 만들기 위한"컴포넌트 개발(CB)"와 이미 개발된 컴포넌트를 바탕으로 시스템을 개발하는 "컴포넌트 기반 개발(CBD)"이 있다.

이중에서 컴포넌트 개발은 완전한 시스템을 맞드는 것이 아니라 재사용 가능한 부품을 만드는 것이므로 해당 도메인을 상세하게 분석하여 범용성이 높은 부품을 정의하는 것이 중요하다. 반면 컴포넌트 기반 개발은 기존의 부품을 조립하여 요건에 적합한 시스템을 완성하는 것이므로 요구사항을 분석하고 이에 적합한 부품으 식별 및 조립항 시스템의 기능적/비기능적 요건을 충족할 수 있도록 관리하는것이 중요하다. 따라서 CBD를 적용하기 위해 개발 대상 업무와 아키텍처(비지니스/시스템/네트워크)에 대한 이해가 필수다.

 

이글에서 소개하고자 하는건 CBD임으로 CBD에 대해 더 소개하고자 한다.

해당 개발 방법론을 적용할 경우 사업추진절차는  요구사항 분석 -> 분석 및 설계 -> 명세 -> 구현 ->테스트로 구성된다.

 

CBD사업추진절차

 

 

 순차적으로 설명하자면 요구사항 분석 단계에서는 시스템에 대한 사용자의 요구사항을 파악하고, 대게 유스케이스를 사용하여 세부 내역을 정의하는 작업을 수행한다. 여기서 최대한 자세하고 명확한 요구사항을 수집 및 파악하는 것이 중요하다.

설계단계에서는 이전 단계에서 도출된 요구사항을 토대로 이를 반영할 수 있는 아키텍처(업무/시스템/네트워크)를 파악하고, 대게 클래스 다이어그램을 이용하여 이의 세부 내역을 정의하는 작업을 수행한다.

명세단계에서는 설계단계에서 정의된 아키텍처를 기반으로 구현 컴포넌트와 구현클래스를 파악하여, 대개 인터페이스 명세를 사용하여 이의 세부내역을 정의하는 작업을 수행한다.

구현단계에서는 개발자가 명세가 오나료된 모델을 바탕으로 이를 구현하는 작업을 수행한다.

구현 컴포넌트에 대한 인터페이스나 오퍼레이션과 등과 같은 세부사항을 묘사하기 위해 컴포넌트를 개발하는 과정에서 개발자들이 필수적으로 작성해야 하는 산출물을 정의할 필요가 있다. 이는 구현 컴포넌트를 이용한 조립 및 유통을 위해서는 개발 절차보다는 개발과정에서 작성해야 하는 산출물과 이를 작성하는 방법을 이해하는것이 보다 중요하기 때문이다.