← 개념 목록

개념적 일관성

개념

개념적 일관성은 소프트웨어 시스템이 훌륭하고 독립적인 여러 아이디어들의 단순한 집합체가 아니라, 단일하고 통일된 설계 철학과 원칙을 바탕으로 구성되어야 함을 의미한다

프레더릭 브룩스의 저서 《맨먼스 미신(The Mythical Man-Month)》에서 핵심적으로 다루어지는 ’개념적 일관성(Conceptual Integrity)’은 소프트웨어 공학 및 시스템 설계에 있어 가장 중요한 원칙으로 평가받습니다.

이 원칙의 주요 내용과 브룩스의 주장을 위키백과 스타일로 정리하면 다음과 같습니다.

개요 개념적 일관성은 소프트웨어 시스템이 훌륭하고 독립적인 여러 아이디어들의 단순한 집합체가 아니라, 단일하고 통일된 설계 철학과 원칙을 바탕으로 구성되어야 함을 의미한다. 브룩스는 시스템 설계에 있어 어떠한 요소보다도 이 개념적 일관성을 최우선으로 고려해야 한다고 강조한다.

사용 편의성과의 관계 시스템의 궁극적인 목적은 사용하기 쉬워야 한다는 데 있다. 브룩스는 시스템의 기능이 아무리 강력하더라도, 전체적인 규칙과 철학이 통일되어 있지 않으면 사용자가 시스템을 학습하고 활용하는 데 큰 어려움을 겪는다고 분석한다. 반대로 개념적 일관성이 유지된 시스템은 구문이나 의미론적 규칙이 직관적이고 단순하여 사용자가 쉽게 예측하고 제어할 수 있다.

아키텍처와 구현의 분리 개념적 일관성을 달성하기 위한 구체적인 방법론으로, 브룩스는 ’아키텍처(Architecture)’와 ’구현(Implementation)’의 엄격한 분리를 주장한다.

  • 아키텍처: 사용자가 마주하는 시스템의 외부 인터페이스와 명세서를 정의하는 작업이다.
  • 구현: 해당 아키텍처가 실제로 작동하도록 내부 구조를 코딩하고 제작하는 작업이다. 브룩스는 일관성을 지키기 위해 아키텍처의 설계가 소수의 전담 아키텍트에 의해 완전히 통제되어야 한다고 보았다.

소수 정예에 의한 설계 (귀족주의적 접근) 브룩스는 프로젝트의 규모가 크더라도 전체적인 시스템 설계는 단 한 명, 혹은 의견이 완전히 일치하는 극소수의 아키텍트 그룹에 의해 주도되어야 한다고 설명한다. 모든 팀원의 아이디어를 동등하게 수용하는 이른바 ‘민주적’ 방식은 오히려 설계의 일관성을 해치고 서로 충돌하는 기능들을 낳아 시스템을 복잡하게 만든다고 경고한다.

이러한 ‘귀족주의적’ 설계 방식이 구현자들의 창의성을 제한한다는 비판에 대해, 브룩스는 구현 과정 자체에도 설계 못지않은 고도의 창의성과 기술적 문제 해결 능력이 요구되므로 구현자의 역할이 결코 단순한 부품으로 전락하는 것이 아니라고 반박한다.

건축물 비유 브룩스는 이 개념을 설명하기 위해 유럽의 대성당 건축을 비유로 활용한다. 오랜 세월에 걸쳐 건축되면서 여러 건축가들의 개별적인 취향이나 시대적 유행이 반영되어 구조적 일관성을 잃은 성당들과 달리, 최초의 설계 원칙을 후대에도 엄격히 고수하여 지어진 성당(예: 랭스 대성당)이 주는 통일된 아름다움과 우수성을 통해 개념적 일관성의 가치를 증명한다.

의사소통과 유지보수 소수가 확립한 개념적 일관성을 수많은 구현자들이 정확히 따르도록 만들기 위해서는 명확하고 상세한 매뉴얼 작성이 필수적이다. 브룩스는 프로젝트 내에서 발생할 수 있는 오해를 막고 설계자의 의도를 정확히 전달하기 위해 공식적인 회의, 정확한 문서화, 그리고 이를 갱신하고 통제하는 체계적인 의사소통 구조가 뒷받침되어야 한다고 역설한다.