use, super, self

๋ชจ๋“ˆ์€ use๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ์‹ฌ๋ณผ์„ ๋‚ด ์Šค์ฝ”ํ”„๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ ๋ชจ๋“ˆ์˜ ์ƒ๋‹จ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์ด ์˜ต๋‹ˆ๋‹ค:

use std::collections::HashSet;
use std::process::abort;

๊ฒฝ๋กœ

๊ฒฝ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค:

  1. ์ƒ๋Œ€ ๊ฒฝ๋กœ:

    • foo ๋˜๋Š” self::foo๋Š” ํ˜„์žฌ ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ foo๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค,
    • super::foo๋Š” ๋ถ€๋ชจ ๋ชจ๋“ˆ์˜ foo๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  2. ์ ˆ๋Œ€ ๊ฒฝ๋กœ:

    • crate::foo๋Š” ํ˜„์žฌ ํฌ๋ ˆ์ดํŠธ ๋ฃจํŠธ์˜ foo๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค,
    • bar::foo๋Š” barํฌ๋ ˆ์ดํŠธ์˜ foo๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
This slide should take about 8 minutes.
  • ๋” ์งง์€ ๊ฒฝ๋กœ์—์„œ ๊ธฐํ˜ธ๋ฅผ โ€™๋‹ค์‹œ ๋‚ด๋ณด๋‚ด๊ธฐโ€™ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๋ ˆ์ดํŠธ์˜ ์ตœ์ƒ์œ„ lib.rs๋Š”

    mod storage;
    
    pub use storage::disk::DiskStorage;
    pub use storage::network::NetworkStorage;

    ํŽธ๋ฆฌํ•˜๊ณ  ์งง์€ ๊ฒฝ๋กœ๋กœ ๋‹ค๋ฅธ ํฌ๋ ˆ์ดํŠธ์—์„œ DiskStorage ๋ฐ NetworkStorage๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ชจ๋“ˆ์— ๋‚˜ํƒ€๋‚˜๋Š” ํ•ญ๋ชฉ๋งŒ โ€˜useโ€™ ์ฒ˜๋ฆฌ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠธ๋ ˆ์ž‡์„ ๊ตฌํ˜„ํ•˜๋Š” ํƒ€์ž…์ด ์ด๋ฏธ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋”๋ผ๋„ ํ•ด๋‹น ํŠธ๋ ˆ์ž‡์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ํŠธ๋ ˆ์ž‡์ด ๋ฒ”์œ„ ๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Read ํŠธ๋ ˆ์ž‡์„ ๊ตฌํ˜„ํ•˜๋Š” ํƒ€์ž…์—์„œ read_to_string ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด use std::io::Read๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • use ๋ฌธ์—๋Š” ์™€์ผ๋“œ ์นด๋“œ(use std::io::*)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์ ธ์˜ค๋Š” ํ•ญ๋ชฉ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.