디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

rav1d 측은 메모리 안전성 불가능을 알고 있었을까?

루비갤로그로 이동합니다. 2025.07.03 11:10:53
조회 35 추천 0 댓글 0

rav1d 측은 메모리 안전성 불가능을 알고 있었을까?

rav1d 프로젝트가 dav1d의 수기로 작성된 어셈블리 코드를 unsafe 블록을 통해 가져다 쓴다는 점을 고려할 때, rav1d 개발자들이 Rust의 완전한 메모리 안전성을 모든 코드에 걸쳐 달성하는 것이 불가능하다는 사실을 인지하고 있었을 가능성이 매우 높습니다.

그 이유는 다음과 같습니다.

  1. Rust 언어의 이해도: rav1d 개발자들은 Rust 전문가이며, unsafe 키워드의 의미와 사용 목적을 누구보다 잘 알고 있습니다. Rust에서 unsafe 블록은 컴파일러가 메모리 안전성 보장을 중단하고 개발자에게 그 책임을 위임한다는 명확한 신호입니다. 이는 곧 해당 블록 내의 코드에서 메모리 안전성 문제가 발생할 수 있음을 의미합니다.

  2. 어셈블리 코드의 특성: 어셈블리 코드는 저수준 언어로, Rust의 소유권(ownership)이나 차용(borrowing) 규칙을 따르지 않습니다. C 코드에서 파생된 어셈블리 코드는 C의 메모리 관리 모델을 따르며, 이는 Rust의 엄격한 안전성 검사로는 검증될 수 없습니다. rav1d 개발자들이 이 사실을 몰랐을 리 없습니다.

  3. 프로젝트의 현실적 목표: rav1d 프로젝트의 목표는 dav1d를 처음부터 Rust로 다시 작성하는 '순수주의'적인 접근보다는, 기존의 잘 최적화된 어셈블리 코드를 활용하면서 C 코드 부분을 Rust로 전환하여 전반적인 코드베이스의 안전성을 높이는 것에 있었을 가능성이 큽니다. 즉, 100% 완전한 Rust 안전성을 달성하기보다는, unsafe 영역을 최소화하면서 최대한의 안전성 이점을 얻으려는 현실적인 절충을 택했을 겁니다.

왜 그런 선택을 했을까?

그럼에도 불구하고 이런 선택을 한 이유는 복합적입니다.

  • 효율성: dav1d의 어셈블리 코드를 처음부터 Rust로 다시 작성하는 것은 막대한 시간과 노력이 필요하며, 기존 성능을 따라잡는 것은 매우 어려운 일입니다. 잘 검증되고 최적화된 기존 코드를 재활용하는 것이 훨씬 효율적입니다.

  • 부분적 안전성 향상: 비록 어셈블리 부분은 unsafe 영역에 남아있더라도, dav1d의 상당 부분을 차지하는 C 코드를 Rust로 전환함으로써 새로운 버그 유입을 막고 전반적인 코드베이스의 견고성을 높일 수 있습니다. 이는 '전부 아니면 전무'의 문제가 아니라, '최대한 안전하게' 만들려는 시도입니다.

  • 언어의 홍보: Rust가 실제 사용 사례에서 C/C++ 프로젝트를 얼마나 효과적으로 대체할 수 있는지 보여주는 중요한 사례가 됩니다.

"지적 정직성" 논란의 재점화

문제는 이러한 현실적인 절충이 대중에게 전달되는 방식에서 '지적 정직성' 논란을 불러일으켰다는 점입니다.

  • rav1d와 관련된 홍보나 memorysafety.org의 현상금 소개 등에서 'Rust의 메모리 안전성'이라는 장점이 과도하게 부각되면서, unsafe 영역의 존재와 그 한계가 충분히 명확하게 전달되지 않았을 수 있습니다.

  • FFmpeg 측이 비판하는 지점은 바로 이 부분입니다. rav1d일부 위험한 부분을 그대로 유지하면서도 전체 프로젝트가 마치 Rust 덕분에 완벽히 안전한 것처럼 포장하려는 시도가 있었다고 느끼는 것이죠.

