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

혀어어언·2025년 7월 9일
0

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

📘 클린 아키텍처 북스터디 정리입니다

📚 도서: 로버트 C. 마틴 《Clean Architecture》
🧑‍💻 목적: 올바른 설계에 대한 감각과 습관을 익히기 위해
🗓️ 진행 기간: 2025년 7월 ~ 매주 2장


✅ 핵심 요약 (Key Takeaways)

이 장의 핵심 문장은?

소프트웨어 개발자는 소프트웨어 시스템이 제공하는 두 가지 가치를 모두 반드시 높게 유지해야 하는 책임을 진다

저자가 전달하고자 하는 메시지 요약

  • 아키텍처는 앱의 기능이나 특성보다 우선순위가 되어야 한다

💡내용 정리

서론: 소프트웨어의 두 가지 가치

  • 소프트웨어 시스템이 이해관계자에게 제공하는 두 가지 가치:
    • 행위 (behavior)
    • 구조 (structure)
  • 개발자는 두 가치를 모두 높게 유지할 책임이 있음

행위(behavior)

  • 프로그래머를 고용하는 이유: 이해관계자를 위해 기계가 수익을 창출하거나 비용을 절약하도록 만들기 위해서
  • 즉 코딩이라는 행위를 통해 비즈니스 가치 제공

아키텍처(architecture)

  • 소프트웨어(software) = 소프트(soft) + 웨어(ware): 변경이 용이해야 함
  • 이해관계자가 기능에 대한 생각을 바꾸면 이러한 변경사항을 간단하고 쉽게 적용할 수 있어야 함
  • 경의 어려움은 변경되는 범위(scope)에 비례하고, 형태(shape)와는 무관해야 함
  • 좋은 아키텍처는 형태에 독립적

더 높은 가치

  • 기능? 아키텍처?
  • 시스템을 동작하게 만드는 것 ? 시스템을 더 쉽게 변경 가능하게 하는 것?

아이젠하워 매트릭스

긴급한 문제는 중요하지 않으며, 중요한 문제는 절대 긴급하지 않습니다.

  • 소프트웨어의 첫번째 가치인 행위는 긴급하지만 항상 중요한 것은 아님
  • 소프트웨어의 두번째 가치인 아키텍처는 중요하지만 긴급하지 않음

최종 우선순위

  1. 긴급하고 중요한
  2. 긴급하지는 않지만 중요한
  3. 긴급하지만 중요하지 않은
  4. 긴급하지도 중요하지도 않음

결론

  • 중요한 일이 우선. 그 다음 긴급성 여부 확인
  • 업무 관리자는 보통 아키텍처의 중요성을 평가할만한 능력을 겸비하지 못하기 때문에, 기능의 긴급성이 아닌 아키텍처의 중요성을 설득하는 일은 개발팀이 책임져야 함

책임

소프트웨어 개발자의 책임

  • 개발자는 소프트웨어를 안전하게 보호해야 할 책임이 있음

소프트웨어 아키텍트

-시스템이 제공하는 특성이나 기능보다는 시스템의 구조에 더 집중해야 함

  • 아키텍트는 이러한 특성과 기능을 개발하기 쉽고, 간편하게 수정가능하며, 확장하기 쉬운 아키텍처를 만들어야 함

0개의 댓글