일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 패스트캠퍼스후기
- String
- 스프링
- Spring
- 직장인인강
- 자바기본
- 디자인
- DesignPattern
- java기초
- ncs
- 패캠챌린지
- DB
- 리눅스
- java
- 국비
- 데이터베이스
- javabasic
- 패스트캠퍼스
- js
- 자바
- 자바연습문제
- 자바기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 자바예제
- 직장인자기계발
- 웹
- linux
- 디자인패턴
- 재택근무
- Today
- Total
FIF's 코딩팩토리
컴포넌트 정의 - 컴포넌트란 무엇인가? 본문
1. 컴포넌트는 독립적인 소프트웨어 모듈이다.
컴포넌트를 한마디로 표현하자면 소프트웨어 시스템에서 독립적인 업무 또는 독립적인 기능을 수행하는 ‘모듈’로서 이후 시스템을 유지보수 하는데 있어 교체 가능한 부품이다.
소프트웨어 컴포넌트는 하드웨어의 그래픽카드와 같은 개념으로 독립적인 기능을 수행하는 소프트웨어 모듈이라고 설명할 수 있으며 소프트웨어 컴포넌트는 컴포넌트란 말로 대체되어 사용되고 있다.
2. 컴포넌트는 구현, 명세화, 패키지화, 그리고 배포 될 수 있어야 한다.
- 컴포넌트의 정의나 형태는 관점에 따라 다양하게 존재하지만, 재사용 부품으로서의 컴포넌트가 되기 위해서는 아래의 내용을 만족해야만 한다.
- 소스코드(source code)가 아닌 실행코드(execute code) 기반으로 재사용할 수 있도록 이미 구현(implemetntation)이 완료되어 있어야만 한다.
- 컴포넌트는 해당 컴포넌트의 용도, 유형, 기술표준과 인터페이스등에 대한 정보들에 대해서 명세화(specification) 되어 있어야만 한다.
- 교체가능한 컴포넌트를 개발하기 위해서는 표준(standard)을 준수하여 개발해야 한다.
- 컴포넌트가 개발되어 배포될 때 관련 문서와 코드들이 독립적인 단위로 패키지화(packaing)되어 있어야만 한다.
- 컴포넌트는 독립적인 업무단위로 개발된 것이므로 사용자가 필요한 기능만을 패키지한 컴포넌트를 재사용할 수 있도록 독립적으로 배포(deployment) 가능해야만 한다.
3. 하나의 컴포넌트는 하나 이상의 클래스로 구성될 수 있다.
컴포넌트와 클래스는 다른 개념이며 컴포넌트와 객체 또한 다른 개념이므로 컴포넌트가 되기 위해서는 반드시 클래스나 객체로 만들어야만 하는 것은 아니다.
기존의 C나 Cobol로 개발된 모듈 또한 컴포넌트로 만들 수 있으나 현재의 컴포넌트 기술 표준들과 핵심개념들이 객체지향에서 비롯된 개념들이 많아 컴포넌트를 개발하는데 있어 객체지향 기술을 바탕으로 하는 것이 보다 효과적일 수 있다.
하나의 컴포넌트를 개발하기 위해서는 하나 이상의 클래스들을 바탕으로 개발할 수 있으며 이렇게 개발된 컴포넌트가 실행될 때 해당 컴포넌트의 인스턴스(instance)인 컴포넌트 객체가 수행된다.
이때 컴포넌트 내부에는 하나 이상의 클래스에 대응하는 하나 이상의 객체들이 수행되고 있는 것 이라고 생각할 수 있다.
4. 컴포넌트는 인터페이스를 통해서만 접근할 수 있다.
컴포넌트내의 정보는 외부로부터 모두 숨겨진다.(은닉)
따라서 외부에서 접근할 수 있도록 컴포넌트가 제공하는 서비스를 정의한 인터페이스만을 제공하고 컴포넌트를 사용하기 위해서는 어떤 인터페이스를 사용해야 하는지만을 알 수 있다.
따라서 인터페이스는 외부와의 연결을 위해 반드시 존재해야만 하며 이처럼 컴포넌트가 내부 정보를 숨기고 인터페이스만 제공함으로써 소프트웨어도 하드웨어처럼 조립 기반으로 갈 수 있게 되는 것이다.
'IT용어' 카테고리의 다른 글
EAI(Enterprise Application Intergration) (0) | 2019.07.24 |
---|---|
캐시란 무엇일까? (0) | 2019.07.23 |
Binary 모드 VS Ascii 모드 (0) | 2019.05.21 |
공부하면서 모르는 IT용어 정리(2) (0) | 2019.05.17 |
공부하면서 모르는 IT용어 정리(1) (0) | 2019.05.13 |