ET플러스플러스 이벤트 처리 메커니즘의 대수적 명세 연구
초록
본 논문은 객체지향 애플리케이션 프레임워크인 ET++의 이벤트 처리 구조를 사례로 삼아, 대수적 명세 언어 Spectrum의 변형을 이용해 모듈화된 형식 명세가 가능한지를 탐구한다. 이벤트 전파, 핸들러 연결, 객체 간 상호작용을 수학적 함수와 정리로 표현함으로써, 기존 OO 설계와 명세 사이의 격차를 메우고 검증 가능성을 높이는 방법을 제시한다.
상세 분석
ET++는 GUI 기반 애플리케이션을 위한 재사용 가능한 클래스 계층을 제공하는 프레임워크로, 특히 이벤트 전파와 핸들러 매핑 메커니즘이 복잡한 객체 간 상호작용을 포함한다. 논문은 이러한 복잡성을 대수적 명세로 추상화하기 위해 Spectrum의 기본 개념인 정렬(sort), 연산자(operator), 정리(theorem)를 확장한다. 먼저, 이벤트 타입을 정렬 Event, 이벤트 소스와 타깃을 각각 Object 및 Handler 정렬로 정의하고, 전파 규칙을 propagate 함수로 모델링한다. 이 함수는 입력 이벤트와 현재 객체를 받아 다음 객체 집합을 반환하는데, 이는 전통적인 OO 메서드 호출 흐름을 함수형 형태로 변환한 것이다.
핸들러 연결은 bind 연산자를 통해 명시되며, 바인딩 관계는 불변성(invariance) 정리로 검증된다. 예를 들어, “한 번 바인딩된 핸들러는 동일 객체 내에서 중복 바인딩될 수 없다”는 정리는 시스템 전반에 걸친 일관성을 보장한다. 또한, 이벤트 전파 중 발생할 수 있는 순환 전파(cyclic propagation)를 방지하기 위해 noCycle 정리를 도입하고, 이를 증명함으로써 프레임워크가 무한 루프에 빠지는 상황을 형식적으로 배제한다.
특히 주목할 점은 다중 상속과 가상 메서드 오버라이딩을 대수적 관점에서 어떻게 다루는가이다. 논문은 각 클래스 계층을 정렬 Class 으로 모델링하고, 메서드 재정의를 override 연산자로 표현한다. 이때, 메서드 시그니처의 호환성을 보장하는 signatureMatch 정리를 통해, 런타임 다형성에 해당하는 형식적 검증을 수행한다.
또한, 명세와 구현 사이의 일관성을 유지하기 위해 추상적 인터페이스와 구체적 구현을 별도의 모듈로 분리하고, 모듈 간 인터페이스 계약을 정리 contract 으로 정의한다. 이는 전통적인 객체지향 설계에서 흔히 발생하는 “구현이 명세를 위배한다”는 문제를 수학적으로 방지한다.
전체적으로 논문은 대수적 명세가 객체지향 프레임워크의 동적 행동을 정적 수식으로 포착할 수 있음을 증명한다. 특히, 이벤트 전파와 핸들러 바인딩이라는 비결정적 흐름을 함수와 정리로 명확히 규정함으로써, 자동 검증 도구와 연계 가능한 기반을 마련한다. 이러한 접근은 복잡한 GUI 프레임워크뿐 아니라, 분산 시스템, 실시간 제어 등 이벤트 중심 아키텍처 전반에 적용 가능성을 시사한다.