피드로 돌아가기
GeekNewsBackend
원문 읽기
glojure - Go 위에 호스팅된 Clojure 인터프리터
Go 기반 Clojure 인터프리터의 양방향 Interop 설계
AI 요약
Context
기존 Go 기반 Clojure 구현체들의 제한적인 호환성 문제를 해결하기 위한 시도. Clojure의 표현력과 Go의 런타임 성능을 결합한 Hosted Language 구조의 필요성 대두.
Technical Solution
- Go와 Clojure 간의 양방향 호출을 지원하는 Interop 레이어 설계
- Go 패키지 경로의 /를 :로 치환하여 네임스페이스 모호성을 제거한 식별자 매핑 전략
- Go 타입을 Clojure 타입으로 변환하는 타입 매핑 시스템(예: long ↔ int64) 구축
- Go 애플리케이션 내 임베딩 구조를 통한 스크립트 기반 설정 및 플러그인 확장성 확보
- Vi/emacs 모드 및 Job Control을 포함한 고기능 인터랙티브 REPL 구현
실천 포인트
1. 이기종 언어 간 Interop 설계 시 네임스페이스 충돌 방지를 위한 식별자 변환 규칙을 정의했는가
2. 호스팅 언어와 타겟 언어 간의 숫자 및 기본 타입 매핑 테이블을 정밀하게 설계했는가
3. 라이브러리 임베딩을 통한 동적 설정 변경 및 플러그인 확장 구조를 검토했는가