더북(TheBook)

1.4 구성 요소 간 관계

우리는 프로그래머로서 시스템의 구성 요소 간 연결보다는 구성 요소 그 자체에 중점을 두는 경향이 있습니다. 시스템의 구성 요소는 코드로 되어 있으므로 여느 소프트웨어처럼 마치 실체가 있는 것처럼 느낍니다. 그 자체로 컴파일이나 패키징, 배포, 전달까지 할 수 있어 더욱 실체가 있는 것 같습니다.

하지만 시스템의 구성 요소는 그 자체만으로는 중요하지 않습니다. 소프트웨어는 모든 구성 요소가 의미 있는 방식으로 서로 연결될 때 비로소 생명력을 지니기 때문입니다. 무엇이 어떻게 연결될지는 우연이 아니라 의도적으로 결정해야 합니다.

일부 유명한 아키텍처는 구성 요소 간 관계에 중점을 둡니다. 예를 들어 유닉스 셸(Unix shell) 아키텍처는 프로그램과 스트림이라는 두 가지 기본 요소로 구성됩니다. 스트림은 방향성을 가지며, 입력과 출력이 있습니다. 프로그램은 입력을 여러 개 읽고 출력을 여러 개 쓸 수 있습니다. 여기에서 은 한 프로그램에서 다음 프로그램으로 입력과 출력을 연결하여 데이터가 흐르는 파이프라인을 형성합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.