소리치는 아키텍처

  • 소리치는 아키텍처(screaming architecture)

    • 의도를 우리에게 소리치는 아키텍처

    • 유스케이스를 구현한 코드는 클래스명만으로도 찾을 수 있게 됨

      '송금하기' 유스케이스
      - AccountService
      + SendMoneyService
  • 나의 어플리케이션 아키텍처는 무엇이라고 소리치고 있는가

    • 집의 설계도면은 "집이야"라고 소리치고, 도서관의 설계도면은 "도서관이야"라고 소리칠 것이다.

    • 나의 어플리케이션은 "결제 시스템이야"라고 소리칠 것인가? 아니면 "Spring/JPA야", "Rails야"라고 소리치는가

  • 유스케이스 주도 접근법Use Case Driven Approach

    • 소프트웨어 아키텍처는 시스템의 유스케이스를 지원하는 구조

    • 주택이나 도서관의 계획서가 해당 건축물의 유스케이스에 대해 소리치는 것처럼, 소프트웨어 어플리케이션의 아키텍처로 어플리케이션의 유스케이스에 대해 소리쳐야 한다.

  • 아키텍처는 프레임워크에 대한 것이 아니다.

    • 아키텍처를 프레임워크로부터 제공받아서는 절대 안된다.

    • 유스케이스에 대해서 아키텍처가 나와야하지 스프링 어노테이션 Repository, Controller Service 로부터 아키텍처를 구성해서는 안된다.

      • 해당 계층 관점으로 볼 수도 있지만, 이는 계층형 아키텍처가 된다.

  • 무엇으로 만드는지가 아니라 목적이 중심이 되어야 한다.

  • 웹은 전달 메커니즘

    • 입력, 출력만 있을 뿐. 웹이 시스템 구조를 지배해서는 안된다.

  • 테스트하기 쉬운 아키텍처

    • 프레임워크를 전혀 준비하지 않더라도 필요한 유스케이스 전부에 대해 단위 테스트를 할 수 있어야 한다.

    • 테스트를 돌리는데 웹서버가 반드시 있어야 하는 상황이 되어서는 안 된다.

Last updated 2025-05-28 01:37:05 UTC