Rust clone()은 쉽지만, 남발하면 성능이 떨어진다
페이지 정보

영삼이
본문
✅ clone()
은 쉽지만, 남발하면 성능이 떨어진다
복사는 비용이다. 빌려 쓸 수 있으면 빌려라
Rust에서는 소유권 문제를 피하려고
무심코 .clone()
을 쓰기 쉽다:
let name = user.name.clone();
❌ 문제 상황
-
clone()
은 값 전체를 복사 -
특히
String
,Vec
,HashMap
등 무거운 타입은
메모리 복사 비용이 큼 -
반복되는 clone은 퍼포먼스 저하로 이어짐
✅ 해결: 가능한 한 참조로 처리
let name = &user.name; // 복사 없이 빌려 쓰기
또는 함수 인자에서도:
fn greet(name: &str) {
println!("Hello, {}", name);
}
greet(&user.name);
언제 clone이 필요한가?
-
값을 소유해야 할 때
-
수명 문제로 참조가 불가능할 때
-
멀티 쓰레드에서 값 복제 필요할 때
✔️ .clone()
은 편하지만,
습관적으로 쓰면 성능 저하의 원인이 된다.
진짜 필요한 경우가 아니라면 참조로 해결하라.
- 이전글Result를 리턴할 땐 ? 연산자를 적극적으로 써라 25.03.28
- 다음글match 문은 강력하지만, 함수로 분리하면 더 읽기 쉬워진다 25.03.28
댓글목록
등록된 댓글이 없습니다.