유튜브 이슈 요약

A New Era for C and C++? Goodbye, Rust?

cadabra 2025. 4. 7. 11:56

🛡️ C와 C++의 메모리 안전성 논의

C와 C++ 개발자들이 메모리 안전성을 확보하기 위해 다양한 방법을 모색하고 있습니다. 특히, 미국 정부의 CISA와 FBI는 메모리 안전성이 보장되지 않는 C와 C++ 언어 사용을 줄이고, Rust와 같은 메모리 안전성이 높은 언어로의 전환을 촉구하고 있습니다. 이와 관련해, 2026년까지 메모리 안전성 로드맵을 발표하지 않으면 국가 안보와 경제에 위험을 초래할 수 있다는 경고가 나온 상황입니다. 이러한 변화에 대해 C와 C++ 커뮤니티에서는 큰 논란과 비판이 일어나고 있으며, 일부 개발자들은 Rust 대신 기존 언어에 메모리 안전성을 도입하려는 노력을 기울이고 있습니다.

🔧 Safe C++ 프로젝트: C++에 메모리 안전성 추가

Safe C++ 프로젝트는 기존 C++ 언어를 확장하여 메모리 안전성을 보장하려는 시도입니다. 이 프로젝트는 Rust의 주요 개념을 기반으로 하여, 안전한 C++ 하위 집합을 정의하고, 버퍼 검사, 초기화 분석, 패턴 매칭, 스레드 안전성 기능 등 다양한 안전성 기능을 추가하려는 목표를 가지고 있습니다. 이 기술은 성능을 유지하면서도 메모리 안전성을 보장할 수 있도록 설계되었습니다. 그러나 현재는 이 기술이 실제로 구현되거나 명확한 설계가 이루어지지 않은 상태입니다.

⚙️ Phil C: C와 C++의 메모리 안전성 구현

Phil C는 Epic Games의 필립 피즐로가 개발한 C와 C++의 메모리 안전성 버전입니다. 이 컴파일러는 기존 C와 C++ 코드와 100% 호환되며, 코드 변경 없이 메모리 안전성을 보장할 수 있도록 설계되었습니다. 현재 Linux에서만 사용 가능하며, 성능은 기존 C보다 약 1.5배에서 2배 정도 느리지만, 개발자는 성능 향상을 위해 지속적으로 노력하고 있습니다. Phil C는 Rust의 "unsafe" 기능과 같은 예외를 두지 않으며, 메모리 안전성을 완전히 지원하는 언어로서 Rust의 필요성을 대체하려는 목표를 가지고 있습니다.

🔄 Trap C: 새로운 메모리 안전 C 언어 제안

Trap C는 C 언어의 메모리 안전성 버전을 제안한 새로운 언어로, 2024년 방콕에서 열린 W214 컨퍼런스에서 발표되었습니다. Trap C는 C와 매우 유사하지만, 버퍼 오버플로, 세그멘트 오류, 메모리 누수 등을 방지할 수 있는 메모리 안전 기능을 갖추고 있습니다. 이 언어는 C와의 호환성을 유지하면서도 자동 메모리 관리와 포인터 오류 방지, 바운드 체크 등의 기능을 제공합니다. Trap C는 기존 C 개발자가 더 쉽게 채택할 수 있도록 설계되었으며, C++의 생성자와 소멸자도 포함하고 있습니다.

🚀 결론: C와 C++의 메모리 안전성을 향한 노력

C와 C++ 커뮤니티는 Rust와 같은 새로운 언어를 배우는 대신, 기존 언어에 메모리 안전성을 통합하려는 방향으로 움직이고 있습니다. Safe C++ 프로젝트, Phil C, Trap C와 같은 다양한 시도들이 그 예로, 이들은 C와 C++의 강력한 성능을 유지하면서도 메모리 안전성을 보장할 수 있는 방법을 모색하고 있습니다. C와 C++ 개발자들은 새로운 언어로의 전환 대신, 기존 언어에 대한 개선을 통해 메모리 안전성을 확보하려고 노력하고 있으며, 이러한 변화가 실제로 어떻게 구현될지에 대한 논의는 계속될 것입니다.