컴포넌트 기반 개발(CBD, component based development) 무엇일까요?

컴포넌트에 대해서 먼저 알 필요가 있어요.

개발자분들이나 소프트웨어를 전공하신 분들은 익숙해 하실 단어 같네요. 독립적인 기능을 수행하는 모듈이라고도 들은 적이 있어요.

정의를 살펴보면, 보통 컴포넌트란 "재사용 가능한 독립적인 소프트웨어 구성의 단위"를 의미합니다.

컴포넌트에 대한 정의는 다양하지만 간단하게 정리한다면 독릭접으로 개발 가능하며 배포 가능한 어플리케이션 블록으로 정의할 수 있어요.

이제 컴포넌트에 대해 알았으니 개발하는 분야와 개발 방법론에 대해 알아볼게요.

 

지나가기 전, 알아두어야 상식 하나를 알려드리면 컴포넌트에 있어 가장 중요한 개념은 인터페이스입니다. 인터페이스에 의한 컴포넌트 개발자와 컴포넌트 사용자 간의 상호 작용이 결정되며, 인터페이스를 통해서만 접근이 허용될 뿐 컴포넌트 내부는 엄격하게 은닉될 수 있기 때문입니다.

* 인터페이스란: 컴포넌트가 수행할 하나 이상의 오퍼레이션의 집합, 하나의 컴포넌트는 하나 이상의 인터페이스를 가질 수 있으며 인터페이스별로 서로 다른 컴포넌트의 관점을 표현할 수 있습니다.

컴포넌트 기반 개발 소프트웨어

그렇다면, 이 컴포넌트를 기반으로 개발하는 분야는 어디일까요?

예를 들어, 로봇을 살펴볼게요. 로봇 소프트웨어의 경우 센서나 액추에이터 제어, 경로 계획, 장애물 감지 및 회피 등과 같이 매우 복잡한 기능들로 이루어져 있기 때문에 하나의 소프트웨어로 개발하는 것을 매우 어렵고 시간이 오래 걸리는 일이라고 해요. 이러한 이유로 소프트웨어를 각 기능별로 나누어서 개발하는 컴포넌트 기반 개발 방법론이 주로 이용됩니다.

로봇 소프트웨어의 경우 컴포넌트 기반 개반 방법론에 따라 각 기능들을 컴포넌트로 개발한 로봇 소프트웨어 아키텍처 또는 로봇 소프트웨어 프레임워크가 존재해요. 이러한 로봇 소프트웨어 아키텍처를 이용하는 경우 좀 더 쉬운 방법으로 로봇 시스템을 개발할 수 있는 것입니다.

이처럼 특정기능을 수행하는 여러 모듈로 한 시스템에 종속하지 않고 재사용과 교체가 가능해야 하는 분야에 자주 사용합니다.

컴포넌트 기반 개발 방법론에 대해서 알아보자

자체제작한 컴포넌트 기반 개발 순서도
컴포넌트 기반 소프트웨어 개발 방법론의 순서도(자체 제작도)

컴포넌트 기반 개발 방법론은 컴포넌트 개발과 컴포넌트 기반 소프트웨어 개발로 나눠요.

"컴포넌트 개발"은 전체 소프트웨어를 만드는 것이 아니라 개발하고자 하는 소프트웨어에 들어가는 서브프로그램을 개별로 만드는 것입니다.

도메인 분석 - 도메인 설계 - 컴포넌트 추출 - 컴포넌트 설계 - 컴포넌트 구현 - 컴포넌트 인증 - 분류 및 형상관리 - 컴포넌트 배포 등이 컴포넌트 개발에 필요한 일련의 업무들입니다. 그리고 소프트웨어 컴포넌트는 각 비즈니스 컴포넌트가 운영될 수 있는 기반 아키텍처를 제공해야 하므로 해당 도메인에 대한 이해와 함께 기술 아키텍처에 대한 이해도 선행되어야 해요. 비즈니스 컴포넌트는 한 번만 사용될 목적으로 만드는 것이 아니라 다양한 소프트웨어 개발에 여러 번 재사용될 목적으로 만들어야 하기 때문에 해당 도메인에 대한 분석이 매우 중요해요.

"컴포넌트 기반 소프트웨어 개발"은 개발된 컴포넌트들을 조립하여 특정 소프트웨어를 개발하는 것을 말해요. 소프트웨어 개발에 있어서 가능한 부품 단위로 만들어서 개발하거나 혹은 이미 잘 개발되어진 부품들을 구매하여서 이러한 부품들을 조립하여 소프트웨어를 개발하자는 것입니다.

어플리케이션 요구사항 - CBD설계 - 컴포넌트 특화 - 컴포넌트 조립 - 새로운 어플리케이션 등이 컴포넌트 기반 소프트웨어 개발에 해당해요.

 

 

도움이 되셨다면 공감, 댓글, 구독 부탁드릴게요!

저에게 큰 힘이 됩니다!!

로봇소프트웨어와 컴포넌트 기반 개발에 대해 더 알고 싶으시면 아래 출처를 참고해주세요!

 

www.ncs.go.kr/unity/th03/ncsSearchMain.do

 

NCS 국가직무능력표준, NCS 블라인드채용

NCS 메인에서 국가직무능력표준(National Competency Standards) 및 블라인드 채용에 대한 다양한 정보와 유용한 컨텐츠를 만나 보세요

www.ncs.go.kr

출처: NCS 학습모듈 19.전기·전자 > 03.전자기기개발 > 08.로봇개발 > 03.로봇소프트웨어개발 / 로봇 소프트웨어 요구 사항 정의

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기