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

혀어어언·2025년 8월 4일
0

📖 [15장] 아키텍처란?

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

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


✅ 핵심 요약 (Key Takeaways)

이 장의 핵심 문장은?

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

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

  • 아키텍처의 주된 목적은 시스템의 생명주기를 지원하고, 생산성을 높이는 것
  • 좋은 아키텍처는 시스템이 개발·배포·운영·유지보수되는 전 과정에서 유연하고 효율적이어햐 함
  • 핵심 정책과 세부 구현(입출력, DB 등)을 명확히 분리해야 함

💡 내용 정리

서론:아키텍처란 무엇인가?

  • 소프트웨어 시스템의 아키텍처: 시스템을 구축했던 사람들이 만들어낸 시스템의 형태
  • 아키텍처의 주된 목적: 시스템의 생명주기를 지원하는 것
  • 아키텍처의 궁극적인 목적:
    - 시스템 수명과 관련된 비용을 최소화하고- 개발자의 생산성을 극대화하는 것

개발

  • 시스템 아키텍처는 개발팀들이 시스템을 쉽게 개발할 수 있도록 뒷받침해야 함
  • 팀 구조에 따라 아키텍처의 설계는 달라질 수 있음

배포

  • 소프트웨어 아키텍처는 시스템을 단 한번에 쉽게 배포할 수 있도록 만드는 데 목표를 두어야 함

운영

  • 좋은 소프트웨어 아키텍처는 시스템을 운영하는 데 필요한 요구를 알려줌
    → 시스템 아키텍처가 개발자에게 시스템의 운영 방식을 명확하게 전달

유지보수

  • 소프트웨어 시스템에서 비용이 가장 많이 드는 단계
  • 유지보수의 가장 큰 비용
    - 탐사 비용: 어디를 고쳐야 할지, 어떤 전략을 써야 할지를 파악하는 데 드는 비용
    • 위험 부담: 잘못된 변경으로 발생할 수 있는 오류와 그 여파
  • 탐사 비용: 기존 소프트웨어에 새로운 기능을 추가하거나 결함을 수정할 때, 소프트웨어의 어느 부분을 고칠 지, 어떤 전략을 쓰는 게 최적일지를 결정할 때 드는 비용

선택 사항 열어두기

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

  • 소프트웨어의 두 가지 가치 중 구조적 가치가 더 중요함
  • 소프트웨어를 부드럽게 유지하는 방법은 선택 사항을 가능한 한 많이, 오랫동안 열어두는 것

소프트웨어 시스템의 구성요소

  • 정책(policy): 모든 업무 규칙과 업무 절차를 구체화
  • 세부사항(details):
    - 사람, 외부 시스템, 프로그래머가 정책과 소통할 때 필요한 요소
    • 예시: 입출력 장치, DB, 웹 시스템, 서버, 프레임 워크, 통신 프로토콜 등

아키텍트의 목표

1. 시스템에서 정책을 가장 핵심 요소로 식별

2. 세부사항은 정책에 무관하게 만들 수 있는 형태의 시스템 구축

결론

  • 좋은 아키텍처는 핵심 로직(정책)세부 구현(입출력, 프레임워크 등)을 명확히 분리함
  • 이렇게 하면 시스템은 변경에 유연하고, 개발·운영·유지보수가 쉬워짐

0개의 댓글