- 컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위이다.
- 잘 설계된 컴포넌트는 반드시 독립적으로 배포 가능한 즉, 독립적으로 개발 가능한 능력을 갖춰야 한다.
- 런타임에 플러그인 형태로 결합할 수 있는 동적 링크 파일이 이 책에서 말하는 소프트웨어 컴포넌트에 해당한다.
컴포넌트는 어떻게 탄생하게 되었나
- 소프트웨어 초창기에는 메모리에서의 프로그램 위치와 레이아웃을 프로그래머가 직접 제어함.
- 라이브러리는 바이너리가 아니라 소스 코드 형태로 유지되었다. 라이브러리 함수 또한 개발자가 직접 애플리케이션 소스코드에 포함시켜 단일 프로그램으로 컴파일 했다.
- 컴파일 시간을 단축시키기 위해 함수 라이브러리의 소스 코드를 애플리케이션 코드로부터 분리하기 시작함. 함수 라이브러리를 개별적으로 컴파일하고, 컴파일된 바이너리를 메모리의 특정위치에 로드함.
- 로더를 사용해서 메모리에 재배치할 수 있는 형태의 바이너리를 생성하도록 컴파일러를 수정하기 시작.