검수요청.png검수요청.png

"컴포넌트"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
12번째 줄: 12번째 줄:
 
===구현, 명세화, 패키지화, 배포가 가능해야한다===
 
===구현, 명세화, 패키지화, 배포가 가능해야한다===
 
컴포넌트는 구현, 명세화, 패키지화, 그리고 배포 될 수 있어야 한다. 컴포넌트의 정의나 형태는 관점에 따라 다양하게 존재하지만, 재사용 부품으로서의 컴포넌트가 되기 위해서는 소스코드가 아닌 실행코드 기반으로 재사용할 수 있도록 이미 구현이 완료되어 있어야만 한다.<ref name='특징'>FIF, <[https://thefif19wlsvy.tistory.com/24 컴포넌트 전의-컴포넌트란 무엇인가?]>, 《FIF's 코딩 팩토리》, 2019-05-24</ref>
 
컴포넌트는 구현, 명세화, 패키지화, 그리고 배포 될 수 있어야 한다. 컴포넌트의 정의나 형태는 관점에 따라 다양하게 존재하지만, 재사용 부품으로서의 컴포넌트가 되기 위해서는 소스코드가 아닌 실행코드 기반으로 재사용할 수 있도록 이미 구현이 완료되어 있어야만 한다.<ref name='특징'>FIF, <[https://thefif19wlsvy.tistory.com/24 컴포넌트 전의-컴포넌트란 무엇인가?]>, 《FIF's 코딩 팩토리》, 2019-05-24</ref>
교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다. 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야 한다. 독립적인 업무 단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야 한다.<ref name='특징'>VincentGeranium Blog, <[https://vincentgeranium.github.io/study/2019/08/26/component.html Component(컴포넌트란?)]>, 《VincentGeranium Blog》, 2019-08-26</ref>
+
교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다. 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야 한다. 독립적인 업무 단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야 한다.<ref name='특징1'>VincentGeranium Blog, <[https://vincentgeranium.github.io/study/2019/08/26/component.html Component(컴포넌트란?)]>, 《VincentGeranium Blog》, 2019-08-26</ref>
 
컴포넌트는 해당 컴포넌트의 용도, 유형, 기술 표준과 인터페이스등에 대한 정보들에 대해서 명세화되어 있어야만 하고 교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다.
 
컴포넌트는 해당 컴포넌트의 용도, 유형, 기술 표준과 인터페이스등에 대한 정보들에 대해서 명세화되어 있어야만 하고 교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다.
 
컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야만 한다. 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야만 한다.<ref name='특징'>FIF, <[https://thefif19wlsvy.tistory.com/24 컴포넌트 전의-컴포넌트란 무엇인가?]>, 《FIF's 코딩 팩토리》, 2019-05-24</ref>
 
컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야만 한다. 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야만 한다.<ref name='특징'>FIF, <[https://thefif19wlsvy.tistory.com/24 컴포넌트 전의-컴포넌트란 무엇인가?]>, 《FIF's 코딩 팩토리》, 2019-05-24</ref>

2020년 8월 18일 (화) 15:52 판

컴포넌트란 여러 개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위를 말한다. 컴포넌트를 이용하면 소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 조립식으로 쉽게 할 수 있다. 모듈(module)이라고도 한다. 상용 컴포넌트에는 DextUpload, r-Mate Chart 등이 있다. 컴포넌트 기반의 개발방법론을 CBD 방법론이라고 한다.

개요

컴포넌트는 프로그램의 한 부분을 의미하며 재사용이 가능한 최소 단위를 말한다. 객체지향언어를 사용할 때 자주 사용되며 재사용이 가능하기 때문에 컴포넌트 단위로 분류하거나 이동 가능하다는 특징이 있다.[1]

유래

소프트웨어는 독립적으로 개발되지 않은 경우가 많고, 독립적으로 개발되어도 다른 모듈과의 호환을 생각하지 않고 개발한다. 이는 소프트웨어의 재사용을 어렵게 하고 유지보수 비용이 크게 증가하는 원인이 된다. 이러한 상황에서 소프트웨어의 재사용의 중요성과 필요성을 위해 나온 기술이 컴포넌트 기술이다.[2]

특징

컴포넌트는 소프트웨어 시스템에서 독립적인 업무 또는 독립적인 기능을 수행하는 모듈로 시스템을 유지보스하는데 있어서 교체가 가능하다. 소프트웨어 컴포넌트는 하드웨어의 그래픽카드와 같은 개념으로 독립적인 기능을 수행하는 소프트웨어 모듈이라고 할 수 있다.

구현, 명세화, 패키지화, 배포가 가능해야한다

컴포넌트는 구현, 명세화, 패키지화, 그리고 배포 될 수 있어야 한다. 컴포넌트의 정의나 형태는 관점에 따라 다양하게 존재하지만, 재사용 부품으로서의 컴포넌트가 되기 위해서는 소스코드가 아닌 실행코드 기반으로 재사용할 수 있도록 이미 구현이 완료되어 있어야만 한다.[3] 교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다. 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야 한다. 독립적인 업무 단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야 한다.[4] 컴포넌트는 해당 컴포넌트의 용도, 유형, 기술 표준과 인터페이스등에 대한 정보들에 대해서 명세화되어 있어야만 하고 교체 가능한 컴포넌트를 개발하기 위해서는 표준을 준수하여 개발해야 한다. 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화되어 있어야만 한다. 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용 할 수 있도록 독립적으로 배포 가능해야만 한다.[3]

하나의 컴포넌트는 하나 이상의 클래스들로 구성될 수 있다

컴포넌트는 하나 이상의 클래스로 구성될 수 있다. 컴포넌트와 클래스는 다른 개념이며 컴포넌트와 객체 또한 다른 개념이므로 컴포넌트가 되기 위해서는 반드시 클래스나 객체로 만들어야만 하는 것은 아니다. 하나 이상의 컴포넌트를 개발하기 위해서는 하나 이상의 클래스들을 바탕으로 개발할 수 있으며, 컴포넌트가 실행될 때 해당 컴포넌트의 인스턴스인 컴포넌트 객체가 수행된다.

인터페이스를 통해서만 접근 가능

컴포넌트는 인터페이스를 통해서만 접근이 가능하다. 컴포넌트는 은닉성을 가지고 있어 외부에서 접근할 수 있도록 컴포넌트가 제공하는 서비스를 정의한 인터페이스만을 제공하고 컴포넌트를 사용하기 위해서는 어떤 인터페이스를 사용해야 하는지만을 알 수 있다.[3]

장점

미리 구현되어 있는 컴포넌트를 조립함으로써 소프트웨어 시스템 구축을 가능하게 한다. 컴포넌트를 재사용 함으로써 보다 유연하게 소프트웨어 시스템을 구축할 수 있다는 장점을 가지고 있다. 이는 요구자의 요구가 계속적으로 변화될 수 있기 때문에 변화에 유연하게 대처하기 쉽도록하는 것이다.[5]

CBC(Component Based Development)

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


각주

  1. WEBISFREE, <웹에서 말하는 컴포넌트란 무엇인가?>, 《WEBISFREE》, 2017-09-21
  2. 개발자로 홀로 서기, <컴포넌트(Component)란?>, 《개인 블로그》, 2016-10-20
  3. 3.0 3.1 3.2 FIF, <컴포넌트 전의-컴포넌트란 무엇인가?>, 《FIF's 코딩 팩토리》, 2019-05-24
  4. VincentGeranium Blog, <Component(컴포넌트란?)>, 《VincentGeranium Blog》, 2019-08-26
  5. 29기 김영준, <컴포넌트와 CBD 개요>, 《개인 블로그》, 2015-03-18
  6. 박스여우, <Component의 정의와 CBD 방법론>, 《개인 블로그》, 2019-06-10

참고자료


  검수요청.png검수요청.png 이 컴포넌트 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.