러스트 1.88 공개…복잡한 조건문 한 줄로 해결

조건문 체인·저수준 함수 제어·캐시 자동 정리 지원

컴퓨팅입력 :2025/07/01 09:34

프로그래밍 언어 러스트(Rust)의 새로운 버전 '1.88.0'이 출시됐다. 단순한 버그 수정이나 부수적인 개선을 넘어서, 개발자들이 일상적으로 겪는 반복적인 불편을 근본적으로 해소하는 데 초점을 맞춘 것이 특징이다.

1일 러스트 릴리즈 팀은 러스트 1.88.0 버전을 공식 홈페이지 및 깃허브에 공개했다고 밝혔다.

이번 업데이트는 세 가지 변화에 주력했다. 조건문을 보다 유연하게 구성할 수 있도록 개선했고, 컴퓨터의 아주 낮은 수준까지 직접 제어할 수 있는 기능을 추가했다. 또한 개발 과정에서 쌓이는 임시 파일(캐시)을 자동으로 정리하는 기능도 새롭게 도입됐다.

러스트

이와 함께 러스트가 기본으로 제공하는 API와 표준 라이브러리도 한층 강화돼, 웹 서비스부터 시스템 소프트웨어까지 다양한 분야에서 러스트를 활용할 수 있는 기반이 넓어졌다.

가장 주목할 만한 변화는 '렛 체인(let_chains)'이라는 새로운 조건문 기능이다. 이 기능을 사용하면 여러 단계를 거쳐 값을 확인해야 하는 상황에서도 조건문을 하나로 연결해 간결하게 쓸 수 있다.

기존에는 어떤 값이 존재하는지 먼저 확인하고, 그 값이 또 다른 조건을 만족하는지를 검토하려면 이프(if) 문을 여러 번 중첩하면서 코드가 복잡하고 가독성도 떨어졌다. 하지만 이제는 이 과정을 한 줄로 자연스럽게 표현할 수 있어 코드가 간단해지고 구조도 명확해졌다.

다만 이 기능은 러스트 2024 에디션에서만 사용할 수 있어 프로젝트 설정에서 해당 에디션을 명시해야 한다.

함수 처리 방식에도 변화가 생겼다. 운영체제(OS)나 펌웨어처럼 시스템의 가장 낮은 수준에서 동작하는 프로그램을 개발할 때는 컴파일러가 자동으로 처리하는 일부 작업이 오히려 제약이 될 수 있다. 이를 고려해 이번 버전에서는 '네이키드 함수(naked function)'라는 새로운 함수 형태가 도입됐다.

이 기능을 사용하면 함수 시작 시 자동으로 수행되는 메모리 정리나 값 저장 등의 작업을 생략할 수 있다. 대신 함수 내부의 모든 동작을 개발자가 직접 정의해야 하며, 어셈블리 언어 수준의 정밀한 제어가 필요하기 때문에 높은 개발 역량이 요구된다.

이 기능은 주로 운영체제 커널, 부트로더, 펌웨어 등에서 성능과 메모리 제어가 중요한 환경에 적합하다. 다만 잘못 작성할 경우 시스템이 정상 작동하지 않을 수 있으므로 고급 사용자에게만 권장된다.

캐시 관리 기능도 한층 향상됐다. 러스트 개발자들은 '카고(Cargo)'라는 도구를 통해 외부 라이브러리를 받아오고 이를 바탕으로 프로젝트를 빌드한다. 이 과정에서 생성되는 캐시 파일이 계속 누적되면 디스크 공간을 빠르게 소모하게 되며, 특히 여러 프로젝트를 병행하는 환경에서는 이러한 현상이 빈번하다.

러스트 1.88.0부터는 이런 문제를 해결하기 위해 오래된 캐시 파일을 자동으로 정리하는 기능이 기본으로 적용됐다. 인터넷에서 받은 라이브러리는 3개월 이상 사용하지 않으면 삭제되며 로컬에서 생성된 빌드 결과물도 1개월 이상 사용되지 않으면 정리된다.

사용자가 직접 파일을 골라 삭제하지 않아도, 카고가 파일의 접근 기록을 기준으로 자동 판단해 정리 여부를 결정한다. 다만 오프라인 모드로 작업하거나 캐시 고정 옵션을 사용할 경우에는 해당 기능이 동작하지 않는다. 이 기능은 특히 대규모 프로젝트나 실험을 반복하는 환경에서 디스크 공간 낭비를 줄이는 데 효과적이다.

빌드 환경을 제어하는 방식도 더 단순하고 직관적으로 바뀌었다. 러스트는 특정 운영체제나 디버그 모드 등 특정 조건에서만 코드가 실행되도록 설정할 수 있는데, 기존에는 항상 실행되거나 제외하고 싶은 코드조차 복잡한 문법을 사용해야 했다.

이제는 '참(true)' 또는 '거짓(false)'과 같은 값으로 조건을 직접 명시할 수 있어 코드 작성이 더 깔끔해지고 실수도 줄어들게 됐다. 이를 통해 매크로나 빌드 설정 작성 시 조건 충돌이나 누락 문제를 예방할 수 있다.

표준 라이브러리도 더욱 풍성해졌다. 내부 데이터를 안전하게 갱신할 수 있는 기능이 개선됐고, 조건에 맞는 항목만 골라서 추출하는 기능도 새로 추가됐다.

또한 CPU의 분기 예측을 어렵게 만들어 보안을 강화하는 최적화 힌트 기능이 정식으로 제공되며, C 언어와의 연동을 위한 문자열 처리 도구도 안정화됐다. 데이터를 일정한 크기로 나눠 처리할 수 있는 기능도 함께 추가됐다.

뿐만 아니라, 기존에는 컴파일 타임에서 사용할 수 없었던 포인터 관련 기능들도 이제 콘스트(const) 함수 내에서 활용할 수 있게 돼, 더 많은 작업을 사전에 수행할 수 있도록 개선됐다.

한편, 러스트 프로젝트는 32비트 윈도우 환경(i686-pc-windows-gnu)에 대한 공식 지원 수준을 Tier 1에서 Tier 2로 하향 조정했다. 이는 해당 환경에서 테스트가 줄고, 문제가 발생해도 즉각적인 대응이 어려울 수 있음을 의미한다.

관련기사

이 변경은 주로 오래된 컴퓨터나 구형 시스템을 사용하는 일부 개발자에게만 영향을 줄 수 있다. 다만 기본적인 라이브러리 지원은 계속되기 때문에 일반적인 사용에는 큰 문제가 없을 것이라고 릴리즈 팀은 밝혔다.

러스트 릴리즈 팀은 "러스트는 누구나 안정적이고 효율적인 소프트웨어를 개발할 수 있도록 지원하는 프로그래밍 언어"라며 "많은 사람들의 도움이 있었기에 이번 업데이트를 수행할 수 있었다"고 말하며, 업데이트를 지원한 커뮤니티 기여자들에게 감사를 전했다.