C++26, 러스트급 안정성 도입 무산…안전한 C++ 제안 중단

과도한 제약 반발…프로파일 절충안으로 선회

컴퓨팅입력 :2025/09/17 09:51

C++ 언어에 러스트(Rust) 수준의 메모리 안전성을 도입하려던 '안전한 C++(Safe C++)' 제안이 사실상 중단됐다.

대신 안전성과 보안성을 등급별로 적용하는 '프로파일(Profiles)' 접근법이 국제 표준화 논의의 우선 순위로 떠올랐다.

안전한 C++ 공동 저자인 션 백스터는 "위원회 산하 안전·보안 작업반이 안전한 C++ 대신 프로파일을 우선 추진하기로 표결했다"며 제안이 더 이상 이어지지 않는다고 17일 밝혔다.

C++

지난해 처음 공개돼 주목받은 안전한 C++는 코드 일부에 '안전 영역(safe context)'을 선언해 그 범위 안에서는 메모리·타입·스레드 안전성을 강제하려는 방식이었다.

핵심은 러스트처럼 소유권과 빌림 검사(borrow checker)를 도입하는 것으로 해제된 메모리를 다시 참조하는 오류(use-after-free), 초기화되지 않은 변수 접근, 동시 실행 과정에서 메모리에 동시에 접근하는 충돌(data race) 같은 버그를 컴파일 단계에서 차단하는 것을 목표로 했다.

그러나 표준화 논의 과정에서 언어 설계 원칙과의 충돌, 기존 코드와의 호환성 문제가 제기됐다. 특히 러스트와 유사하게 '안전 함수는 안전 함수만 호출해야 한다'는 강력한 제약이 언어 설계 원칙에 어긋난다는 지적이 이어지면서, 안전한 C++는 점차 표준화 경로에서 밀려났다.

대신 프로파일 접근이 새로운 대안으로 부상했다. 프로파일은 코드 전체를 강제하지 않고 특정 영역별로 안전 규칙을 모아 선택적으로 적용하는 방식이다.

개발자는 컴파일러 플래그나 속성으로 해당 규칙을 활성화해 기존 코드 호환성을 해치지 않으면서 부분적인 안전성을 확보할 수 있다.

C++ 창시자인 비야네 스트롭스트룹은 "C++의 타입 안전성, 리소스 안전성, 메모리 안전성은 역사적 목표였다"며 "프로파일이 기존 코드를 해치지 않으면서도 유연한 안전 프레임워크를 제공할 수 있다"고 강조했다.

위원회는 이를 차기 기술 표준인 C++26에 적용하는 것을 목표로 추진 중이다. 하지만 아직 구현이 미비해 실제 적용 가능성과 효과에 의문이 제기된다는 비판도 나온다.

관련 업계에서는 이번 결정이 C++의 미래를 가르는 분기점이 될 것으로 보고 있다. 러스트와 같은 강력한 안전 모델을 도입하는 데 실패하면서 안전성을 중시하는 기업과 개발자들은 러스트나 구글이 실험 중인 차세대 언어 카본 같은 대안으로 눈을 돌릴 가능성이 크다는 분석이다.

관련기사

일부 커뮤니티와 전문가들은 "프로파일은 절충안에 가까운 만큼 안전한 C++이 목표했던 수준에는 미치지 못한다"고 지적하며 구현 사례도 부족한 만큼 향후 적용 가능성과 효과를 검증해야 한다는 지적도 나오고 있다.

반면 일각에서는 프로파일이 기존 생태계를 유지하면서도 점진적으로 안전성을 끌어올리는 현실적 해법이 될 수 있다는 기대도 제기되고 있다.