관리 메뉴

김종권의 iOS 앱 개발 알아가기

[Clean Architecture] 2. 두 가지 가치(behavior, architecture) 본문

Clean Architecture/Clean Architecture 기초

[Clean Architecture] 2. 두 가지 가치(behavior, architecture)

jake-kim 2021. 2. 27. 00:10

행위(behavior)

  • 요구사항을 기계에 구현하고 버그를 수정하는 일이 개발자의 모든 일이 아님을 깨닫는게 중요
  • 개발자를 고용하는 이유는 이해관계자를 위해 기계가 수익을 창출하거나  비용을 절약하기 위함
  • 곧 이해관계자가 기능 명세서나 요구사항 문서를 구체화할 수 있도록 돕는 임무를 포함

아키텍처(architecture)

  • 핵심은 'sofrware': 부드러운(soft) 제품(ware)
  • 소프트웨어는 부드러움을 지니도록 구성 - 기계의 행위를 쉽게 변경할 수 있도록 하기 위함
  • 부드럽다는 의미는 변경하기 쉬워야하며 이해관계자가 기능에 대한 생각을 바꾸면 변경사항을 간단하고 쉽게 적용할 수 있어야함
  • 변경사항을 적용하는 데 드는 어려움은 변경되는 형태와는 관련이 없어야하며, 범위에 비례해야함

ex) 잘못개발 사례: 기획자가 어떤 기능에 대해서 변경을 요청했을때, 기획자가 말한것들이 퍼즐 조각을 맞추라는 지시것처럼 느껴진다면 잘못된 structure

 

핵심은 제품에만 있는것이 아닌 이해관계자와의 협업

  • 결국 개발자는 이해관계자와의 소통에도 역할이 있으며,
  • 아키텍처는 형태에 독립적이어야함 (soft)

행위와 아키텍쳐의 차이

  • 개발자가 처한 두 가지 상황: 긴급 한 일, 중요한 일
  • "긴급한 문제는 중요하지 않으며, 중요한 문제는 절대 긴급하지 않음"
  • '행위'는 긴급하지만 매번 높은 중요도를 가지는 것이 아니고, '아키텍처'는 중요하지만 즉각적인 긴급성을 필요로 하는 경우는 없음
  • 개발팀의 임무는 기능의 긴급성이 아닌 아키텍처의 중요성을 설득하는 일

개발자는 아키텍처를 위한 투쟁이 필요

  • 소프트웨어를 안전하게 보호해야 할 책임을 인식하고 '투쟁'해야함
  • 시스템이 제공하는 특성이나 기능보다는 시스템의 구조에 더 중점을 두는 것
  • 개발하기 쉽고, 간편하게 수정할 수 있으며, 확장하기 쉬운 것

* 출처: clean architecture

Comments