[ 클린아키텍처 ] 15장. 아키텍처란?

지원·2022년 12월 6일
0
post-thumbnail
  • 소프트웨어 시스템의 아키텍처란, 시스템을 구축했던 사람들이 만들어낸 시스템의 형태
  • 그 형태는 소프트웨어 시스템이 쉽게 개발, 배포, 운영, 유지보수되도록 만들어진다.
  • 아키텍처의 주된 목적은 생명 주기를 지원하는 것
    ( = 시스템 수명 관련 비용은 최소화, 프로그래머의 생산성은 최대화)

가능한 한 많은 선택지를, 가능한 한 오래 남겨두는 전략을 따라야 함

1) 개발

: 아키텍처는 개발팀이 시스템을 쉽게 개발할 수 있도록 뒷받침 되어야 함

2) 배포

시스템을 단 한번에 쉽게 배포할 수 있도록 만드는데에 그 목표를 두어야 함
(초기 개발 단계에서는 배포 전략을 거의 고려하지 않는 경우가 많음. 하지만 초기에 고려하여 더 적은 서비스를 사용하고, 서비스 컴포넌트와 프로세스 수준의 컴포넌트를 하이브리드 형태로 융합)

3) 운영

운영은 하드웨어를 더 투입하면 해결되기에 개발, 배포, 유지보수에 미치는 영향 보다는 덜 극적인 부분이 있다.
하지만, 시스템 아키텍처는 개발자에게 시스템의 역할을 잘 드러내준다. 이를 통해 시스템을 이해하기 쉬워지며, 따라서 개발과 유지 보수에 도움을 주는 역할을 한다.

4) 유지보수

소프트웨어 시스템에서 가장 비용이 많이 드는 부분
유지보수의 가장 큰 비용은 탐사(spenlunking)에 있다.

*탐사란?
기존 소프트웨어에 새로운 기능을 추가하거나 결함을 수정할 때, 소프트 웨어를 파해쳐서 어디를 고치는게 최선인지, 그리고 어떤 전략을 쓰는게 최적일지를 결정할 때 드는 비용

선택사항 열어 두기

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

모든 소프트웨어 시스템은 정책 & 세부사항으로 이루어진다.
세부사항을 정책으로부터 신중하게 가려내고, 정책이 세부사항과 결합되지 않도록 업격하게 분리해야 한다.

정책

  • 모든 업무 규칙과 업무 절차를 구체화. 시스템의 진정한 가치가 살아 있는 곳.
  • 고수준의 정책은 외부 세계로의 인터페이스에 대해 독립적이어야 함.

세부사항

  • 사람, 외부 시스템, 프로그래머가 정책과 소통할 때 필요한 요소. but, 정책이 가진 행위에 영향을 미치지 않음.
profile
안녕하세요 지원입니다.

0개의 댓글