2025-07-24 22:27

Status:

Tags:소프트웨어 공학

컴포넌트

재시용성, 캡슐화, 모듈화를 통해 복잡한 시스템을 효과적으로 구축, 유지보수 할 수 있도록 고안

전통적인 모놀리식 방식 한계 재사용성과 모듈화의 필요성

  • 코드 유지 보수 어려움
  • 확장성 부족
  • 협업 어려움
  • 중복 코드 작성

1968년 재사용 가능한 소프트웨어 부품 개념을 제안하면서 시작 하드웨어 부품을 조립하듯이 소프트웨어 구축하려는 시도

마치 공장 조립과 같은 소프트웨어 개발 매번 새로운 코드를 작성하는 대신 검증된 부품으로 소프트웨어 조립가능하게 됨

초기에는 대규모 라이브러리를 구축하는 방식이 기대됨. 하지만 효과적인 재사용은 특정 도메인에 집중하는 것이 핵심임이 드러남.

작은 컴포넌트 모음(약 100개 이하)은 사용하기 쉽고, 라이브러리 검색 시스템 없이도 충분히 활용 가능하다는 것이 경험적으로 증명

“소프트웨어 컴포넌트는 계약(인터페이스)으로 명시된 제공·요구 기능과 명시적 의존성만을 가지며, 독립 배 포·제3자 조합이 가능한 조립 단위” 소프트웨어 컴포넌트 정의 상세 해설

  • 단위 조합(Unit of Composition): 여러 부품 조합해 전체 큰 시스템 구성
  • 인터페이스로 통신
  • 명시적 의존성
  • 독립 배포성

리액트 컴포넌트는 위와같은 컴포넌트의 정신을 기반으로 해서 재사용가능한 코드 블록, 커스텀 html 태그와 비슷한 느낌으로 구현됨

References

소프트웨어 컴포넌트 핸드북 요약 소프트웨어 컴포넌트 정의 상세 해설 리액트 컴포넌트 핸드북_ 만들어진 이유부터 사용법까지 소프트웨어 아키텍쳐, 컴포넌트, 재사용 역사에 대한 소개 핵심 요약 https://lilys.ai/digest/5151244/4580338?s=1&noteVersionId=876691