비개념 소프트웨어 서브시스템: 유형과 무형
초록
본 논문은 ‘Non-’ 접두사가 붙은 개념이 완전한 부정이 아니라 부분적인 감소·제거를 의미한다는 전제 하에, 이를 소프트웨어 서브시스템에 적용한다. 유형(구현 가능한)과 무형(추상적인) 두 종류의 비개념 서브시스템을 정의하고, 빠른 조합을 위한 초소형 플러그형 온톨로지를 제시한다. 설계 소켓이라는 새로운 클래스가 온톨로지를 플러그형으로 만들며, 동적 수정이 가능한 디자인 패턴의 핵심 메커니즘이 된다.
상세 분석
논문은 먼저 ‘Non-’ 접두사의 의미론적 특성을 언어학적·철학적 관점에서 해석한다. 전통적인 부정(negation)과 달리 ‘Non-’는 대상의 정체성을 완전히 소멸시키지 않고, 일부 속성이나 기능을 억제하거나 약화시키는 ‘부분 부정(partial negation)’으로 정의된다. 이 미묘한 차이는 소프트웨어 공학에서 특히 중요한데, 시스템 구성 요소를 완전히 제거하거나 교체하는 것이 아니라, 기존 기능을 억제하거나 제한된 형태로 유지하면서 새로운 기능을 삽입할 수 있게 한다는 점이다.
이러한 비개념적 접근을 구체화하기 위해 저자는 ‘유형’과 ‘무형’ 두 축으로 서브시스템을 구분한다. 유형 서브시스템은 물리적 메모리, API, 서비스 엔드포인트 등 실제 구현 가능한 요소들을 의미한다. 반면 무형 서브시스템은 정책, 계약, 품질 특성(Quality Attribute) 등 구현 자체는 없지만 시스템 행동을 규정하는 추상적 요소를 말한다. 두 종류 모두 ‘Non-’ 개념을 적용하면, 예를 들어 ‘Non‑Persistent Cache’는 영구 저장이 아닌 일시적 저장을, ‘Non‑Blocking Transaction’은 완전한 블로킹이 아닌 제한적 대기 메커니즘을 제공한다는 식으로 해석된다.
핵심 기술적 기여는 ‘플러그형 온톨로지(plug‑able ontology)’와 ‘디자인 소켓(Design Socket)’이다. 플러그형 온톨로지는 최소 단위인 ‘nano‑ontology’로, 개념, 속성, 관계를 몇 개의 트리플로 압축한다. 이러한 초소형 온톨로지는 런타임에 동적으로 로드·언로드가 가능해, 제품 라인 관리(product line engineering)에서 다양한 모델을 빠르게 조합할 수 있다. 디자인 소켓은 기존 클래스나 인터페이스의 ‘제거/추가/대체’ 지점을 추상화한 연결자이며, ‘소켓’ 안에 들어가는 ‘플러그’는 특정 비개념 서브시스템을 구현한다. 소켓은 입력(기능 요구), 출력(제공 서비스), 제약(품질 제한) 세 축으로 정의되며, 플러그가 교체될 때마다 시스템 전체의 정체성(identity)이 부분적으로 유지되면서도 변화한다.
이 메커니즘은 두 가지 중요한 이론적·실용적 논의를 촉발한다. 첫째, 구성(composition)과 정체성의 관계에 대한 전통적 논쟁에서, 비개념 서브시스템은 ‘구성은 정체성을 파괴한다’는 극단적 입장을 완화한다. 부분적인 속성 감소는 정체성을 일정 수준 유지하게 하며, 추가적인 감소가 임계점을 넘어설 때 정체성이 붕괴한다는 연속적 모델을 제시한다. 둘째, 제품 라인 설계 시 ‘옵션화(optionality)’와 ‘제약화(constraining)’를 동시에 관리할 수 있게 해, 다변량 모델링 비용을 크게 절감한다. 특히, 무형 서브시스템을 온톨로지 형태로 선언함으로써, 정책 기반 접근 제어, SLA 계약, 성능 목표 등을 코드 수준이 아닌 메타데이터 수준에서 동적으로 교체·조정할 수 있다.
전체적으로 이 논문은 ‘Non-’ 개념을 소프트웨어 아키텍처에 정형화함으로써, 기존의 ‘추가(add)’와 ‘제거(remove)’ 이분법을 넘어 ‘감소(reduce)’와 ‘제한(limit)’라는 새로운 설계 차원을 제공한다. 이는 마이크로서비스, 플러그인 기반 시스템, 그리고 모델 기반 엔지니어링 분야에서 즉각적인 적용 가능성을 시사한다.
댓글 및 학술 토론
Loading comments...
의견 남기기