Skip to content

Latest commit

 

History

History
77 lines (48 loc) · 3.89 KB

6장_아키텍처_특성의_측정_및_거버너스.md

File metadata and controls

77 lines (48 loc) · 3.89 KB

6장 아키텍처 특성의 측정 및 거버너스

🔎 Survey and Question - 훑어보고 질문하기

소제목 훑어보기

  1. 아키텍처 특성 측정
    1. 운영적 측정
    2. 구조적 측정
    3. 프로세스 측정
  2. 거버넌스와 피트니스 함수
    1. 아키텍처 특성 관리
    2. 피트니스 함수

사전 질문 / 내용에 대한 예언

아키텍처 특성 측정

Q. 아키텍처 특성은 어떻게 정의하고 측정할 수 있을까?

  • 운영적 측정

    • 동일한 지표여도 팀 목표가 무엇인지에 따라 세부적으로 다른 요소를 측정하게 될 수 있으며, 해석도 다양함.
    • 핵심은 엔지니어가 임의의 수치를 목표로 삼는 것이 아니라, 그동안 측정된 통계 분석 결과와 추이를 토대로 목표를 수립하는 것.
  • 구조적 측정

    • 코드가 더러운지를 측정하기 위해 순환 복잡도를 계산하는 것도 가능.
    • 자바 진영은 Crap4j로 CC와 코드 커버리지를 함께 측정함!
  • 프로세스 측정

    • 민첩성의 경우 시험성, 배포성 등의 세부 아키텍처 특성들로 분류됨.
      • 시험성은 테스트 커버리지 등으로 측정 가능
      • 배포성은 실패 대비 배포 성공률, 배포 소요 시간, 배포시 발생한 이슈/버그 등으로 측정 가능.
    • 민첩성은 소프트웨어 개발 프로세스와 관련되면서, 동시에 아키텍처 구조에도 영향을 미치는 아키텍처 특성. 시험성, 배포성을 추구하는 과정에서 아키텍처 구조에 영향을 미칠 수 있음.

거버넌스와 피트니스 함수

Q. 거버넌스란 무엇인가?

  • 거버넌스란 아키텍트가 확정한 아키텍처 특성을 개발자들이 잘 지키도록 관리하는 업무

Q. 피트니스 함수란 무엇인가?

  • 피트니스 함수: 결과가 목표에 얼마나 근접했는지를 나타내는 목표 함수. (기본적으로 진화적 컴퓨팅의 유전자 알고리즘의 개념)
  • 아키텍처 피트니스 함수: 어떠한 아키텍처 특성의 객관적인 무결성을 평가하는 모든 메커니즘
    • 아키텍처 특성에 따라 피트니스 함수는 다양한 도구로 구현 가능.
    • 특정한 프레임워크 및 도구가 아니라, 기존 도구를 바라보는 새로운 시각.
    • 마치 체크리스트와 같음. 잊지 말아야 할 중요한 아키텍처 원칙을 표현하고 자동으로 검증할 수 있는 메커니즘.

Q. 거버넌스 메커니즘을 어떻게 구축할 수 있는가?

  • 모듈성 관련 피트니스 함수들

    • 순환 의존성 방지를 위해, 순환 참조가 하나라도 발견되면 실패하는 테스트 코드를 작성할 수 있음. (ft. JDepend)
    • 메인 시퀀스로부터의 거리에 대한 수용 가능한 임계치를 설정하고, 이를 넘어가면 실패하도록 테스트 작성 가능.
  • 레이어드 아키텍처 관련 피트니스 함수

    • ArchUnit를 통해 자바 진영에서 레이어 의존성을 확인하는 피트니스 함수 작성 가능
    • NetArchTest를 통해 닷넷 진영(C#)에서도 레이어 의존성을 확인하는 피트니스 함수 작성 가능
  • 넷플릭스의 카오스 멍키와 시미안 아미도 피트니스 함수를 응용한 사례들


📝 Read & Recite - 읽어보고 노트하기

개인 정리 자료의 6장 관련 마크다운 확인


😎 Review - 요약하기

아키텍트가 아키텍처 특성과 그 우선순위를 정했을 때 개발자들이 이를 지키도록 꾸준히 관리하는 것이 필요하다.

아키텍트의 이러한 업무는 다양한 툴과 수단을 통해 자동화될 수 있으며, 아키텍처 피트니스 함수란 어떠한 아키텍처 특성의 객관적인 무결성을 평가하는 모든 메커니즘이다.