디시인사이드 갤러리

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

갤러리 본문 영역

러스트 담론을 해체하다: 1.2 소유권, 빌림, 생명주기를 통한 메모리

나르시갤로그로 이동합니다. 2025.11.11 19:15:16
조회 65 추천 0 댓글 0

https://nimfsoft.art/ko/books/deconstructing-the-rust-discourse/#12-%EC%86%8C%EC%9C%A0%EA%B6%8C-%EB%B9%8C%EB%A6%BC-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0%EB%A5%BC-%ED%86%B5%ED%95%9C-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC

 


1.2 소유권, 빌림, 생명주기를 통한 메모리 관리

러스트의 목표인 '가비지 컬렉터(GC) 없는 메모리 안전성'은 기존 방식과 구별됩니다. C/C++의 수동 관리는 오류 발생 가능성이 있으며, Java의 GC는 런타임 오버헤드를 수반합니다. 러스트는 이 문제를 해결하기 위해, 런타임이 아닌 컴파일 타임에 메모리 관리 규칙을 강제하는 시스템을 도입했습니다. 이는 소유권(ownership), 빌림(borrowing), 생명주기(lifetimes)라는 세 가지 개념으로 구성됩니다.

1. 소유권 (ownership): 모든 값에는 소유자가 있다

러스트의 메모리 관리는 '소유권' 규칙을 기반으로 합니다.

  • 모든 값(value)은 단 하나의 소유자(owner) 변수만을 가집니다.
  • 소유자가 스코프(scope, 유효 범위)를 벗어나면, 그 값은 자동으로 메모리에서 해제(drop)됩니다.
  • 소유권은 다른 변수로 '이동(move)'될 수 있으며, 이동 후 원래의 소유자는 더 이상 유효하지 않습니다.

이 규칙들은 '이중 해제(double free)' 오류를 방지합니다. 또한, 소유권이 이동하면 이전 변수는 사용할 수 없으므로 '해제 후 사용(use-after-free)' 오류가 컴파일 시점에 방지됩니다.

2. 빌림 (borrowing): 소유권 없이 접근하기

소유권 이동만이 유일한 데이터 전달 방식일 경우, 비효율이 발생할 수 있습니다. 이를 해결하기 위해 러스트는 '빌림' 개념을 제공합니다. 이는 데이터의 소유권을 넘기지 않고, 특정 스코프 내에서 데이터에 대한 접근 권한(참조, reference)을 일시적으로 허용하는 것입니다.

'빌림'에는 다음과 같은 규칙이 적용됩니다.

  • 특정 데이터에 대해, 여러 개의 '읽기 전용 빌림(immutable borrow, &T)'은 동시에 존재할 수 있습니다.
  • '수정 가능한 빌림(mutable borrow, &mut T)'은 단 하나만 존재할 수 있으며, 이 빌림이 유효한 기간에는 다른 빌림이 허용되지 않습니다.

컴파일러는 이 규칙을 통해, 하나의 데이터에 대해 동시 수정 시도나 읽기와 수정의 동시 시도를 컴파일 시점에 차단합니다. 이것이 러스트가 '데이터 경쟁(data race)'을 방지하는 원리입니다.

3. 생명주기 (lifetimes): 빌린 데이터의 유효 기간 보장

'생명주기'는 '빌림(참조)'이 유효한 스코프, 즉 '생존 기간'을 컴파일러에 명시하는 역할을 합니다.

컴파일러는 생명주기 분석을 통해, 빌려온 데이터가 소유자에 의해 먼저 해제되어 발생하는 '댕글링 포인터(dangling pointer)' 문제를 방지합니다. 즉, 데이터의 실제 생존 기간보다, 그것을 빌려온 참조의 생존 기간이 더 길어지는 상황을 허용하지 않습니다. 컴파일러가 생명주기를 자동으로 추론하는 경우가 많으나, 추론이 어려운 경우 개발자가 명시적으로 생명주기를 지정할 수 있습니다.