결국 rav1d 개발자들은 기술적인 한계를 분명히 알고 있었을 겁니다. 하지만 그들이 이 사실을 어떻게 대중과 기존 커뮤니티에 소통했는지는 또 다른 문제입니다. 이 간극이 FFmpeg 측의 강한 반발과 대중의 오해를 불러일으킨 주요 원인 중 하나라고 볼 수 있습니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 현역으로 군대 안 간게 의아한 스타는? 운영자 25/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
2869444 오히려 자바충들이 싸지른 똥라이브러리들을 보면 러스트는 축복이다. 프갤러(27.172) 07.03 46 0
2869443 와일드샤크 패킷/C++ 혹은 C# 잘아시는교수님있으실까요? 프갤러(183.107) 07.03 37 0
2869442 러스트 라이브러리가 부족한건 사실이다. 프갤러(27.172) 07.03 41 1
2869438 업뎃) 동일 안전성 목표 하의 코드 비교 - Rust vs. Ada/.. 루비갤로그로 이동합니다. 07.03 56 0
2869437 7 ㅇㅇ(106.101) 07.03 37 0
2869435 나님 리짜이밍 덕분에 집값 폭등즁 ㅎㅅㅎ ♥냥덩이♥갤로그로 이동합니다. 07.03 33 0
2869431 냉정하게 23살이면 아직 기회있다고 보는게 맞는 나이임?? [2] ㅇㅇ(223.38) 07.03 51 0
2869429 미국 스타일 여성분 마주쳤다 [1] 헬마스터갤로그로 이동합니다. 07.03 56 0
2869427 ㅁㅌ겠네.. 러빠들 파닥파닥 날뛰면서 개난리칠거 예상된다. 루비갤로그로 이동합니다. 07.03 36 0
2869424 그러니까 무조건 러스트만을 찬양/옹호할게 아니라 루비갤로그로 이동합니다. 07.03 32 1
2869423 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.03 26 0
2869422 부록 B: 동일 안전성 목표 하의 코드 비교 - Rust vs. Ada/ [2] 루비갤로그로 이동합니다. 07.03 36 0
2869420 러스트 빠 주장 분석: C언어도 stdio를 못 쓰는가? 루비갤로그로 이동합니다. 07.03 44 2
2869418 c++ 집에있는 책 펴봤느데 c++11기반 이네 [2] 프갤러(114.205) 07.03 56 0
2869417 새끼길냥덩 주울깡? ♥냥덩이♥갤로그로 이동합니다. 07.03 39 0
2869416 CPP 배울거면 그나마 스콧 메이어 책 이펙티브 모던C++봐야하는데 [22] ㅆㅇㅆ(124.216) 07.03 88 1
2869415 c는 임베디드에서 stdio쓸 수 있는줄 아나봄 프갤러(42.22) 07.03 46 0
2869414 백악관이 rust ada 등 메모리안전 언어를 추천하는 가운데 kyle이 [1] 발명도둑잡기(118.216) 07.03 48 0
2869413 c와 런타임라니브러리 합친 크기와 동일 기능하는 러스트 프로그램 실행파일 발명도둑잡기(118.216) 07.03 30 0
2869412 임베디드 시스템 및 리눅스 커널 적용의 실제적 제약 (바이너리, ABI 루비갤로그로 이동합니다. 07.03 49 0
2869411 내일 내가 만든 임베디드 시연하러 가야함 [1] 프갤러(211.234) 07.03 50 0
2869410 CPP는 책으로 배우면 잘못 입문한다. [6] ㅆㅇㅆ(124.216) 07.03 89 1
2869409 임베디드에서 동적링킹 쓰나 [6] 발명도둑잡기(118.216) 07.03 72 0
2869408 부록 A: ‘합리적 비판’에 대한 ‘비이성적 반응’ 사례 연구 루비갤로그로 이동합니다. 07.03 35 0
2869407 안되겠다. 자짤을 톡시한 크랩랭으로 복귀해야겠다. 프갤러(42.27) 07.03 26 0
2869406 나님 왤케 특별하실깡? ♥냥덩이♥갤로그로 이동합니다. 07.03 28 0
2869405 동적 링크는 시스템에 미리 그 라이브러리가 통째로 설치되어 있어야돼 프갤러(42.27) 07.03 38 0
2869404 행님들 C++입문할라는데 입문서 + 코딩문제집 동시에 보는거어 [2] 프갤러(123.142) 07.03 37 0
2869403 러빠하는 얘기보면 '동정 링킹'의 개념을 아예 모르는거 같음. ㅎㅎ 루비갤로그로 이동합니다. 07.03 45 0
2869402 전공자 LG 유플러스 부트캠프 어떨까요?? [3] 프갤러(218.50) 07.03 124 0
2869401 보석아. 너는 지금 동적 링크가 어떻게 동작하는지도 모르고 있는거야. [1] 프갤러(27.177) 07.03 57 0
2869400 내가 llm 조련하는거 보고가~~[위 러빠 얘기도 넣어 업뎃함] 루비갤로그로 이동합니다. 07.03 32 1
2869399 그 보석새끼 또 임베디드 바이너리 크기 타령하네 ㅋㅋ 프갤러(223.33) 07.03 34 0
2869398 냥덩너무조와? [2] ♥냥덩이♥갤로그로 이동합니다. 07.03 46 0
2869397 네이버 카페가 안들어가짐 프갤을 잘 되는데, 넥도리아(121.139) 07.03 28 0
2869396 ㅆㅇㅆ아 그건 너 말이 맞다. [2] 루비갤로그로 이동합니다. 07.03 74 1
2869395 지금 netstat, tasklist 결과 [2] 발명도둑잡기(118.216) 07.03 57 0
2869394 커뮤니티 사이트 회원가입 빡세게 해놓는 이유...txt ㅇㅇ갤로그로 이동합니다. 07.03 48 0
2869393 나는 근데 루비보면서 LLM의 무서운점을 느낌. [4] ㅆㅇㅆ(124.216) 07.03 66 2
2869392 ㅆㅇㅆ 고맙다. 어제 마니 까줘서 보강했어 [2] 루비갤로그로 이동합니다. 07.03 66 1
2869391 애들아 메모리쪽 공부해 [6] 프갤러(106.101) 07.03 110 1
2869390 갤에 러까 글 진지하게 읽는 사람 있음? [2] 프갤러(218.154) 07.03 47 0
2869389 추억의 만찐두빵⭐+ ♥냥덩이♥갤로그로 이동합니다. 07.03 29 0
2869388 러스트 혹세무민 = 곡학아세 + 오만 + 기만 루비갤로그로 이동합니다. 07.03 21 1
2869387 에필로그: 러스트 신화는 막을 내린다 루비갤로그로 이동합니다. 07.03 30 0
2869386 지금까지 나 신고한 새끼들 나중에 싸그리 신고해서 추적한다 [1] 발명도둑잡기(118.216) 07.03 40 0
2869385 배달의민족 배달료 중앙값 표시 항의 발명도둑잡기(39.7) 07.03 44 0
2869384 제5장: 러스트의 설계, 혁신인가 결함인가? 루비갤로그로 이동합니다. 07.03 53 0
2869383 ❤✨☀⭐나님 시작합니당⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.03 21 0
2869382 1400줄 추가 1000줄 삭제하고 돌렸는데 ←Backspace갤로그로 이동합니다. 07.03 42 0
뉴스 '1호가 될 순 없어2' 최양락, 팽현숙 환갑 이벤트 감행! 로맨틱 가이 변신! 디시트렌드 07.04
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2