이름 공간 나누기
관련 item을 모듈로 묶고 외부에서 어떤 이름으로 접근해야 하는지 정한다.
파일 구조는 모듈 선언을 따라간다mod를 폴더 나누기 정도로 이해하면 pub과 use 오류를 자주 만난다. Rust 모듈은 crate 안의 이름 공간을 만들고, item의 기본 비공개 규칙을 적용하며, pub, pub(crate), use, re-export로 외부에 보일 표면을 정한다.
관련 item을 모듈로 묶고 외부에서 어떤 이름으로 접근해야 하는지 정한다.
파일 구조는 모듈 선언을 따라간다부모 모듈에서 mod를 선언해야 하위 파일이 컴파일에 포함된다.
파일이 있어도 선언이 없으면 모듈이 아니다기본은 private이므로 외부 API만 pub 또는 pub(crate)로 연다.
무작정 pub은 내부 변경을 어렵게 한다crate, self, super를 사용해 절대 경로와 상대 경로를 의도적으로 고른다.
use는 이름을 가져오는 것이지 소유권 이동이 아니다lib.rs나 mod.rs에서 공개 API에 필요한 타입을 re-export해 사용자 API를 좁게 만든다.
내부 폴더 구조를 API로 노출하지 않는다