Kuest AI

무엇이든 무료로 공부하세요

무료로 시작하기

AI와 함께 Rust를 10배 더 빠르게 배우세요

소유권, 빌림, 수명을 명확하게 이해하세요. borrow checker 오류를 붙여 넣으면 Kuest가 무엇을 보호하려는지 이해하도록 도와드려요.

817,000+명의 학생이 이미 Kuest로 공부하고 있어요

주제
10
버전 1.0
2015년 출시
유형
컴파일형, 정적 타입
잘 알려진 특징
가비지 컬렉터 없이 메모리 안전성 제공

Kuest의 가르치는 방식 보기

답을 알려주기 전에 질문하므로, 스스로 생각하고 더 오래 기억하게 돼요.

나: let s1 = String::from("hi"); let s2 = s1; println!("{}", s1);에서 "borrow of moved value: s1"가 발생합니다. 왜인가요?
Kuest: Rust에서는 모든 값에 정확히 한 명의 소유자가 있어요. let s2 = s1; 이후에는 누가 String을 소유한다고 생각하나요?
나: Python에서 복사하는 것처럼 둘 다 소유한다고 생각했어요.
Kuest: 바로 그게 핵심적인 차이예요. String의 경우 할당하면 소유권이 s2로 이동해요. s1도 계속 소유한다면 둘 다 스코프를 벗어날 때 무슨 일이 일어날까요?
나: 둘 다 같은 메모리를 해제하려 할 거예요. 그래서 Rust는 이동 후 s1을 무효로 만들어요.
Kuest: 정확해요. 정말로 별도의 문자열 두 개가 필요하다면 대신 무엇을 작성할 수 있을까요?
나: 실제 복사본을 만들려면 let s2 = s1.clone();, 빌리기만 하면 된다면 let s2 = &s1;를 사용해요.

String을 할당하면 소유권이 이동합니다. clone()은 복사본을 만들고 &는 이동 없이 빌립니다.

Kuest와 함께 집중하는 학생들

명의 학생
817,000+
개국
100+
  • 화학 성적 C에서 A로

    “답을 베끼는 대신 정말 이해하기 시작했어요. 한 학기 만에 화학 성적이 C에서 A가 됐어요.”

    고등학교 3학년, 텍사스
  • 3시간 → 40분

    “노트가 몇 초 만에 퀴즈로 바뀌어요. 예전에는 밤새 걸리던 일이 이제는 드라마 한 편 보는 시간밖에 안 걸려요.”

    고등학교 2학년, 캘리포니아
  • 드디어 SAT 준비 완료

    “계획이 매일 무엇을 해야 하는지 정확히 알려줬어요. 처음으로 마음 편히 시험장에 들어갔어요.”

    고등학교 3학년, 뉴욕
  • 절대 단계를 건너뛰게 하지 않아요

    “처음엔 귀찮았지만 시험 날엔 정말 큰 도움이 됐어요. 이제는 이거 없이도 모든 문제를 풀 수 있어요.”

    오하이오주 9학년 학생
  • 과외 선생님보다 좋아요

    “자정에도 도와주고, 참을성 있고, 예전 과외 선생님 한 번 수업보다도 저렴해요.”

    플로리다주 대학 1학년생
  • 94일 연속 기록 중이에요

    “퀘스트는 10분이면 돼요. 버스에서 해요. 어쩌다 보니 이제는 제가 친구들에게 생물을 설명해 주고 있어요.”

    일리노이주 11학년 학생
  • 드디어 스페인어가 이해됐어요

    “튜터와 소리 내어 말하니 1년 수업을 듣는 것보다 발음이 더 빨리 좋아졌어요.”

    애리조나주 10학년 학생
  • 하룻밤 만에 부족한 부분을 찾았어요

    “갭 체크를 해 보니 몰 개념을 한 번도 제대로 이해하지 못했다는 걸 알았어요. 15분 만에 해결했죠.”

    조지아주 11학년 학생
  • 학부모입니다: 밤 9시 멘붕은 이제 끝

    “제가 미적분을 기억하는 척하지 않아도 아이가 제대로 도움을 받고, 매주 진도도 확인할 수 있어요.”

    워싱턴주 학부모

