[Clean Architecture] Ch.5 아키텍처 - 1

Manx·2022년 11월 15일
0

Clean Architecture

목록 보기
5/5

아키텍처란

  • 소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 절대로 속으면 안 된다.
  • 소프트웨어 아키텍트는 코드와 동떨어져서는 안 된다.
  • 소프트웨어 아키텍트는 최고의 프로그래머이며,
    앞으로도 계속 프로그래밍 작업을 뭍을 뿐만 아니라 동시에 나머지 팀원들이 생산성을 극대화할 수 있는 설계를 하도록 방향을 이끌어 준다.

소프트웨어 아키텍트가 코딩을 계속 하는 이유
-> 발생하는 문제를 경험해보지 않는다면 다른 프로그래머를 지원하는 작업을 제대로 수행할 수 없기 때문이다.


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

시스템 아기텍처는 시스템의 동작 여부와는 거의 관련이 없다.

  • 형편없는 아키텍처를 갖춘 시스템도 수없이 많지만, 그런대로 잘 동작한다.
  • 운영보다는 배포, 유지보수, 계속되는 개발 과정에서 어려움을 겪는다.

아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이다.
좋은 아키텍처는 시스템을 쉽게 이해하고, 쉽게 개발하며, 쉽게 유지보수하고, 또 쉽게 배포하게 해준다.

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

운영에서 겪는 대다수의 어려움은 소프트웨어 아키텍처에는 극적인 영향을 주지 않고도 단순히 하드웨어를 더 투입해서 해결할 수 있다.


소프트웨어를 부드럽게 유지하는 방법은 선택사항을 가능한 한 많이, 그리고 가능한 한 오랫동안 열어 두는 것이다.
-> 열어 두어야 할 선택 사항 : 중요치 않은 세부사항

모든 소프트웨어 시스템은 정책과 세부사항으로 나눌 수 있다.

  • 정책 : 시스템의 진정한 가치가 살아 있는 곳
  • 세부사항 : 사람, 외부 시스템, 프로그래머가 정책과 소통할 때 필요한 요소지만, 정책이 가진 행위에는 조금도 영향을 미치지 않는다.
    ex) 입출력 장치, DB, 웹 시스템, 서버, 프레임 워크 등

아키텍트의 목표는 시스템에서 정책을 가장 핵심적인 요소로 식별하고, 동시에 세부사항은 정책에 무관하게 만들 수 있는 형태의 시스템을 구축하는데 있다.

좋은 아키텍트는 세부사항을 정책으로부터 신중하게 가려내고, 정책이 세부사항과 결합되지 않도록 엄격하게 분리한다. 세부사항에 대한 결정을 가능한 한 오랫동안 미룰 수 있는 방향으로 정책을 설계하라.

독립성

profile
백엔드 개발자

0개의 댓글