본문 바로가기

IT Book Summary/Clean Architecture

05 아키텍처 - 1

15장 아키텍처란?

소프트웨어 아키텍트는 코드와 동떨어져서는 안되며,

팀원들이 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어야 한다.

시스템을 구축했던 사람들이 만들어낸 시스템의 형태.

그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수 되도록 만든다.

 

주된 목적은 시스템의 생명주기를 지원하는 것이다.

궁극적 목표는 시스템의 수명과 관련되 비용은 최소화하고, 프로그래머의 생산성은 최대화 하는데 있다.

 

개발

 

개발팀이 시스템을 쉽게 개발하도록 뒷받침.

 

작은 규모의 개발팀이라면 이러한 아키텍처 제약사항들이 방해가 된다고 느낄수도 있으나,

여러팀이 개발하고있다면 신뢰할 수 있는 안정된 인터페이스를 갖춘, 설계된 컴포넌트 단위로 분리하지 않으면 개발이 진척되지 않는다.

 

배포

 

배포 비용이 높을수록 시스템의 유용성은 떨어진다.

좋은 아키텍처는 한번에 쉽게 배포할 수 있게 하는데 목표를 둔다.

 

운영

 

대다수 운영에서는 단순 하드웨어를 더 투입해서 문제를 해결할 수 있다.

비용의 관점에서 운영보다는 개발, 배포, 유지보수에 중요서을 둔다.

 

유지보수

 

유지보수는 시스템에서 비용이 가장 많이 발생한다.

새로운 기능의 추가, 결함, 수정에 많은 인적자원이 소모된다.

 

선택사항 열어두기

 

소프트웨어를 부드럽게 유지하는 방버은 선택사항(중요치 않은 세부사항)을 최대한 많이 열어두는 것.

아키텍트의 목표는 정책을 가장 핵심적인 요소로 식별하고,

세부사항은 정책에 무관하게 만들 수 있는 형태의 시스템을 구축하는데 있다

 

좋은 아키텍트는 결정되지 않은 사항의 수를 최대화한다.

 

장치 독립성

 

프로그램은 운영체제의 서비스를 호출하고, 해당 서비스가 추상화된 단위 레코드 장치를 처리한다. 

코드가 특정장치에 종속적이게 하지 않도록 

오퍼레이터가 후상서비스를 어디에 연결해야 하는지 운영체제에게 알려주게 하면 된다.

 

광고우편

 

광고우편을 인쇄하는 프로그램에 관한 예시.

장치 독립성을 가지게 된 프로그램은 어떤 장치를 사용할 지 전혀 모른채 프로그램 작성이 가능했다.

장치 독립성에서 세부사항은 장치.

 

물리적 주소 할당

 

대규모 회계시스템에 대한 예시.

디스크의 물리적 구조를 알고 이를 통해 상대 주소로 변환하는 루틴을 도입해 

시스템에 고수준 정책이 디스크의 물리적 구조로부터 독립되도록 수정함.

 

결론

 

좋은 아키텍트는 세부사항을 정책으로부터 신중히 가려내고,

정책이 세부사항과 결합되지 않도록 분리.

세부사항에 대한 결저을 미룰 수 있는 방향으로 정책을 설계.

 

 

 

'IT Book Summary > Clean Architecture' 카테고리의 다른 글

05 아키텍처 - 3  (0) 2021.03.15
05 아키텍처 - 2  (0) 2021.03.08
04 컴포넌트 원칙 -2  (0) 2021.03.01
04 컴포넌트 원칙 -1  (0) 2021.02.20
03 설계원칙 -2  (0) 2021.02.20