학습 방법

Kuest로 Rust 공부하는 방법

Rust의 컴파일러는 엄격하며, 오류 메시지도 학습 과정의 일부예요. 각 메시지를 끝까지 읽고 어떤 규칙을 강제하는지 물어보며, 무엇을 누가 소유하는지 그려 보세요. 소유권과 빌림은 한 번의 긴 학습보다 며칠에 걸친 여러 작은 예제를 통해 이해하게 됩니다.

  1. 규칙 이해하기튜터 채팅

    소유권, 빌림 또는 Option에 관해 질문하고 다음으로 넘어가기 전에 Kuest의 확인 질문에 답해 보세요.

  2. borrow checker 읽기사진 찍기

    코드와 컴파일러 오류를 붙여 넣거나 화면을 캡처하면 Kuest가 어떤 규칙을 강제하는지 볼 수 있게 도와드려요.

  3. 소유권 그리기학습 보드

    학습 보드에 소유자, 빌림, 스코프가 그려진 것을 보며 이동과 수명을 이해하세요.

  4. 컴파일될까요?퀴즈

    코드 조각을 보고 컴파일되는지, 아니라면 왜인지 묻는 퀴즈에 답해 보세요.

  5. 패턴을 가까이 두기플래시카드

    Option과 Result 메서드, 트레이트 문법, 흔한 빌림 패턴을 간격 반복 플래시카드로 복습하세요.

  6. 막히는 부분에 집중하기취약점 찾기

    Kuest가 수명이나 &mut처럼 계속 어려움을 주는 부분을 찾아내고, 바로 그것만 연습하도록 하세요.

배울 내용

주제를 탭해 지금 바로 배워 보세요.

  1. 01Cargo와 기초cargo new로 프로젝트를 만들고 let, mut, 기본 타입을 사용해 보세요
  2. 02제어 흐름과 함수if, loop, while, for를 사용하고 표현식에서 값을 반환해 보세요
  3. 03소유권과 이동값이 언제 이동하는지와 이전 변수를 사용할 수 없는 이유를 예측해 보세요
  4. 04빌림과 참조&와 &mut를 사용하고 하나의 작성자 또는 여러 독자 규칙을 따라 보세요
  5. 05문자열, 슬라이스와 컬렉션String과 &str 중 알맞은 것을 선택하고 Vec와 HashMap을 사용해 보세요
  6. 06구조체와 열거형struct와 enum으로 데이터를 모델링하고 impl로 메서드를 추가해 보세요
  7. 07패턴 매칭match, if let, Option<T>로 모든 경우를 처리해 보세요
  8. 08오류 처리Result<T, E>를 반환하고 ? 연산자로 오류를 전파해 보세요
  9. 09트레이트와 제네릭트레이트로 동작을 공유하고 바운드가 있는 제네릭 함수를 작성해 보세요
  10. 10수명수명 표기를 읽고 참조가 데이터보다 오래 유지될 수 없는 이유를 설명해 보세요

이렇게 물어보세요

질문을 탭하면 Kuest가 단계별로 가르쳐 드려요.

준비를 도와주는 시험

  • 시스템 프로그래밍 강좌
  • 프로젝트 및 오픈 소스 작업

Kuest 한 달 이용료는 개인 튜터 1시간 비용보다 저렴해요

똑같은 인내심으로, 언제든, 모든 과목을. 또는 무료 플랜을 계속 이용하세요.

개인 튜터

$40–801시간 기준

  • 며칠 전에 미리 예약
  • 세션당 한 과목
  • 1시간이 끝나면 종료

Kuest Plus

$10월간, 연간 결제

  • 이 사이트의 모든 과목과 시험
  • 필요한 만큼 언제든
  • 퀴즈, 플래시카드, 팟캐스트, 모의고사

궁금한 점, 답해 드려요

다음 학습 세션을 여기서 시작하세요

영구 무료 플랜. 카드 등록 불필요.

무료로 시작하기