과학 컴퓨팅 및 데이터 처리 분야에서 복잡한 워크플로우를 간결하고 효율적으로 관리할 수 있는 새로운 정적 타입의 순수 함수형 언어 '렉스(Rex)'가 공개되었습니다. 기존 워크플로우 시스템이 YAML, 셸 스크립트, 그리고 애플리케이션별 설정의 혼합으로 복잡해지는 경향이 있었다면, 렉스는 단일하고 표현력 높은 언어로 제어 흐름, 데이터 흐름, 재사용, 그리고 오류 처리를 통합하는 것을 목표로 합니다.
렉스는 네 가지 핵심 아이디어를 통해 과학 데이터 처리의 효율성을 극대화합니다. 첫째, 모든 저장된 입력 및 출력 아티팩트를 BLAKE3 해시로 식별하는 콘텐츠 주소 지정 저장 방식을 사용합니다. 이는 파일과 디렉토리 트리를 불변 값으로 취급하여, 중간 아티팩트를 공유 파일명이나 가변 작업 디렉토리 없이 도구 간에 전달할 수 있게 합니다. 둘째, 비디오 코덱, PDF 구조, 이미지 작업 등 도메인 개념을 노출하는 타입이 지정된 도구 API를 제공하여, 셸 명령 문자열을 조립하는 대신 유효한 도구 요청을 구성할 수 있습니다. 셋째, 각 도구 호출을 격리된 도커(Docker) 컨테이너에서 실행하여 보안과 일관성을 확보하는 동시에, 로컬 설치 도구를 사용하여 개발 속도를 높일 수도 있습니다. 마지막으로, 렉스는 힌들리-밀너(Hindley–Milner) 타입 추론, 대수적 데이터 타입, 패턴 매칭 등 강력한 함수형 프로그래밍 기능을 제공하여 복잡한 데이터 파이프라인을 자연스럽게 표현하고 병렬 실행에 적합하도록 설계되었습니다.
이러한 특성들은 워크플로우 정의를 간결하고 검사하기 쉽게 만들며, 병렬 실행에 유리합니다. 특히 렉스의 정적 타입 시스템은 워크플로우의 '배선' 오류를 조기에 잡아내어 값비싼 외부 프로세스를 실행하기 전에 문제를 해결할 수 있게 합니다. 이는 대규모 언어모델(LLM)이 워크플로우를 생성하거나 수정할 때 특히 유용한데, LLM이 제안한 워크플로우를 파서와 타입 검사기로 검증하여 정확한 진단을 통해 실행 전에 오류를 수정할 수 있기 때문입니다. 결과적으로 렉스는 분석 로직과 실제 운영체제(OS) 프로세스 간의 명확한 경계를 제공하여 과학 및 데이터 처리 분야에서 더욱 안정적이고 효율적인 워크플로우 개발을 가능하게 할 것으로 기대됩니다.