이 세 가지 개념, 즉 소유권으로 자원의 생애를 관리하고, 빌림으로 데이터 접근을 제어하며, 생명주기로 댕글링 포인터를 방지하는 시스템은 '빌림 검사기(borrow checker)'라는 컴파일러의 일부에 의해 강제됩니다. 이 검사기는 '성능 저하 없는 안전성'을 구현하는 메커니즘입니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 대박 날 것 같아서 내 꿈에 나와줬으면 하는 스타는? 운영자 25/11/17 - -
AD 대학생 필수템! What's in my Bag 운영자 25/11/21 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48739 65
2903928 뭘 해야할지 감도 안잡힘 재현갤로그로 이동합니다. 14:30 1 0
2903927 7시간쯤 잔 듯 발명도둑잡기(125.129) 14:17 8 0
2903924 프로그래밍 존나 재밋다 진자 [1] ㅇㅇ(118.235) 13:50 22 0
2903923 구글 안티그래비티 나왔던데 이건 요금정책이 어떻게됨? [3] 에로망가센세갤로그로 이동합니다. 13:44 23 0
2903922 나는 지능이 낮아서 러스트할바에 파이썬함 타이밍뒷.통수한방(1.213) 13:42 13 0
2903921 자바출신 러빠는 삼일한 해야함 [2] ㅇㅇ(211.235) 13:33 34 0
2903920 어제 희열감 때문에 또 잠을 못 잤습니다 나르시갤로그로 이동합니다. 13:28 18 0
2903919 오늘 점심 고구마 호떡. 넥도리아(119.195) 13:16 16 0
2903916 레딧 r/rust에 올라온 Cloudflare unwrap [46] 나르시갤로그로 이동합니다. 12:22 114 4
2903915 이 방 정리 될까요? 넥도리아(119.195) 12:21 22 0
2903912 노인들 뇌속은 어떻게 한국이 살기좋은 나라인거임?? 타이밍뒷.통수한방(1.213) 11:53 24 0
2903910 언어 라우팅 / URL 설계 연구편 amdc갤로그로 이동합니다. 11:20 28 1
2903909 구글코리아가 대단한게 정치인들 유튜브 차단 절대않하고 [1] 타이밍뒷.통수한방(1.213) 11:16 30 0
2903907 행복은 돈만 많으면 자연스레 얻어지던데 타이밍뒷.통수한방(1.213) 11:01 18 0
2903904 커뮤니티 두번째 업데이트! 프갤러(223.194) 10:26 18 0
2903899 좀 다른 생각도 있다 [4] chironpractor갤로그로 이동합니다. 09:16 74 0
2903897 행복을 얻는 법 [6] chironpractor갤로그로 이동합니다. 08:48 87 0
2903883 Guiyom GUI 툴킷 아키텍처 특허 가능성 재검토 결과... ㅎㅎ [1] 나르시갤로그로 이동합니다. 05:44 41 0
2903868 러스트가 인생 낭비였음이 또 다시 입증되었습니다. [1] 나르시갤로그로 이동합니다. 04:45 62 2
2903865 현대미술..ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 04:24 38 0
2903864 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 04:19 19 0
2903862 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 03:42 48 0
2903857 "7단계로 무너진다.." 미국이 이미 5단계에 있다는 경고 발명도둑잡기(118.216) 03:13 27 0
2903856 햄버거 하나에 6주 할부? 카드빚에 갇힌 미국 발명도둑잡기(118.216) 03:08 29 0
2903854 인종별 성호르몬 출처와 진위 모름 발명도둑잡기(118.216) 03:05 55 0
2903853 "창의력은 우주란 도서관에서 빌리는 것" [1] 발명도둑잡기(118.216) 02:59 25 0
2903845 만들게 없으면 아무거나 만들라는게 진짜임 [1] 박민준갤로그로 이동합니다. 01:54 66 0
2903837 영국을 거지로 만든 신자유주의의 화신 대처 총리 발명도둑잡기(118.216) 01:17 22 0
2903829 [강추] 충격! 영국이 몰락한 이유 | KBS 20221211 방송 발명도둑잡기(118.216) 00:47 43 0
2903825 안녕하세요. 좆문과 대학원생 코딩을 배우고 싶은데요 [5] 마법의칫솔갤로그로 이동합니다. 00:10 61 0
2903823 일본 취업 유학 워홀 여행 관련모임 ㅇㅇ(106.146) 00:07 65 0
2903821 나야말로 안티노미 코스프레하고 면접가서 [1] 프갤러(110.8) 11.21 61 0
2903820 나도 귀에서 이명 들리더라 [5] ㅇㅇ(124.48) 11.21 69 0
2903819 탑 클라스 명문대 진학 퍼펙트 가이드!/ 프갤러(121.142) 11.21 66 1
2903818 면접자리 가서 도둑질하러 왔다고 해도 되나 [2] 프갤러(106.241) 11.21 66 0
2903814 마라톤 OS 발명도둑잡기(118.216) 11.21 32 0
2903813 ㅋㅋㅋㅋ ssg로 포폴 템플릿 잡았다. 프갤러(110.8) 11.21 31 0
2903811 antigravity 로 쓴 SF소설: The Quiet (정적) 프갤러(119.201) 11.21 32 0
2903809 나님 쭈물실게양..⭐+ [5] ♥HERO냥덩♥갤로그로 이동합니다. 11.21 52 0
2903808 ALLDAY PROJECT - ‘ONE MORE TIME’ 발명도둑잡기(118.216) 11.21 17 0
2903807 촉촉한 초코케잌❤ ♥HERO냥덩♥갤로그로 이동합니다. 11.21 74 0
2903806 Baby DONT Cry - 'I DONT CARE' 발명도둑잡기(118.216) 11.21 17 0
2903805 cloudflare 서버 다운이야? 프갤러(112.163) 11.21 31 0
2903804 [내란의 힘] - 노래 : 시사힙합 발명도둑잡기(118.216) 11.21 17 0
2903803 정의로운 구국의 냥덩 나님이 나설때가 오는가.. [6] ♥HERO냥덩♥갤로그로 이동합니다. 11.21 48 1
2903802 CIA가 썼다는 ‘레이저 도청 장치’.. 진짜 작동할까? (※실제 실험※ 발명도둑잡기(118.216) 11.21 21 0
2903801 나님.. [1] ♥KiTTY냥덩♥갤로그로 이동합니다. 11.21 42 0
2903800 공익 레전드 발명도둑잡기(118.216) 11.21 68 0
2903799 <호퍼스> 나왔대서 생각나는 예전 글 발명도둑잡기(118.216) 11.21 22 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2