Show HN: Wyzer Programming Language

Hacker News · 2026.08.14

Wyzer: 분산 안전성과 결정론적 메모리를 갖춘 새로운 언어

Wyzer는 정적 타입, 컴파일 방식의 리소스 지향 프로그래밍 언어로, 두 가지 핵심 개념을 중심으로 설계되었다: 안무 프로그래밍(Choreographic Programming)Perceus 메모리 모델. 이 두 개념은 백엔드 개발에서 오랫동안 고질적인 문제로 남아 있던 분산 시스템의 복잡성과 메모리 관리 불확실성을 언어 수준에서 해결하려는 시도다.

안무 프로그래밍: 분산 시스템을 하나의 뷰로

전통적인 분산 프로그래밍에서는 클라이언트와 서버 코드를 각각 작성한 뒤, 두 코드가 동일한 통신 프로토콜을 따른다고 가정한다. 이 가정이 어긋나는 순간 데드락, 프로토콜 불일치, 타임아웃 버그가 발생한다. Java 백엔드를 오래 작성해 본 개발자라면 REST API 계약이 어긋나거나, gRPC 스텁이 서버 구현과 미묘하게 달라 런타임에서야 오류를 발견한 경험이 있을 것이다.

안무 프로그래밍은 이 구조를 근본적으로 바꾼다. 분산 시스템 전체를 단일 통합 스크립트로 작성하면, 컴파일러가 수학적으로 각 노드(예: Client, Server)에 대한 독립 바이너리로 분리(projection)해준다. 이 과정에서 데드락이 없음을 컴파일 타임에 보장한다.

// 개념적 예시 (안무 스타일)
choreography Login {
  Client -> Server: credentials
  Server -> Client: token
}

Java 생태계에서는 이런 보장을 OpenAPI 스펙이나 Pact 같은 컨슈머 주도 계약 테스트로 간접적으로 얻었다면, Wyzer는 이를 언어 자체의 타입 시스템으로 흡수한다.

Perceus 메모리 모델: GC 없이 예측 가능한 성능

JVM 기반 개발자에게 GC 일시정지(Stop-the-World)는 익숙한 골칫거리다. G1GC, ZGC 등으로 완화할 수 있지만 예측 불가능한 레이턴시 스파이크는 여전히 존재한다. 반대로 Rust처럼 borrow checker를 도입하면 정확성은 높아지나 학습 비용과 어노테이션 복잡성이 증가한다.

Perceus는 정밀 참조 카운팅(precise reference counting) 을 기반으로, 값의 소유자가 단 하나임을 컴파일러가 정확히 파악할 때 메모리를 즉시 해제한다. GC의 비결정성도, borrow checker의 복잡한 어노테이션도 없이 결정론적 메모리 관리를 제공하는 것이 목표다.

// 리소스 소유권이 명시적으로 추적됨
let data = Resource.new()
process(data)  // 이후 data는 자동 해제

이는 레이턴시 SLA가 엄격한 서비스나, 메모리 사용량 예측이 중요한 임베디드·엣지 서버 환경에서 특히 매력적인 특성이다.

실무 관점에서의 의미

Wyzer는 현재 GitHub에 공개된 초기 단계 언어(Star 220, Fork 5)로, 즉시 프로덕션에 도입할 수 있는 수준은 아니다. 그러나 이 언어가 제기하는 문제의식은 명확히 실무적이다.

  • 분산 시스템의 프로토콜 불일치를 런타임이 아닌 컴파일 타임에 잡겠다는 방향
  • GC 일시정지 없이 결정론적 메모리 해제를 언어 차원에서 보장
  • 복잡한 어노테이션 없이도 메모리 안전성 확보를 목표로 설계

Java 백엔드 개발자 입장에서 이 언어를 직접 쓰기보다는, 안무 프로그래밍 개념 자체를 이해하고 현재 아키텍처의 계약 검증 방식을 점검하는 계기로 삼을 수 있다.

정리

  • 안무 프로그래밍은 분산 시스템 전체를 단일 스크립트로 기술하고, 컴파일러가 노드별 데드락-프리 바이너리를 생성하는 패러다임이다.
  • Perceus 메모리 모델은 GC의 비결정성과 borrow checker의 복잡성 없이 결정론적 메모리 관리를 목표로 한다.
  • Wyzer 자체는 초기 프로젝트이나, 이 두 개념은 Java 기반 분산 시스템 설계 시 프로토콜 안전성과 성능 예측 가능성을 고민하는 데 유효한 레퍼런스가 된다.
Source
Hacker News
원문 보기 →
← 목록으로 돌아가기