• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 기타게임 소스자료실
    • 기타게임 소스자료실 기타 ()
    • [Rust 공식문서 한국어 정리] 81. Rust Miri 가이드

      • 오뉴노노
      • 2026.06.08 - 12:26 6

    [Rust 공식문서 한국어 정리] 81. Rust Miri 가이드



    원문 제목: Miri — Rust Interpreter

    작성자: Rust Compiler Team



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    📌 1. 서론 — 이 문서가 다루는 내용

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    이 문서는 Rust의 Undefined Behavior(UB)를 감지하는 인터프리터인 Miri를 소개합니다.

    Miri는 Rust 코드를 직접 해석하여 실행하며, 메모리 안전성 위반, 잘못된 포인터 사용, 데이터 레이스 등을 감지합니다.

    unsafe 코드, FFI 경계, 복잡한 수명 관리가 있는 코드의 정확성을 검증하는 데 필수적인 도구입니다.

    Miri의 설계 철학, 사용법, 한계, 그리고 CI 통합 방법을 중심으로 설명합니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🔑 2. 핵심 개념 4가지

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    ① Miri: Rust MIR을 해석 실행하는 인터프리터로, UB를 감지합니다.

    ② Stacked Borrows: Miri가 사용하는 메모리 모델로, 참조의 유효성을 엄격히 검사합니다.

    ③ Tree Borrows: Stacked Borrows의 대안 모델로, 일부 합법적인 패턴을 더 잘 허용합니다.

    ④ UB Detection: 데이터 레이스, dangling pointer, 미초기화 메모리 읽기, 정렬 위반 등을 감지합니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    📖 3. 주요 내용 상세

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    Miri는 rustup component add miri로 설치하고, cargo miri run/test으로 실행합니다.

    컴파일러가 생성한 MIR을 해석하여 실행하므로, Miri는 실제 머신 코드가 아닌 Rust의 의미론(semantics) 수준에서 검사합니다.



    Miri의 핵심은 UB 감지입니다.

    미초기화 메모리 읽기, dangling pointer 역참조, 정렬되지 않은 접근, 데이터 레이스를 즉시 감지하고 에러를 출력합니다.

    이는 AddressSanitizer나 Valgrind보다 Rust 특화된 검사를 제공합니다.



    Stacked Borrows는 Miri의 기본 메모리 모델입니다.

    참조가 생성되고 무효화되는 시점을 추적하여, aliasing 규칙 위반을 검출합니다.

    일부 합법적인 unsafe 패턴이 Stacked Borrows에 의해 거부될 수 있으므로, Tree Borrows 대안도 제공됩니다.



    Miri는 네이티브 코드(FFI)를 실행할 수 없습니다.

    C 라이브러리 호출은 Miri에서 지원되지 않으므로, FFI가 포함된 코드는 부분적으로만 검사 가능합니다.

    또한 Miri는 매우 느리므로, 전체 테스트 스위트를 Miri로 실행하는 것은 비현실적입니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🛠 4. 실전 활용

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    unsafe 코드나 복잡한 수명 관리가 있는 모듈의 테스트를 cargo miri test로 실행합니다.

    커스텀 자료구조(예: lock-free 자료구조)를 Miri로 검증하여, UB가 없음을 확인합니다.

    CI에서 Miri 잡을 별도로 두고, 핵심 unsafe 모듈에 대해서만 Miri로 검사합니다.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    ✅ 5. 정리

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    Miri는 Rust unsafe 코드의 안전성을 검증하는 강력한 도구입니다.

    Stacked Borrows/Tree Borrows 메모리 모델을 통해 Rust의 엄격한 aliasing 규칙을 검사합니다.

    느리지만 정확하므로, 핵심 unsafe 모듈에 선택적으로 적용하세요.



    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    🔗 출처 링크

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━



    원문: https://github.com/rust-lang/miri

    Miri Book: https://rustc-dev-guide.rust-lang.org/miri.html



    #Rust #Miri #UB #Unsafe #MemorySafety #Interpreter #번역

    이 게시물을..
    N
    0
    0
    • [Rust 공식문서 한국어 정리] 166. str오뉴노노
    • 2
      오뉴노노

    오뉴노노 님의 최근 글

    [Rust 공식문서 한국어 정리] 184. PartialOrd 48 2026 06.08 [Rust 공식문서 한국어 정리] 183. Ord 42 2026 06.08 [Rust 공식문서 한국어 정리] 182. Eq 27 2026 06.08 [Rust 공식문서 한국어 정리] 181. PartialEq 33 2026 06.08 [Rust 공식문서 한국어 정리] 180. TryFrom 22 2026 06.08

    오뉴노노 님의 최근 댓글

    ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • [Rust 공식문서 한국어 정리] 166. str
    • 목록
      view_headline
    × CLOSE
    전체 던파 5 뮤 18 천상비 프로젝트신루 5 아이온 18 어둠의전설 28 리니지2 7 크로노스 5 칼온라인 3 기타 490
    기본 (489) 제목 날짜 수정 조회 댓글 추천 비추
    기타 정렬 검색
    • 포인트 획득 공지
      5
      2026.04.24 - 19:48 6384 5
    • 링크 업로드 관련 공지
      10
      2026.03.25 - 21:56 5749 10
    • 인증메일 공지
      3
      2026.03.15 - 16:42 5677 3
    • 파일링크 및 인증메일 발송 관련 문의 안내
      9
      2026.03.14 - 22:03 6554 9
    • 포인트 게시판 안내
      2026.02.28 - 19:14 7156
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 8856 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:16 860
    489
    기타
    [Rust 공식문서 한국어 정리] 184. PartialOrd
    오뉴노노 2026.06.08 - 15:42 48
    488
    기타
    [Rust 공식문서 한국어 정리] 183. Ord
    오뉴노노 2026.06.08 - 15:42 42
    487
    기타
    [Rust 공식문서 한국어 정리] 182. Eq
    오뉴노노 2026.06.08 - 15:42 27
    486
    기타
    [Rust 공식문서 한국어 정리] 181. PartialEq
    오뉴노노 2026.06.08 - 15:42 33
    485
    기타
    [Rust 공식문서 한국어 정리] 180. TryFrom
    오뉴노노 2026.06.08 - 15:42 22
    484
    기타
    [Rust 공식문서 한국어 정리] 179. TryInto
    오뉴노노 2026.06.08 - 15:42 16
    483
    기타
    [Rust 공식문서 한국어 정리] 178. From
    오뉴노노 2026.06.08 - 15:39 20
    482
    기타
    [Rust 공식문서 한국어 정리] 177. Into
    오뉴노노 2026.06.08 - 15:39 14
    481
    기타
    [Rust 공식문서 한국어 정리] 176. AsRef
    오뉴노노 2026.06.08 - 15:39 12
    480
    기타
    [Rust 공식문서 한국어 정리] 175. Deref
    오뉴노노 2026.06.08 - 15:39 9
    479
    기타
    [Rust 공식문서 한국어 정리] 174. Default
    오뉴노노 2026.06.08 - 15:39 10
    478
    기타
    [Rust 공식문서 한국어 정리] 173. Clone
    오뉴노노 2026.06.08 - 15:38 9
    477
    기타
    [Rust 공식문서 한국어 정리] 172. Copy
    오뉴노노 2026.06.08 - 15:38 9
    476
    기타
    [Rust 공식문서 한국어 정리] 171. Drop
    오뉴노노 2026.06.08 - 15:38 5
    475
    기타
    [Rust 공식문서 한국어 정리] 170. Weak
    오뉴노노 2026.06.08 - 15:37 15
    474
    기타
    [Rust 공식문서 한국어 정리] 169. Arc
    오뉴노노 2026.06.08 - 15:37 4
    473
    기타
    [Rust 공식문서 한국어 정리] 168. Rc
    오뉴노노 2026.06.08 - 15:37 12
    472
    기타
    [Rust 공식문서 한국어 정리] 167. Box
    오뉴노노 2026.06.08 - 15:36 6
    471
    기타
    [Rust 공식문서 한국어 정리] 166. str
    오뉴노노 2026.06.08 - 15:36 7
    470
    기타
    [Rust 공식문서 한국어 정리] 165. String
    오뉴노노 2026.06.08 - 15:36 5
    • 1 2 3 4 5 6 7 8 9 10 .. 25
    • / 25 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay