티스토리 뷰

Component와 Module은 개발을 하다보면 매우 흔하게 사용되는 용어입니다. 하지만 이러한 Component라는 용어를 한 마디로 정의하자면 매우 어려울 것입니다. 그래서 이번 포스팅을 통해 Component와 Module에 대해 한 마디로 정의할 수 있도록 정리해보고자 합니다.

 

개인적으로 가지고 있던 컴포넌트의 정의는 "재사용 할 수 있는 단위"라고 생각하고 있었습니다. 사실 Component의 등장 배경 중 일부는 코드를 재사용 하고 반복을 줄이기 위함이였기 때문에 완전히 틀린 정의는 아니였습니다. 하지만 단순한 이 정의는 일반적인 함수나 클래스와 같이 다른 재사용 가능한 것들과 차별점이 없다는 것을 깨닳게 되었습니다.

 

그래서 보다 더 정확한 정의를 내리기 위해 자료를 찾아보게 되었고, 크게 두 가지의 정의를 찾을 수 있었습니다.

- 컴퓨터 소프트웨어에 있어서, 다시 사용할 수 있는 범용성을 위해 개발된 소프트웨어 구성 요소를 일컫는다

- 컴포넌트는 잘 정의된 아키텍처 상에서 어떠한 기능을 수행하는 시스템의 독립적이면서 교체가능한 부품이다

 

그리고 컴포넌트의 특징은 아래와 같습니다.

 

  • 재사용할 수 있도록 이미 구현이 완료되어 있어야만 한다

  • 해당 컴포넌트의 용도, 유형, 기술표준과 인터페이스등에 대한 정보들에 대해서 명세화 되어 있어야만 한다

  • 교체가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다

  • 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야만 한다

  • 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용할 수 있도록 독립적으로 배포 가능해야만 한다

이를 통해 나름대로 재정의 해보자면 컴포넌트는 특정기능을 수행하는 모듈로써 한 시스템에 종속적이지 않아 재사용 가능하며 교체가 가능해야한다. 라고 정의를 내릴 수 있을것 같습니다. 또한 컴포넌트는 여러개의 함수, 여러개의 클래스로 구현되며 인터페이스를 통해서만 접근하도록 하여 쉽게 컴포넌트를 교체할 수 있도록 한다는 중요한 특징이 있습니다.

 

CBD - Component Based Development


컴포넌트 기반 개발 방법론은 여러 시스템이나 소프트웨어에서 재사용할 수 있도록 여러 컴포넌트들을 만들고 재 조립하는 소프트웨어 개발 방법론 입니다. 소프트웨어 전체를 처음부터, 통째로 개발하던 기존 방식과 달리 각 기능별로 분리하여 개발하고 이를 재사용함으로써 소프트웨어 개발에 드는 반복적인 작업과 시간을 줄일 수 있습니다.

 

사실상 최근에는 대부분의 소프트웨어가 CBD 방법론을 암시적으로 하고 있어서 CBD 방법론이 새롭게 느껴지진 않을 것 같습니다.

 

 

참고자료


 

컴포넌트의 정의-컴포넌트란 무엇인가?

컴포넌트란 무엇인가?- 컴포넌트란 무엇인가? - (한국소프트웨어컴포넌트컨소시엄의 ‘알기쉬운 소프트웨어...

blog.naver.com

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함