피드로 돌아가기
Dev.toBackend
원문 읽기
JSON IR 기반 Cross-Runtime 검증으로 Scala-Perl 간 계산 일관성 확보
One Stack Machine, Two Runtimes: Cross-Validating Scala and Perl with a Shared JSON IR
AI 요약
Context
JVM 기반의 Stack Machine 연산 결과가 타 런타임에서도 동일하게 재현되는지 검증할 필요성 발생. 코드 생성 방식의 초기 접근은 생성된 텍스트 자체를 테스트하는 한계로 인해 로직 검증의 신뢰성이 부족한 상태였음.
Technical Solution
- JSON 기반의 Shared Intermediate Representation(IR) 정의를 통한 런타임 간 독립적 계약 수립
- Scala Program 객체를 JSON으로 직렬화하여 PostgreSQL JSONB 및 Perl 런타임으로 전달하는 단일 파이프라인 구축
- Perl 측에 CPAN 의존성 없는 80라인 규모의 독립적 Stack Machine 구현체(StackMachine.pm) 설계
- 'JSON 데이터 입력 $\rightarrow$ 각 언어별 독립 구현체 실행 $\rightarrow$ 결과 값 대조' 방식의 Cross-Validation 프로세스 도입
- CI 단계에서 JSON 기반 .pl 스크립트와 JVM .class 파일을 Artifact로 저장하여 실패 지점의 가시성 확보
실천 포인트
- 다중 언어 환경의 로직 검증 시 코드 생성기보다는 공유 IR(Intermediate Representation) 정의를 우선 검토 - 검증용 런타임은 외부 의존성을 최소화하여 환경 격리 및 실행 속도 최적화 - 테스트 데이터와 실행 로직을 분리하여 런타임 변경 시에도 데이터 계약의 안정성 유지