Cryo는 실행 중인 프로그램을 디스크에 얼렸다가 다른 프로세스에서 그대로 되살린다
Endothermic Labs가 만든 프로그래밍 언어 Cryo가 Show HN에 소개됐다. 이 언어의 핵심은 실행 중인 프로그램을 통째로 디스크에 얼려두고, 나중에 전혀 다른 프로세스에서 그 상태 그대로 이어서 돌릴 수 있다는 점이다. 프로그램을 종료했다가 다시 켜면 대개 처음부터 시작해야 하지만, Cryo는 멈춘 지점을 그대로 이어받는 쪽을 언어의 기본 동작으로 삼는다.
일반적으로 프로세스가 끝나면 메모리에 있던 변수, 호출 스택, 열어둔 자원 같은 실행 상태도 함께 사라진다. 이어서 실행하려면 개발자가 상태를 파일이나 데이터베이스에 직접 저장하고 복원하는 코드를 따로 작성해야 한다. Cryo는 그 저장과 복원을 애플리케이션 코드 바깥, 언어 수준의 기능으로 끌어올린 사례다.
확인된 사용 방식은 브라우저 플레이그라운드다. 프로그램을 실행하고, 동결하고, 프로세스를 종료한 뒤, 다시 해동하는 순서를 웹에서 직접 따라 해볼 수 있다. 이 플레이그라운드를 돌리려면 JavaScript가 필요하다.
이런 접근이 나오는 배경에는 오래 걸리는 계산이나 중간에 끊기면 곤란한 작업을 다루려는 요구가 있다. 작업을 잠시 멈춰 두었다가 원하는 시점에 다른 환경에서 이어 붙이거나, 문제가 생긴 시점의 상태를 그대로 보관해 다시 재현하는 식의 활용을 생각할 수 있다. 실행 상태를 개발자가 일일이 직렬화하지 않아도 된다면 그만큼 코드에서 신경 쓸 부분이 줄어든다.
실무 관점에서 보면 재시작 비용, 배포 중 상태 이전, 실패 후 복구 같은 주제의 설계가 달라질 수 있다. 지금은 상태를 직접 저장하는 코드를 넣거나 별도 체크포인트 도구에 기대는 경우가 많은데, 언어가 이 일을 맡으면 애플리케이션 로직과 상태 관리가 분리된다. 다만 실제 이식성과 성능이 어느 정도인지는 별도 검증이 필요하다.
한계도 분명하다. 공개된 소개만으로는 문법, 런타임 성능, 지원 플랫폼, 저장 파일의 호환성, 프로세스 간 이전이 어디까지 보장되는지 알 수 없다. 확인된 전제는 브라우저에서 시험하려면 JavaScript가 있어야 한다는 정도다.