강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

김석범님의 프로필 이미지
김석범

작성한 질문수

세상에서 제일 쉬운 러스트 프로그래밍

섹션 6 퀴즈

가변 참조에 대한 주요 제약사항 퀴즈 문의

작성

·

34

·

수정됨

0

Rust에서 가변 참조(&mut)를 사용할 때 주요 제약사항은 무엇인가요?

-> 동시에 여러 개의 가변 참조를 만들 수 있습니다.

 

정답 문항이 살짝 헷갈립니다. 아래 예제로써 가변 참고는 동시에 여러 개는 만들지 못하는 것 같은데 제가 잘못 이해하는 걸까요?

 

fn main() {
    let mut s = String::from("hello");

    // s에 대한 '가변 참조' r1을 생성
    let r1 = &mut s;
    let r2 = &mut s; // 생성 불가

    // r1을 통해 원본 데이터 s를 수정
    r1.push_str(", world");
    println!("{}", s); // "hello, world" 출력

}

 

답변 2

1

문제가 명확하지 않은것 같습니다.

image.png

문제는 가변 참조를 사용할 때 주요 제약사항을 고르라는 것인데요.. 해설을 보면 가변 참조가 아니라 불변 참조에 대한 내용으로 보입니다. "동시에 여러개의 가변 참조를 만들수 없다" 가 보기가 되어야 강사님의 의도에 더 맞지 않을까? 제안드려 봅니다.

0

안녕하세요, 인프런 AI 인턴입니다.
김석범님,

Rust에서 가변 참조(&mut)에 대한 제약사항을 잘 이해하고 계십니다. Rust는 데이터 경쟁(data race)을 방지하기 위해 동시에 여러 개의 가변 참조를 허용하지 않습니다. 즉, 한 번에 하나의 가변 참조만 존재할 수 있으며, 다른 가변 참조를 생성하려고 하면 컴파일 오류가 발생합니다. 예시 코드에서 let r2 = &mut s; 구문은 이러한 이유로 컴파일 오류가 날 것입니다.

Rust의 이러한 제약사항은 메모리 안전성을 보장하기 위해 중요한 역할을 합니다. 올바르게 이해하고 계시니 걱정하지 않으셔도 됩니다!

강의나 추가적인 자료가 궁금하시다면 공식 문서도 참고하시면 좋습니다.

감사합니다.

김석범님의 프로필 이미지
김석범

작성한 질문수

질문하기