14์žฅ: namespace

1. namespace ๊ฐœ์š”

TCL์˜ namespace๋Š” ๋ณ€์ˆ˜์™€ ํ”„๋กœ์‹œ์ €๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ด๋ฆ„ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค.

namespace, double colon, array๋Š” ๋Œ€๊ทœ๋ชจ ๋ณ€์ˆ˜ data ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ๋ณ€์ˆ˜ ์Šคํฌ๋ฆฝํŒ…๋งŒ ํ•˜๋Š” ๊ฒฝ์šฐ, 14~16์žฅ์€ ๋„˜์–ด๊ฐ€์…”๋„ ๋ฉ๋‹ˆ๋‹ค. (๋‚œ์ด๋„๊ฐ€ ์žˆ์–ด์„œ, ํฌ๊ธฐํ•˜์‹ค๊นŒ๋ด ๐Ÿ˜‚)

2. namespace ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ

2.1 namespace ์ƒ์„ฑ

namespace eval MyNamespace {
    variable myVar 10
    proc myProc {} {
        puts "Hello from MyNamespace"
    }
}

2.2 namespace ๋‚ด ์š”์†Œ ์ ‘๊ทผ

::๋Š” Double colon์ด๋ผ๊ณ  ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค. ๋‹ค์Œ ์žฅ์—์„œ ์ž์„ธํžˆ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

puts $MyNamespace::myVar
MyNamespace::myProc

3. namespace ๋ช…๋ น์–ด

3.1 ํ˜„์žฌ namespace ํ™•์ธ

3.2 namespace ๋ชฉ๋ก ์กฐํšŒ

3.3 namespace ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ

3.4 namespace ์‚ญ์ œ

4. namespace ์ค‘์ฒฉ

namespace๋Š” ์ค‘์ฒฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. namespace import/export

5.1 ๋ช…๋ น์–ด export

5.2 ๋ช…๋ น์–ด import

6. namespace path

๋‹ค๋ฅธ namespace์˜ ๋ช…๋ น์–ด๋ฅผ import ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

7. namespace ๋ณ€์ˆ˜

7.1 ๋ณ€์ˆ˜ ์„ ์–ธ

7.2 ๋ณ€์ˆ˜ ์ ‘๊ทผ

8. namespace ensemble

๊ด€๋ จ ๋ช…๋ น์–ด๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

9. ์ฃผ์˜์‚ฌํ•ญ โš ๏ธ

  • ์ „์—ญ namespace๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”.

  • namespace ์ด๋ฆ„ ์ถฉ๋Œ์— ์ฃผ์˜ํ•˜์„ธ์š”.

  • import ์‚ฌ์šฉ ์‹œ ์ด๋ฆ„ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

10. ํŒ๊ณผ ์š”๋ น ๐Ÿ’ก

  • ํฐ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” namespace๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜์„ธ์š”.

  • namespace ์ด๋ฆ„์€ ์˜๋ฏธ์žˆ๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ง€์œผ์„ธ์š”.

  • ํ•„์š”ํ•œ ๊ฒฝ์šฐ namespace ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธด ์ด๋ฆ„์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • namespace ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” variable ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

11. ์„ฑ๋Šฅ ๊ณ ๋ ค์‚ฌํ•ญ ๐Ÿš€

  • namespace๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์ค‘์ฒฉํ•˜๋ฉด ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด์˜ ๊ฒฝ์šฐ, ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ๋” ๋น ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TCL์˜ namespace๋ฅผ ๋งˆ์Šคํ„ฐํ•˜์—ฌ ๊น”๋”ํ•˜๊ณ  ๋ชจ๋“ˆํ™”๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”!

Last updated