AI 에이전트 시대의 C 언어 Part 1: 흔들리는 위상과 새로운 도전자들
이 글은 Claude Opus 4.6 을 이용해 초안이 작성되었으며, 이후 퇴고를 거쳤습니다.
들어가며#
C 언어는 1972년 탄생 이래 50년 넘게 시스템 프로그래밍의 근간이었습니다. Linux 커널, Windows, macOS, PostgreSQL, Python 런타임, nginx — 우리가 매일 쓰는 소프트웨어의 토대 상당 부분이 C로 작성되어 있습니다.
그러나 최근 몇 년간 C 언어의 입지에 큰 변화가 일어나고 있습니다. 메모리 안전성 문제를 둘러싼 논쟁이 격화되고, 미국 정부 기관이 공식적으로 C 사용을 자제하라고 권고하며, Rust를 비롯한 대안 언어들이 빠르게 성장하고 있습니다. 여기에 2024년부터 본격화된 AI 코딩 에이전트(Claude Code, Codex, Gemini CLI 등) 의 등장은 이 흐름을 더욱 가속하고 있습니다.
이 글은 2파트로 구성됩니다:
- Part 1 (이 글): AI 이전의 C 언어 위상 변화, C23 표준, 대안 언어들
- Part 2: AI 에이전트가 C 개발에 미치는 영향, 도메인별 현황, 개발자 생태계, 전망
1. 메모리 안전성 논쟁: “70% 규칙”#
C 언어의 위상이 흔들리기 시작한 핵심 원인은 메모리 안전성(Memory Safety) 문제입니다. 버퍼 오버플로, use-after-free, 댕글링 포인터 같은 메모리 관련 버그는 C/C++ 코드베이스에서 가장 흔한 보안 취약점의 원인입니다.
얼마나 심각할까요? 주요 기업과 프로젝트의 통계를 보면 놀라울 정도로 일관된 패턴이 나타납니다:
| 프로젝트/조직 | 메모리 안전 관련 취약점 비율 | 출처 |
|---|---|---|
| Microsoft (Windows 등) | ~70% (고위험 CVE 기준) | MSRC, 2019 (12년간 일관) |
| Google Chrome | ~70% (심각한 보안 버그 기준) | Chromium 프로젝트 |
| Android | 76% (2019년) → 24% (2024년) | Google Security Blog |
| Google Project Zero (제로데이) | ~67% (2021년 기준) | Project Zero 보고서 |
Microsoft는 2019년 MSRC 블로그에서 이렇게 밝혔습니다: “매년 CVE를 부여하는 보안 취약점의 약 70%가 메모리 안전 이슈이며, 이 비율은 최소 12년간 일관적으로 유지되고 있다.” 그리고 같은 해 “We Need a Safer Systems Programming Language"라는 제목의 글을 게시하며 Rust를 대안으로 명시적으로 언급했습니다.
이 “70% 규칙"은 C/C++ 코드베이스의 구조적 문제를 가리킵니다. 아무리 뛰어난 개발자라도 수만~수백만 줄의 C 코드에서 메모리 버그를 완전히 방지하기란 사실상 불가능합니다. 이것은 개발자의 역량 문제가 아니라 언어 설계의 근본적 한계 에 가깝습니다.
2. 주요 마이그레이션 사례: 누가, 왜 C를 떠나고 있는가#
Linux 커널: 가장 큰 C 코드베이스의 변화#
약 3,400만 줄의 C 코드로 이루어진 Linux 커널은 세계 최대의 C 프로젝트입니다. 이 커널이 Rust를 수용하기 시작했다는 것은 상징적인 의미가 큽니다.
- 2022년 10월: Linux 6.1에 Rust 인프라가 최초로 머지됩니다. 약 12,500줄의 기본 인프라 코드였습니다.
- 2023년 12월: Linux 6.8에 Rust로 작성된 최초의 드라이버가 수용됩니다.
- 2024년 8월: Linus Torvalds는 Rust 도입 속도가 기대보다 느리다고 언급하면서도, “old-time kernel developers are used to C and don’t know Rust"라며 변화의 불가피성을 인정합니다.
- 2025년 12월: 커널 메인테이너 서밋에서 “the experiment is done, Rust is here to stay"라는 선언이 나옵니다. Rust는 Linux 커널의 영구적인 공식 언어로 자리 잡았습니다.
그러나 이 과정이 순탄하지만은 않았습니다. 2024년 9월, Rust for Linux의 핵심 메인테이너 Wedson Almeida Filho가 “비기술적 문제(nontechnical nonsense)” 에 대한 좌절감으로 사임했고, 2025년 2월에는 커널 메인테이너 Christoph Hellwig가 Rust 바인딩 추가를 거부하며 다중 언어 코드베이스를 “cancer"에 비유하는 논란이 있었습니다. 50년간 C만 써온 거대한 커뮤니티에서의 변화는 기술적 문제만큼이나 문화적 저항도 크다 는 것을 보여주는 사례입니다.
Google Android: 가장 명확한 성과#
Google의 Android 프로젝트는 C에서 Rust로의 전환이 가져오는 실증적 성과 를 가장 명확하게 보여줍니다.
- 메모리 안전 취약점 비율: 2019년 76% → 2024년 24% (실제 건수: 223건 → 50건 미만)
- Rust 코드는 C/C++ 코드 대비 메모리 안전 취약점 밀도 1,000배 감소
- 개발 효율: Rust 변경사항은 롤백률 4배 낮음, 코드 리뷰 시간 25% 단축
Microsoft: 2030년까지 C/C++ 전면 교체 선언#
2023년에 Azure CTO Mark Russinovich가 신규 C/C++ 프로젝트를 금지하고 Rust를 요구한 데 이어, 2025년 12월에는 Distinguished Engineer Galen Hunt가 “2030년까지 Microsoft의 모든 C/C++ 코드를 제거하겠다” 는 목표를 발표했습니다. 목표 지표는 “1명의 엔지니어가 1개월에 100만 줄의 코드를 변환"하는 것입니다. 다만 한 시니어 엔지니어는 “Windows가 AI로 Rust에 재작성되고 있다는 것은 아니다"라고 명확히 선을 긋기도 했습니다.
sudo/su: 보안 핵심 도구의 재작성#
Unix/Linux의 핵심 보안 도구인 sudo와 su도 Rust로 재작성되었습니다. 원래 sudo의 보안 버그 중 3분의 1이 메모리 관리 이슈 에서 기인했으며, 2023년 9월 ISRG의 Prossimo 프로젝트를 통해 메모리 안전한 sudo-rs가 출시되었습니다.
3. 미국 정부의 공식 권고: C를 쓰지 말라#
개별 기업의 판단을 넘어, 미국 정부 기관들이 공식적으로 C/C++ 사용을 자제하라고 권고 하고 있다는 점은 이 흐름의 무게감을 더해줍니다.
| 시기 | 기관 | 핵심 내용 |
|---|---|---|
| 2022년 11월 | NSA | C/C++에서 Rust, Go, Java, C# 등으로의 전략적 전환 권고 |
| 2023년 10월 | CISA | “Secure by Design” — 메모리 안전 언어 우선 사용 권고 |
| 2023년 12월 | CISA+NSA+FBI | “The Case for Memory Safe Roadmaps” 공동 가이드 발행 |
| 2024년 2월 | 백악관 ONCD | 메모리 안전 언어 채택 공식 촉구. Morris worm(1988), Heartbleed(2014) 등의 공통 원인이 메모리 안전 취약점이라고 명시 |
| 2025년 6월 | NSA/국방부 | 메모리 안전 언어 전환 권고 재강조 |
백악관이 특정 프로그래밍 언어에 대해 공식 입장을 내놓는 것은 이례적인 일입니다. 이는 메모리 안전성 문제가 단순한 기술적 논쟁이 아니라 국가 안보 차원의 이슈 로 격상되었음을 의미합니다.
4. “Rewrite it in Rust” 논쟁: 반론도 있다#
물론 이 흐름에 대한 반론도 존재합니다. 일방적인 “C는 끝났다” 서사는 현실을 정확히 반영하지 못합니다.
C/C++ 진영의 반론#
C++ 창시자 Bjarne Stroustrup 은 2023년 NSA의 권고에 대해 강하게 반박했습니다. 그는 NSA가 C와 C++를 “C/C++“로 묶어 취급하는 것에 반대하며, “30년 이상의 발전을 무시한다"고 비판했습니다. C++의 Safety Profiles를 통한 정적 분석으로 메모리 안전을 달성할 수 있다는 것이 그의 주장입니다.
UC San Diego의 학술 연구 는 C와 Rust 인터페이스 경계(FFI)에서 발생하는 메모리 안전 이슈를 분류하며, 단순한 재작성이 모든 문제를 해결하지 못한다는 점을 지적했습니다.
CISA KEV(Known Exploited Vulnerabilities) 분석에서는 실제로 악용된 취약점 중 메모리 손상은 19.5% 에 불과하다는 결과도 나왔습니다. 메모리 안전에만 집중하면 다른 유형의 취약점을 간과할 수 있다는 경고입니다.
C가 여전히 강점을 가지는 영역#
- 성능: 순수한 실행 속도에서 여전히 최고 수준
- 이식성: ANSI C로 작성하면 거의 모든 플랫폼에서 컴파일 가능
- 생태계 성숙도: GCC, Clang 등 수십 년간 검증된 도구 체인
- 하드웨어 근접성: OS 커널, 펌웨어, 임베디드 시스템에서의 결정적 리소스 제어
- 언어 인터페이스: 대부분의 현대 언어가 C ABI를 통해 상호운용
5. C23 표준: 언어 차원의 대응, 그리고 근본적 한계#
2024년 10월, 새로운 C 표준인 C23(ISO/IEC 9899:2024) 이 공식 발표되었습니다. C 언어도 가만히 있지는 않았습니다.
주요 개선사항#
| 기능 | 설명 |
|---|---|
nullptr 키워드 |
타입 안전한 널 포인터. NULL/0의 모호함 해소 |
bool, true, false |
정식 키워드 승격 (stdbool.h 불필요) |
auto 타입 추론 |
변수 선언 시 타입 자동 추론 |
constexpr |
컴파일 타임 상수 평가 |
typeof 연산자 |
표준화된 타입 추론 |
#embed 지시자 |
바이너리 데이터 직접 포함 |
| 속성 문법 | [[nodiscard]], [[maybe_unused]] 등 |
근본적 한계#
그러나 C23이 메모리 안전성의 근본 문제를 해결하지는 못합니다. 빌려오기 검사(borrow checking), 수명 분석(lifetime analysis), 메모리 안전 보장 같은 기능은 C23에 포함되지 않았습니다. 버퍼 오버플로, use-after-free, 댕글링 포인터의 방지는 여전히 프로그래머의 책임입니다.
2025년 3월에 발표된 MISRA C:2025 는 4개의 새 규칙을 추가하고 C23 기능을 지원하지만, 이는 언어 차원의 강제가 아닌 가이드라인 수준에 머무릅니다.
요약하면, C23은 “더 현대적인 C” 를 제공하지만, 메모리 안전성이라는 핵심 논쟁에 대한 답은 되지 못합니다. C 언어의 설계 철학 — 프로그래머에게 최대한의 자유를 주되, 그 결과에 대한 책임도 프로그래머가 진다 — 은 C23에서도 변하지 않았습니다.
6. 대안 언어들: C의 왕좌를 노리는 도전자들#
Rust: 가장 유력한 후계자#
Rust는 현재 C의 대안으로 가장 주목받는 언어입니다.
- 최근 12개월간 220만 명 이상 의 개발자가 사용
- 기업의 60% 가 신규 프로젝트에 Rust를 채택 (RustRover 2025 설문)
- Linux 커널의 영구 공식 언어로 자리매김
- 자동차 분야에서 ISO 26262 인증 Rust 컴파일러 등장 (Ferrous Systems)
- 임베디드: Espressif(ESP32)의 공식 지원, ARM Cortex-M 생태계 성장
Rust의 강점은 컴파일 타임에 메모리 안전성을 보장 하면서도 C에 준하는 성능을 제공한다는 점입니다. 다만 학습 곡선이 가파르고, 기존 C 개발자들의 채택 저항이 크다는 점은 여전한 과제입니다.
Zig: “더 나은 C"를 표방하는 신생 언어#
Zig는 C의 직접적인 개선을 목표로 하는 언어입니다. 아직 1.0 이전(2025년 10월 기준 0.15.2)이지만, 1.0은 2026년 중후반으로 예상됩니다.
- 일급 C 상호운용: C 헤더를 직접 임포트하고, C 라이브러리와 자연스럽게 연동
- 숨겨진 할당 없음: 메모리 할당이 명시적이어서 임베디드 환경에 적합
- comptime: 컴파일 타임 코드 실행으로 C 매크로의 대안 제공
Zig는 Rust처럼 패러다임을 바꾸기보다, C의 철학을 유지하면서 날카로운 모서리를 다듬는 접근을 취합니다. C 개발자에게는 가장 자연스러운 전환 경로가 될 수 있습니다.
Go: 시스템 인프라의 새 강자#
Go는 가비지 컬렉션이 있어 C의 직접적 대체는 아니지만, 과거 C로 작성했을 법한 인프라 소프트웨어 의 상당 부분을 흡수했습니다. Docker, Kubernetes, Terraform, Prometheus — 클라우드 네이티브 생태계의 핵심 도구들이 Go로 작성되어 있습니다. 2024년 기준 세 번째로 빠르게 성장하는 언어입니다.
Carbon: 아직은 먼 미래#
Google이 개발 중인 Carbon은 C++의 후계자를 목표로 합니다. 그러나 0.1 버전도 2026년 말 이후로 예상되며, 프로덕션용 1.0은 2028년 이전에는 어렵습니다. C 대체보다는 C++ 대체에 초점이 맞춰져 있습니다.
TIOBE 지수로 본 현재#
TIOBE 지수에서 C의 위치도 의미심장한 변화를 보이고 있습니다:
- 2024년: C++에 추월당하며 4위로 하락 — 2001년 TIOBE 지수 시작 이래 최저 순위 기록
- 2026년 1월: C23 채택과 임베디드/IoT 수요에 힘입어 2위로 반등 (10.99%)
- 2026년 3월: Python(~22%) 에 이어 2위권 유지, C++·Java와 1% 이내 근소한 차이
C가 죽어가는 것은 아니지만, 더 이상 압도적인 1위도 아닙니다. “범용 시스템 언어"에서 “특정 도메인의 핵심 언어"로 역할이 좁혀지고 있다 는 것이 현재의 흐름입니다.
Part 1 마무리#
지금까지 살펴본 것은 AI 에이전트가 등장하기 이전에 이미 진행되고 있던 변화입니다. 메모리 안전성 논쟁, 정부 권고, 주요 프로젝트의 마이그레이션, C23의 한계, 대안 언어의 성장 — 이 모든 것이 C 언어의 위상에 구조적 변화가 일어나고 있음을 보여줍니다.
Part 2에서는 이 변화의 한가운데 등장한 AI 코딩 에이전트 가 C 언어 개발에 어떤 영향을 미치고 있는지 살펴보겠습니다. AI는 C 개발을 더 안전하게 만들어 C의 수명을 연장하고 있을까요, 아니면 C에서 다른 언어로의 전환을 가속하고 있을까요? 흥미롭게도, 두 가지 현상이 동시에 일어나고 있습니다.
References#
- Microsoft MSRC: We Need a Safer Systems Programming Language (2019)
- Google Security Blog: Rust in Android (2025)
- White House ONCD: Back to the Building Blocks (2024)
- NSA: Software Memory Safety CSI (2022)
- CISA: The Case for Memory Safe Roadmaps (2023)
- Linux Kernel Adopts Rust as Permanent Language (2025)
- Microsoft to Replace All C/C++ by 2030 (2025)
- ISRG Prossimo: sudo-rs (2023)
- C++ Creator Bjarne Stroustrup Defends Its Safety (2023)
- C23 Standard (ISO/IEC 9899:2024)
- MISRA C:2025 (2025)
- TIOBE Index (2026)