범위 단축

use와 pub use

같은 문법처럼 보여도 목적이 다릅니다. 현재 파일에서 편하게 부를 이름인지, 사용자에게 공개할 API 경로인지 먼저 고르면 됩니다.

internal

use

use crate::front_of_house::hosting;

현재 스코프에서만 짧은 이름을 만듭니다. 함수는 부모 모듈까지 가져와 출처를 남기는 방식이 읽기 쉽습니다.

rename

as

use std::io::Result as IoResult;

이름이 충돌할 때 새 이름을 붙입니다. 서로 다른 `Result`처럼 의미가 겹치는 타입을 명확히 구분합니다.

public

pub use

pub use crate::front_of_house::hosting;

내부 구조와 다른 공개 경로를 만듭니다. 크레이트 사용자는 더 짧고 안정적인 경로에 의존합니다.

정리 기준: 코드 안의 반복을 줄이면 `use`, 이름 충돌을 풀면 `as`, 외부 사용자의 경로를 바꾸면 `pub use`입니다.