[클린 아키텍처] 2. 두 가지 가치에 대한 이야기

햄도·2021년 6월 22일
0

Clean Architecture

목록 보기
2/11

출처

클린 아키텍처를 읽으며 정리한 내용입니다.

2. 두 가지 가치에 대한 이야기

  • 소프트웨어 시스템이 이해관계자에게 제공하는 두 가지 가치: 행위와 구조
  • 개발자는 두 가지를 반드시 높게 유지해야 하지만, 보통 덜 중요한 한 가지 가치에만 집중하고 다른 한 가지는 배제하곤 한다.

행위

  • 이해관계자의 기계가 요구사항을 만족하도록 코드를 작성하는 것
  • 많은 프로그래머가 요구사항을 기계에 구현하고 버그를 수정하는 일이 자신의 직업이라고 믿지만, 그것은 틀렸다.

아키텍처

  • 소프트웨어는 부드러움을 지니도록 만들어졌다. 소프트웨어를 만든 이유는 기계의 행위를 쉽게 변경할 수 있도록 하기 위해서다. 다시 말해 변경하기 쉬워야 한다.
  • 변경사항을 적용하는 데 드는 어려움은 변경되는 범위에 비례해야 하며, 변경사항의 형태와는 관련이 없어야 한다.
  • 이해관계자는 범위가 비슷한 변경사항들을 제시할 뿐이지만, 개발자는 복잡도가 지속적으로 증가하는 퍼즐 판 위에서 계속해서 퍼즐 조각을 맞춰야 하는 것처럼 느낀다.
  • 아키텍처가 특정 형태를 다른 형태보다 선호할수록, 새로운 기능을 이 구조에 맞추는 게 힘들어진다.
  • 따라서 아키텍처는 형태에 독립적이어야 하고, 그럴수록 더 실용적이다.

더 높은 가치

  • 둘 중 어떤 것의 가치가 더 높을까?
  • 업무 관리자에게 묻는다면 행위가 더 중요하다고 대답하며, 개발자는 보통 동조할 것
  • 하지만.. 완벽하게 동작하지만 수정이 불가능한 프로그램보다는 동작하지 않지만 변경이 쉬운 프로그램이 낫다.

아이젠하워 매트릭스

  • 긴급한 문제가 아주 중요한 문제일 경우는 드물고, 중요한 문제가 몹시 긴급한 경우는 거의 없다.
  • 행위는 긴급하지만 매번 높은 중요도를 가지는 것은 아니다.
  • 아키텍처는 중요하지만 긴급하진 않다.
  • 우선순위는 다음과 같이 매길 수 있다.
    1. 긴급/중요(아키텍처, 행위)
    2. 안긴급/중요(아키텍처)
    3. 긴급/안중요(행위)
    4. 안긴급/안중요
  • 세 번째에 위치한 항목을 첫 번째로 격상시키지 말자
  • 기능의 긴급성이 아닌 아키텍처의 중요성을 설득하는 일은 소프트웨어 개발팀이 책임져야 한다.

아키텍처를 위해 투쟁하라

  • 회사 안의 모든 팀은 자신만의 가치를 위해 투쟁하고, 소프트웨어 개발팀 또한 마찬가지여야 한다.
  • 아키텍처의 우선순위를 낮춰 시스템 변경이 힘들어졌다면, 충분히 투쟁하지 않았다는 뜻이다.
profile
developer hamdoe

0개의 댓글