https://hanamon.kr/%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-component%EB%9E%80/
모듈과 컴포넌트의 차이점
모듈과 컴포넌트 둘다 하나의 기능을 가지고 소프트웨어의 재사용하기 위해 사용합니다. 의미가 비슷하지만 둘의 차이점이 있습니다. 모듈은 구조의 최소 단위, 정적인 구조를 가지고 컴포넌트는 런타임에 독립적으로 배포되고 실행 되는 단위입니다.
https://cluster-taek.tistory.com/18
모듈 대 구성 요소
모듈과 구성 요소가 공통점이 많은 것 같지 않습니까? 그들은 둘 다 서로에게 물건을 제공하고 서로의 물건을 소비합니다. 또한 독립 배포 단위로 패키지됩니다. 이 둘은 하나이고 동일하거나 적어도 결합된 것으로 간주될 수 없습니까? 예, 할 수 있지만 구성 요소와 모듈은 다른 목적으로 사용되며 다소 직교합니다(구성 요소는 궁극적으로 모듈로 패키지될 수 있는 코드로 만들어지기 때문에 완전히 직교하지는 않습니다).
모듈은 코드 패키징 및 코드 간의 종속성을 처리합니다. 구성 요소는 상위 수준 기능 구현 및 구성 요소 간의 종속성을 처리합니다. 구성 요소는 코드 종속성을 관리해야 하지만 기술적으로 이를 수행하기 위해 모듈 시스템이 필요하지 않습니다(종종 우리 프로그래머가 클래스 경로를 통해 수행함).
좋은 요약은 모듈을 정적 코드 및 컴파일 시간 종속성을 처리하는 것으로 생각할 수 있는 반면 구성 요소는 인스턴스 및 실행 시간 종속성을 처리한다는 것입니다.
구성 요소와 모듈은 너무 자주 서로 혼동됩니다. 그러나 그것들은 동일하지 않으며 하나의 의미가 다른 하나에도 반드시 적용되는 것은 아닙니다.
모듈화는 코드를 관련 기능의 모듈로 분할하는 것입니다. 많은 프로그래밍 언어에서 모듈은 단순히 소스 파일입니다. 소스 파일이 너무 커지면 두 개 이상의 소스 파일로 분할하여 새 디렉토리에 넣는 것이 일반적입니다. 디렉토리는 종종 모듈이라고 부르지 않지만 이러한 종류의 분해는 여전히 모듈식입니다.
반면에 구성 요소는 다른 구성 요소와 다른 방식으로 구성되어 다른 프로그램을 구성할 수 있습니다. 즉, 실제 사람들이 함께 사용할 구성 요소를 결정하는 별도의 구성 단계가 있습니다.
하드 모듈화 개념을 적용하기 위해 컴포넌트 디자인이 사용되는 것을 보았습니다. 이 접근 방식은 구성의 상당한 오버헤드 때문에 권장할 수 없습니다. 구성 복잡성은 구성 요소의 수에 따라 다항식으로 증가합니다. 그리고 구성 요소의 수는 기능 그룹의 수에 따라 선형적으로 증가합니다. 구성 요소 분해로 모듈화를 시작하면 그렇지 않으면 새 모듈이 필요할 때마다 새 구성 요소를 강제로 생성해야 하기 때문입니다. 정말 어디에든 속합니다. 100개의 구성 요소에서 구성 오버헤드는 정규직이 되었으며 수많은 자동화 노력에도 불구하고 각 구성 반복은 최대 2주가 소요되었습니다. 이것은 개발을 크게 방해했습니다.
가장 간단한 권장 사항은 가능하면 구성 요소를 멀리하는 것입니다. 구성 요소가 때때로 필요할 수 있음을 잘 알고 있습니다. 예를 들어 여러 독립 조직이 프로젝트에 참여하는 경우 각 조직에 대해 하나의 구성 요소가 허용되는 것처럼 보입니다.
모두가 모듈화가 좋은 것이라는 데 동의하지만, 모듈로의 분해가 얼마나 세분화되어야 하는지는 취향의 문제입니다.
함수의 이름을 알고 있으면 내 편집자가 곧 찾을 것입니다. 반면에 어떤 이유로 함수(또는 해당 문제에 대한 클래스)의 이름을 모른다면 모듈화가 더 중요해집니다.
후자의 경우는 프로그램을 사용하여 경험할 수 있는 기능에 대한 문제일 뿐이므로 프로그램을 모듈로 분해하는 것은 프로그램의 동작을 기능 영역으로 직관적으로 분해하는 것을 반영하도록 하십시오.
https://stackoverflow.com/questions/2702816/module-vs-component-design
구성 요소는 특정 작업을 수행하거나 특정 기능을 제공하도록 설계된 독립적인 코드 조각입니다. 구성 요소는 일반적으로 모듈식으로 설계됩니다. 즉, 더 큰 시스템에 쉽게 연결할 수 있으므로 코드를 쉽게 재사용하고 관리할 수 있습니다. 그들은 종종 잘 정의된 인터페이스를 가지고 있어 다른 구성 요소나 시스템이 쉽게 상호 작용할 수 있습니다. 컴포넌트의 일반적인 예는 사용자 인터페이스의 버튼입니다.
반면에 모듈은 특정 기능을 제공하거나 특정 문제를 해결하기 위해 함께 구성된 구성 요소, 기능 및 기타 관련 코드의 모음입니다. 모듈은 일반적으로 구성 요소보다 크며 더 복잡한 기능을 제공합니다. 모듈은 여러 구성 요소를 포함할 수 있으며 필요한 기능을 제공하기 위해 다른 모듈에 의존할 수 있습니다. 모듈은 특정 문제나 요구 사항에 대한 완전한 솔루션을 제공하는 코드 단위로 생각할 수 있습니다. 모듈의 일반적인 예는 데이터 저장소 또는 사용자 인증과 같은 특정 기능을 제공하는 라이브러리 또는 프레임워크입니다.
결론적으로 구성 요소는 특정 기능을 제공하는 작은 모듈식 코드 조각인 반면 모듈은 문제에 대한 보다 복잡한 솔루션을 제공하는 더 큰 코드, 구성 요소 및 관련 기능 모음입니다.
'용어 및 개념' 카테고리의 다른 글
SPOF(단일장애지점)이란 (0) | 2023.10.19 |
---|---|
메타버스란? (metaverse) (0) | 2023.01.05 |
javascript는 왜 싱글스레드일까? (0) | 2022.06.29 |
Throttling 이란? (0) | 2022.04.26 |
buffer / cache 차이 (0) | 2022.03.30 |
댓글