컴포넌트란 무엇인가?컴포넌트는 시스템을 구성하는 요소로서, 배포 가능한 가장 작은 단위이다. 이 정의만 보면 "하나의 서비스 = 하나의 컴포넌트"처럼 이해하기 쉬운데, 꼭 그런 것은 아니다. 컴포넌트는 반드시 서비스 단위와 일치하지 않는다.여기서 말하는 컴포넌트는 하나의 프로세스 안에서 동작하며, 서로의 코드를 직접 의존할 수 있는 단위이다.(만약 마이크로서비스 아키텍처를 채택한다면, 각 컴포넌트는 별도의 프로세스로 존재하게 된다.) 즉, 여러 개의 배포 파일(모듈·라이브러리 등)을 모아 하나의 프로세스를 구성할 수 있고, 그 안에서 각각은 독립된 컴포넌트로 취급될 수 있다. 컴포넌트 설계에서 자주 나오는 질문“이 클래스는 어떤 컴포넌트에 포함시켜야 할까?”이 질문에 답을 줄 수 있는 세 가지 원칙이 ..