728x90
반응형

컴포넌트 개념의 유래

많은 하드웨어 제품들은 각각 독립된 기능을 가진 모듈로 만들어짐

이 제품들은 회사 상관없이 서로 조합하여 하나의 제품이 만들어짐

이러한 제품들의 부품은 문제가 발생했을 시, 해당 부품만 다른 부품으로 바꾸어도 제품은 문제없이 작동함

컴퓨터와 스마트폰과 같은 제품들을 상상해보면 금방 이해가 갈 것임

 

반면 소프트웨는 상황이 다름

소프트웨어를 독립적으로 개발하지 않을뿐더러, 독립적으로 개발되어도 다른 모듈과의 호환을 생각하지 않고 개발함

이는 결국 소프트웨어의 재사용을 어렵게 하고 유지보수 비용이 크게 증가하는 원인이 됨

이러한 상황에서 소프트웨어의 재사용의 중요성과 필요성을 위해 나온 기술이 컴포넌트 기술임



컴포넌트는 독립적인 단위모듈

하드웨어처럼 독립적인 기능을 수행하고 추후에 교환될 수 있도록 해야함

또한 컴포넌트의 세부사항은 겉으로 드러나선 안되는것이며, 일부러 끄집어 내려는 시도조차 하지 말아야 함

필요한 것은 단지 해당 컴포넌트를 쓰기 위해 제공해주는 일종의 '장치'가 필요함

예를 들어서, 스마트폰의 밧데리 수명이 다했을 경우 배터리를 새로 구입하여, 스마트폰에서 밧데리만 교체함

이때 스마트폰 단자와 밧데리 단자가 맞물려야 제 기능을 발휘하는데 이때 배터리 단자가 앞서 말했던 일종의 '장치'임



컴포넌트 개념을 객체지향 언어에 대입

스마트폰과 배터리가 각각 독립적으로 문제없이 돌아간다고 가정할때, 상호간의 단자만 규격에 맞을시, 어떠한 배터리를 교환하더라도 스마트폰은 정상 작동할 것임

이와 같이 소프트웨어에서도 단자와 같은 일종의 장치가 필요함

객체지향 언어에서는 이러한 장치를 인터페이스(interface)로 제공해줌

인터페이스는 사용자에게 해당 소프트웨어를 쓰기위한 메서드(=장치)를 공개하고, 규격화된 메서드 환경에서 소프트웨어를 개발할 수 있는 환경을 제공함

소프트웨어의 세부내용은 인터페이스를 구현받은 클래스가 작성함

이렇게 함으로써 객체지향 개념은 정보은닉개념을 수행할 수 있을 뿐더러, 각각 독립된 모듈로 소프트웨어를 만들수 있도록 크게 이바지 할 수 있음

 

결론적으로, 컴포넌트는 각각 독립된 모듈을 뜻하며, 이는 흔히 JAVA같은 oop 언어등의 class등의 개념과는 다름

하나의 컴포넌트는 하나의 클래스로만 작성될 수도 있지만, 여러개의 클래스로도 작성될 수 있기 때문임

컴포넌트 개념을 잘 적용한 소프트웨어란 부품(인터페이스를 구현받은 클래스)만 바꾸어 주었을시, 오류 없이 잘 작동 되는 것을 의미함

 


출처 👇

mommoo.tistory.com/55

 

컴포넌트(Component)란?

컴포넌트(Component)개념의 등장배경 과 의미에 대해 기술한다. 컴포넌트 개념의 유래 많은 하드웨어 제품들은 각각 독립된 기능을 가진 모듈로 만들어진다. 이 제품들은 회사 상관없이 서로 조합

mommoo.tistory.com

 

반응형
복사했습니다!