# Android에서의 Rust: 더 빠르게 움직이며 문제 해결

> Clean Markdown view of GeekNews topic #24366. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24366](https://news.hada.io/topic?id=24366)
- GeekNews Markdown: [https://news.hada.io/topic/24366.md](https://news.hada.io/topic/24366.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-15T04:38:28+09:00
- Updated: 2025-11-15T04:38:28+09:00
- Original source: [security.googleblog.com](https://security.googleblog.com/2025/11/rust-in-android-move-fast-fix-things.html)
- Points: 7
- Comments: 3

## Summary

Android가 **Rust 중심의 시스템 언어 전환**을 본격화한 이후, 플랫폼 전반의 **메모리 안전 취약점 비율이 20% 이하로 감소**하며 보안성과 생산성이 동시에 향상되고 있습니다. Rust 코드는 C/C++ 대비 **취약점 밀도 1000배 낮고**, **롤백률 4배 감소**, **코드 리뷰 시간 25% 단축**이라는 수치를 보여주며, 단순한 언어 교체를 넘어 **개발 효율 자체를 재정의하는 변화**를 이끌고 있습니다. 커널·펌웨어·앱까지 확산된 Rust 도입은 Android의 기본 보안 수준을 끌어올리고, unsafe 코드 교육과 Scudo 할당자 같은 **보안 인프라 강화 전략**과 맞물려 새로운 표준으로 자리 잡는 중입니다. “보안을 위해 속도를 포기하던 시대는 끝났다”는 말이 이제 현실이 된 듯합니다.

## Topic Body

- Android 플랫폼에서 **Rust 도입 이후 메모리 안전 취약점 비율이 전체의 20% 이하로 감소**, 보안성과 개발 효율이 동시에 향상됨  
- Rust 코드는 C/C++ 대비 **메모리 안전 취약점 밀도가 1000배 낮고**, **롤백률 4배 감소**, **코드 리뷰 시간 25% 단축**  
- Rust 사용 확대는 **커널, 펌웨어, 1st-party 앱**으로 확장되어, 시스템 전반의 **기본 보안 수준 향상**에 기여  
- CrabbyAVIF에서 발견된 **Rust 기반 첫 메모리 안전 취약점 ‘거의 발생’ 사례**를 통해 Scudo 할당자와 안전한 unsafe 코드 교육의 중요성 확인  
- Rust 전환은 보안 강화와 개발 속도 향상을 동시에 달성하는 **새로운 소프트웨어 개발 패러다임**으로 평가됨  

---

### Rust 도입의 효과와 2025년 데이터
- 2025년 Android의 **메모리 안전 취약점 비율이 20% 미만으로 감소**, Rust 중심의 보안 전략이 유효함을 입증  
- Rust는 C/C++ 대비 **메모리 안전 취약점 밀도 1000배 감소**, **롤백률 4배 낮음**, **코드 리뷰 시간 25% 단축**  
- Rust 도입은 단순한 보안 개선을 넘어 **소프트웨어 전달 속도 향상**으로 이어짐  
- 데이터는 Android 플랫폼 내 **C, C++, Java, Kotlin, Rust** 전반의 1st-party 및 3rd-party 코드 변경을 포함  

### 시스템 언어 전환과 개발 생산성
- Android는 시스템 프로그래밍 언어로 **Rust를 C/C++의 대안**으로 채택, 유사한 제어 수준을 제공하면서 위험을 줄임  
- 1st-party 코드 기준으로 **Rust 코드 증가세가 C++을 추월**, 두 언어 간 개발 지표 비교가 가능해짐  
- DORA 프레임워크를 활용해 **Throughput(전달 속도)** 과 **Stability(안정성)** 을 측정  
  - Rust와 C++의 코드 크기, 개발자 풀, 시간 경향을 통제하여 비교 수행  

### Throughput: 코드 리뷰 효율 향상
- Rust 코드는 C++ 대비 **20% 적은 수정(revision)** 이 필요하며, **코드 리뷰 시간 25% 단축**  
- 2023~2024년 사이 Rust 전문성 향상으로 리뷰 효율이 크게 개선  
- 리뷰 및 재작업 감소는 생산성 향상으로 이어지며, **안정성 개선이 가장 큰 효과 요인**으로 작용  

### Stability: 롤백률 감소와 품질 향상
- DORA 기준에서 **Rust의 롤백률은 C++ 대비 약 4배 낮음**, 특히 중대형 변경에서 두드러짐  
- 낮은 롤백률은 생산성 향상에 직접 기여, 빌드 재작업·포스트모템·팀 차단 등 부수적 비용을 줄임  
- 2022년 Google 엔지니어 설문에서도 Rust가 **리뷰가 쉽고 정확도가 높다**는 평가를 받음  
- 데이터는 이러한 인식을 실증적으로 뒷받침  

### 보안과 생산성의 동시 향상
- 과거에는 보안 강화가 성능 저하나 개발 지연을 초래했으나, **Rust 전환은 보안과 효율을 동시에 개선**  
- Rust 도입으로 **보안, 개발 효율, 제품 안정성** 모두 향상되는 구조 형성  

### Rust 확산 영역
- **커널:** Android 6.12 Linux 커널에서 Rust 지원 및 첫 Rust 드라이버 도입  
  - Arm·Collabora와 협력해 **Rust 기반 GPU 드라이버** 개발 진행 중  
- **펌웨어:** Rust 도입으로 **고권한·제약 환경의 보안성 강화**, 관련 **튜토리얼·교육·코드 공개**  
  - Arm과 협력한 **Rusted Firmware-A** 프로젝트 진행  
- **1st-party 앱:**  
  - **Nearby Presence**: Bluetooth 기반 기기 탐색 프로토콜을 Rust로 구현, Google Play Services에서 실행  
  - **MLS**: RCS 메시징용 보안 프로토콜을 Rust로 구현, 향후 Google Messages 앱에 포함 예정  
  - **Chromium**: PNG, JSON, 웹폰트 파서를 Rust로 교체, **Rule of 2** 준수 용이  

### Rust 기반 첫 메모리 안전 취약점 ‘거의 발생’ 사례
- **CrabbyAVIF**에서 선적 직전 **버퍼 오버플로우 취약점(CVE-2025-48530)** 발견, 공개 전 수정 완료  
- **Scudo hardened allocator**가 가드 페이지로 인해 취약점을 **비악용 가능(non-exploitable)** 상태로 만듦  
- Scudo는 Pixel 등에서 기본 사용 중이며, 파트너사에도 **의무화 추진 중**  
- 크래시 리포팅 개선으로 **오버플로우 감지 신호 명확화**  

### Unsafe 코드 관리와 교육 강화
- OS 개발에는 불가피하게 **unsafe 코드(C/C++ 또는 unsafe Rust)** 필요  
- Google은 **Comprehensive Rust 교육 과정에 unsafe 코드 심화 모듈 추가**  
  - unsafe 코드의 건전성(soundness), 정의되지 않은 동작, 안전 주석, 안전 추상화 기법 등을 다룸  
- unsafe Rust의 이해도 향상은 **Android 및 오픈소스 생태계 전반의 코드 품질 향상**으로 이어짐  

### 취약점 밀도 비교
- Android Rust 코드 약 500만 줄 중 1건의 잠재적 취약점 발견 → **Rust 취약점 밀도 0.2/MLOC**  
- C/C++의 과거 평균은 **1,000/MLOC**, 즉 **1000배 이상 감소**  
- 메모리 안전 취약점 밀도 감소는 **전체 보안 아키텍처의 효과성 강화**로 이어짐  
- Rust 코드 중 약 4%는 `unsafe{}` 블록이지만, 데이터상 **C/C++보다 버그 가능성이 낮음**  
  - 이유로는 **안전 검사 유지, 캡슐화, 추가 검토 강화** 등이 있음  

### 결론
- 과거에는 보안 확보를 위해 **정적 분석·샌드박싱·패치 등 고비용 대응**이 필요했음  
- Rust 전환은 **보안성과 효율성을 동시에 확보**하는 새로운 접근  
- 이제는 “빠르게 개발하고 나중에 고치는” 방식이 아니라, **“빠르게 개발하면서 동시에 고치는”** 단계로 진입  
- 보안이 강화될수록 **성능과 생산성 회복 가능성**도 커짐  

### 감사
- CVE-2025-48530 분석, Scudo 개선, unsafe Rust 교육 개발, Rust 활용 정보 제공 등 기여자 다수 언급  
- Android Rust 팀과 전체 Android 조직의 **지속적 품질 개선 노력**에 감사 표시

## Comments



### Comment 46371

- Author: brain1401
- Created: 2025-11-16T16:23:53+09:00
- Points: 1

Rust 만만세!

### Comment 46370

- Author: bus710
- Created: 2025-11-16T15:04:33+09:00
- Points: 1

Embassy로 펌웨어 개발을 살짝 손대보니  
언어적 안정성도 좋지만.... 툴링이 워낙 좋다보니, c/c++ 사용하던 때에 비해 생산성이 압도적 입니다.

### Comment 46337

- Author: neo
- Created: 2025-11-15T04:38:30+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45918616) 
- 5백만 줄의 **Rust 코드**에서 단 하나의 메모리 안전성 취약점만 발견되었음  
  즉, Rust는 백만 줄당 0.2건의 취약점 비율을 보임  
  반면 C/C++은 백만 줄당 1,000건 수준이라, 차이가 압도적임
  - 인터넷에는 여전히 “Rust로 리라이트하자”는 말만 나와도 비난이 쏟아지는 곳이 있음  
    하지만 이런 **명확한 데이터** 앞에서 왜 여전히 무시하는지 이해하기 어려움  
    나 자신은 아직 Rust를 써본 적 없지만, 언젠가 꼭 배워볼 생각임
  - 개인적으로는 이 글에서 “코드 리뷰가 쉬워지고 롤백이 줄어든다”는 점이 더 인상 깊었음  
    보안도 중요하지만, **롤백 없는 배포**야말로 개발자가 진짜 원하는 것임  
    Rust로 작성하면 그런 안정감이 있음
  - Rust는 진정한 **공학적 돌파구**임  
    컴퓨터 과학에서 이런 혁신은 정말 드물게 나오는 것임
  - 만약 이 통계가 사실이라면, C++의 미래는 어둡다고 봄  
    2025년에 C++을 쓸 이유는 기존 코드베이스 유지 외에는 거의 없음  
    새로 만드는 건 전부 Rust로 가야 함
  - 다만 이건 **새 코드 vs 오래된 코드**의 비교라 완전히 공정하진 않음  
    새 프로젝트는 최신 테스트 체계와 명확한 목표를 가지고 시작하니까  
    그래도 Rust가 C++보다 **정신적으로 건강한 언어**라는 건 부정할 수 없음

- Rust 배우는 게 정말 **고통스러웠음**, 다른 언어보다 훨씬 복잡했음  
  하지만 컴파일러와 몇 번 씨름하고 나면, 코드가 돌아갈 때 거의 문제가 없다는 확신이 생김  
  Ruby, JS/TS, Python을 쓰다가 Rust로 오니 “컴파일되면 80~90% 완성”이라는 느낌이 듦  
  게다가 빠름
  - 내가 제일 좋아하는 Rust의 특징은 **런타임 에러를 컴파일 타임에 잡는 것**임  
    컴파일러와 싸우는 과정이 사실은 숨어 있던 버그를 미리 고치는 과정임
  - 어느 순간부터는 컴파일러와 싸우지 않고 **협업**하게 됨  
    Rust의 사고방식이 머릿속을 지배하게 됨
  - Rust 배우기 쉽다고? 나도 4~5번은 새로 배워봤음  
    그만큼 잊기 쉽고 다시 배우기 쉬운 언어라는 농담임
  - TypeScript에서도 이런 안정감을 느끼지 못했는지 궁금함  
    Ruby, JS, Python은 동의하지만 TS는 조금 다르다고 생각함

- Google은 아직 Android **userspace에서 Rust를 공식 지원하지 않음**  
  NDK와 Android Studio는 여전히 C/C++만 지원함  
  Rust를 쓰려면 커뮤니티가 직접 도구를 만들어야 함
  - 사실 Google은 NDK 자체를 점점 **없애려는 방향**으로 가고 있음  
    JVM 쪽 코드 없이는 앱을 만들기 어려움
  - 그래도 Rust로 .so 파일을 빌드해 NDK에 넣는 건 가능함  
    Android의 ABI는 언어에 상관없이 규칙만 지키면 됨

- 이건 **C++을 침몰시킨 폭탄** 같은 사건임  
  이제 “Rust도 unsafe하다”거나 “C++도 잘 쓰면 안전하다”는 변명은 힘들어짐
  - Rust의 장점은 단순히 안전성뿐 아니라 **cargo, 문법, 모듈 관리** 전반임  
    안전한 코드 작성은 귀찮지만, 일단 통과하면 멀티스레드 환경에서도 자신감이 생김  
    Android 앱도 Rust로 만들고 싶음
  - 언어 전쟁에는 관심 없음  
    단지 **안전한 시스템 도구**를 만들 수 있는 선택지가 늘어난 게 반가움
  - Rust 컴파일러도 결국 **LLVM과 GCC** 위에 서 있음  
    산업 표준은 여전히 C/C++ 중심이라 Rust가 완전히 대체하긴 어려움
  - 결국 어떤 **소프트웨어 종류**냐에 따라 Rust의 적합성이 달라짐

- 롤백률이 4배 차이 난다는 건 충격적임  
  대부분의 수치는 이미 예상된 현실이지만, 이건 새로움
  - Rust가 안전하다는 건 다들 알았지만, **1000배 차이**는 놀라움  
    Rust가 특별히 완벽하다기보다, 기존 코드의 버그가 그만큼 많다는 뜻임  
    대규모 코드베이스에서 이런 데이터가 나온 건 인상적임
  - 대부분의 코드베이스는 **초기 테스트 설계**가 부족함  
    처음부터 모듈 단위의 **수용 테스트 시스템**을 만들면 Rust가 하는 검증을 테스트로 대체할 수 있음  
    메모리 누수뿐 아니라 성능 저하까지 감시 가능함
  - 새 코드는 Rust로, 오래된 코드는 C++로 유지했다면  
    단순히 **오래된 코드의 리스크** 차이일 수도 있음
  - 코드 크기 차이에도 불구하고 롤백률이 일정하다는 점이 흥미로움

- 친구가 Rust 리라이트 프로젝트를 맡게 됐는데,  
  “이걸로 3년치 월급은 보장됐다”고 농담했음  
  **리라이트 → 메모리 안전 확보 → 안정된 급여 루프**라는 농담 섞인 전략임  
  Rust 컴파일러가 느리게 컴파일하는 동안 옛 코드를 읽으며 여유롭게 일할 수 있음

- 이 데이터는 **혼란 변수**를 통제하지 않았음  
  보통 리라이트 대상은 이미 잘 이해된 코드라 리뷰가 빠르고 롤백이 적음  
  반면 복잡한 레거시 코드는 리뷰가 길고 롤백이 많음
  - 하지만 첫 번째 차트는 단순히 그런 현상만으로 설명되지 않음  
    쉬운 코드만 리라이트했다면, **메모리 안전 취약점 비율**이 다르게 나왔을 것임  
    실제로는 문제 많은 코드일수록 Rust로 다시 쓰는 경향이 있음  
    완벽한 실험은 아니지만, **실제 효과**로 보는 게 더 타당함
  - 이 글은 대부분 **신규 코드 작성**에 대한 이야기임
  - 변경 크기(S/M/L)별로 비교해 혼란을 줄이려 했음  
    라인 삭제량 기준으로 리라이트 규모를 분석하면 더 흥미로울 것 같음
  - 테스트 커버리지가 높은 복잡한 프로젝트일수록  
    오히려 **리라이트하기 쉬운 환경**이 됨  
    Rust의 장점을 믿지만, 이건 과학적 증거라기보다 **강력한 경험적 근거**로 봄

- 앞으로 Rust 도입이 **비메모리 안전성 버그**에도 어떤 영향을 줄지 궁금함

- 나는 **게임 개발**에 Rust를 씀 (Bevy는 아님)  
  안정성과 처리량 덕분에 다른 언어로 돌아갈 생각이 없음
  - Bevy 없이 Rust로 게임을 만든다니 흥미로움  
    어떤 **crate 조합**과 아키텍처를 쓰는지 궁금함  
    나도 취미로 게임을 만드는데 Bevy는 조금 과하다고 느꼈음

- 이제 Rust는 **핵심 시스템 코드**에도 충분히 자리 잡았다고 느낌  
  더 이상 uphill battle이 아님  
  “Rust로 다시 써라”는 게 밈이 아니라 실제 근거가 쌓이고 있음
  - [Phoronix](https://www.phoronix.com/)의 Rust 관련 글을 보면  
    댓글의 80%가 여전히 **Rust 혐오자**임  
    “C++도 잘 쓰면 안전하다”, “Rust도 버그 있다” 같은 반복된 주장뿐임  
    무지한 비판이지만, 이제는 웃기기보다 안타까움
  - 이 접근은 “기존 코드 리라이트”가 아니라 **신규 코드를 Rust로 작성**하는 전략임
  - Rust는 Android처럼 **커널과 소프트웨어를 직접 관리하는 환경**에선 완벽히 맞음  
    하지만 모든 곳에 적용하자는 건 과함  
    Rust의 **소유권 모델**은 개발 속도를 늦추고, 언어 자체도 아직 진화 중임  
    네트워크 지연이 큰 서비스라면 Python이나 Node가 더 효율적임  
    즉, Rust는 훌륭하지만 **모든 문제의 해답은 아님**
