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

kimjunkyung·2022년 6월 22일

클린아키텍처

목록 보기
2/14
post-thumbnail

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

소프트웨어 시스템가 제공하는 두 가지 가치

→ 행위(behavior) & 구조(structure)

행위

첫 번째 가치

⇒ 요구사항을 기계에 구형하고 버그를 수정하는 일

( 많은 프로그래머들이 행위가 할 일의 전부라고 생각하지만 틀렸음)

아키텍처

두 번째 가치

소프트웨어 software → ‘부드러움을 지니도록’ 즉 기계의 행위를 쉽게 변경할 수 있도록 하기 위해 만들어짐.

  • 소프트웨어는 변경하기 쉬워야함. 변경 사항을 간단하고 쉽게 적용 가능해야 함.

    변경사항을 적용하는 데 드는 어려움은 변경되는 범위(scope)에 비례하고 형태(shape)과는 관련 X.

  • 소프트웨어 개발 비용의 증가를 결정짓는 주된 요인은 변경사항의 범위와 형태의 차이에 있음

∴ 개발 비용은 요청된 변경 사항의 크기에 비례

⇒ 아키텍처는 형태에 독립적이어야하고 그럴수록 더 실용적.

더 높은 가치

기능(동작, 행위, 범위) vs 아키텍처(쉽게 변경, 구조, 형태)

  • ‘동작 but 수정 X’ vs ‘동작 X but 변경 쉬움’

⇒ 아키텍처가 더 중요

아이젠하워 메트릭스

💡 내겐 두 가지 유형의 문제가 있습니다. 하나는 긴급하며, 다른 하나는 중요합니다. 긴급한 문제는 중요하지 않으며, 중요한 문제는 절대 긴급하지 않습니다. - 드와이트 D. 아이젠하워

스크린샷 2022-04-03 오후 5.22.35.png

소프트웨어의 첫 번째 가치인 행위는 긴급 But 중요도 낮음

소프트웨어의 두 번째 가치인 아키텍처는 중요 But 긴급성 낮음

  • 중요도
    1. 긴급, 중요
    2. 긴급 X, 중요
    3. 긴급, 중요 X
    4. 긴급 X, 중요 X

∴ 소프트웨어 개발팀은 기능의 긴급성이 아닌 아키텍쳐의 중요성을 알고 설득하는 일을 해야 함.

아키텍처를 위해 투쟁하라

  • 소프트웨어 아키텍트 → 시스템이 제공하는 특성이나 기능 < 시스템의 구조 ∴ 이러한 특성과 기능을 개발하기 쉽고 간편하게 수정항 수 있으며 확장하기 쉬운 아케텍쳐 만들어야 함.
profile
#Backend #Developer

0개의 댓글