mod와 pub

모듈 트리와 공개 범위

모듈은 코드를 계층으로 묶고, 기본 비공개 규칙 위에 pub을 붙여 외부에서 접근할 경로만 열어 둡니다.

스코프 설계 관련 기능은 같은 모듈 안에 모으고, 호출자가 알아야 하는 항목만 pub으로 공개해 내부 변경 여지를 남깁니다.

front_of_house, hosting, seating처럼 도메인 언어로 모듈을 나누면 경로가 코드의 역할을 설명합니다.

mod

새 모듈을 선언해 아이템을 부모와 자식 관계로 배치합니다.

크레이트 루트

컴파일러가 모듈 트리를 만들기 시작하는 파일입니다.

비공개 기본값

부모 모듈은 자식의 비공개 항목을 볼 수 없고, 자식은 조상 항목을 볼 수 있습니다.

pub

외부에서 참조할 수 있는 경로를 명시적으로 엽니다.

모듈 구성 순서

레스토랑 예제
1
묶기

같은 책임의 함수와 타입을 모듈로 모읍니다.

2
숨기기

내부 구현은 기본 비공개 상태로 둡니다.

3
열기

호출자가 필요한 진입점만 pub으로 노출합니다.

모듈은 파일 정리보다 먼저 API 경계를 설계하는 도구이며, pub은 그 경계를 여는 신중한 선택입니다.