Article: Comprehension at AI Speed: Building a Context Store for Evolutionary Architecture

InfoQ · 2026.07.17
Article: Comprehension at AI Speed: Building a Context Store for Evolutionary Architecture

속도가 높아질수록 왜 아키텍처가 무너지는가

개발 생산성이 높아지면 자연스럽게 코드 변경 속도도 빨라진다. 하지만 빠른 속도가 반드시 좋은 구조를 보장하지는 않는다. 초반 80%의 구현은 매우 빠르게 진행되는 것처럼 느껴지지만, 아키텍처적 복잡성은 나중에야 수면 위로 드러난다. 문제는 그 시점이 이미 되돌리기 어려울 만큼 늦는 경우가 많다는 점이다.

이런 상황에서 엔지니어링 리더십이 주목해야 할 것은 단순한 처리량(throughput)이 아니라, 시스템 전체에 대한 이해(systemic comprehension) 다. 얼마나 많은 코드를 빠르게 작성했느냐보다, 그 코드가 시스템 전체 맥락 안에서 올바르게 위치하고 있는지를 지속적으로 확인하는 역량이 더 중요해진다.

Context Store란 무엇인가

이 문제를 해결하기 위해 제안되는 구조가 바로 Context Store다. 핵심 아이디어는 분산되어 있던 아키텍처 관련 산출물들을 하나의 저장소에 통합하는 것이다. 구체적으로는 세 가지 요소로 구성된다.

  • SDD(System Design Document): 시스템의 전체 구조와 설계 의도를 스펙 형태로 기록한 문서
  • TDD(Technical Design Document): 개별 컴포넌트의 기술적 결정 사항과 제약을 명시한 문서
  • 피트니스 함수(Fitness Functions): 아키텍처 원칙 준수 여부를 자동으로 검증하는 테스트

이 세 요소가 코드 저장소(repo)에 함께 묶여 있으면, 코드 변경이 일어날 때마다 해당 변경이 설계 원칙에서 벗어나지 않는지를 지속적으로 확인할 수 있다. 예를 들어 의존성 방향이나 레이어 간 호출 규칙을 피트니스 함수로 정의해두면, CI 파이프라인에서 위반을 자동으로 감지할 수 있다.

// 예: ArchUnit을 활용한 레이어 의존성 피트니스 함수
@Test
void domainShouldNotDependOnInfrastructure() {
    JavaClasses classes = new ClassFileImporter()
        .importPackages("com.example");

    layeredArchitecture()
        .layer("Domain").definedBy("..domain..")
        .layer("Infrastructure").definedBy("..infrastructure..")
        .whereLayer("Domain").mayNotAccessLayersExceptIgnored("Infrastructure")
        .check(classes);
}

진화적 아키텍처의 실천 수단으로

Context Store는 단순한 문서화 전략이 아니라, 진화적 아키텍처(Evolutionary Architecture) 를 실무에서 구현하는 핵심 수단이다. 진화적 아키텍처란 시스템이 변화에 따라 안전하게 진화할 수 있도록 아키텍처를 지속적으로 검증하고 조정하는 접근 방식이다.

실무에서 이 구조가 특히 유용한 이유는, 리뷰어와 자동화 도구 모두가 동일한 맥락을 공유할 수 있다는 점이다. 설계 의도가 코드 옆에 명시적으로 존재하면, 코드 리뷰 시 "왜 이렇게 설계했는가"에 대한 질문이 줄어들고, 자동화 도구 역시 단순한 문법 검사를 넘어 아키텍처 수준의 제약을 적용할 수 있다.

# Context Store 구조 예시
/context-store
  /sdd
    system-overview.md       # 전체 시스템 설계 의도
  /tdd
    order-service-design.md  # 주문 서비스 기술 결정 사항
  /fitness-functions
    LayerDependencyTest.java  # 레이어 의존성 자동 검증

4년차 이상의 개발자라면 코드 작성 속도보다 설계 결정의 일관성을 유지하는 것이 장기적으로 더 큰 가치를 만든다는 것을 경험으로 알고 있을 것이다. Context Store는 그 일관성을 자동화와 문서화로 뒷받침하는 실용적인 접근이다.

정리

  • 빠른 개발 속도는 아키텍처 복잡성을 뒤늦게 드러내므로, 처리량보다 시스템 전체에 대한 이해를 우선시해야 한다.
  • SDD, TDD, 피트니스 함수를 하나의 저장소에 통합한 Context Store는 코드 변경이 아키텍처 원칙을 벗어나지 않도록 지속적으로 검증하는 구조다.
  • 리뷰어와 자동화 도구가 동일한 설계 맥락을 공유함으로써, 진화적 아키텍처를 실무에서 안정적으로 실천할 수 있다.
Source
InfoQ
원문 보기 →
← 목록으로 돌아가기