Rupring v0.3.0

https://docs.rs/rupring/latest/rupring/
https://github.com/myyrakle/rupring

์›ํ™œํ•œ ์ข…์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ DI ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

๊ทธ๋ƒฅ ๋‹จ์ˆœํ•œ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๋ ค๋ฉด, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋œ๋‹ค.

IProvider ํŠธ๋ ˆ์ž‡์„ ์ •์˜ํ•˜๋Š”๊ฑธ ์ ์ ˆํžˆ ๋งŒ๋“ค๊ณ , provide์—์„œ๋Š” ๋ฐ•์‹ฑํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ €๊ฒŒ ์ฃผ์ž…๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ชจ๋“ˆ์— ์ข…์†์„ฑ์œผ๋กœ ๋“ฑ๋กํ•ด์ฃผ๊ณ 

๋ฆฌํ€˜์ŠคํŠธ์—์„œ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ฉด ๋œ๋‹ค.

๊ทผ๋ฐ ๋˜ ํ”„๋กœ๋ฐ”์ด๋”์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์žˆ๊ณ 

์„œ๋น„์Šค์—์„œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋˜ ๊ฐ€์ ธ๋‹ค์จ์•ผ ํ•œ๋‹ค๋ฉด,

์ด๋ ‡๊ฒŒ ๋””ํŽœ๋˜์‹œ๋ฅผ ๋ช…์‹œํ•ด์ฃผ๊ณ  ํ•จ๊ป˜ ๋“ฑ๋กํ•ด์ฃผ๋ฉด DI ๋งค๋‹ˆ์ €๊ฐ€ ์‹ธ์ดํด ๊ณ ๋ คํ•ด์„œ ์ ์ ˆํžˆ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์ž…ํ•ด์ค€๋‹ค.

๊ทผ๋ฐ ๊ฐ€๋ณ€์„ฑ์ด ํ•„์š”ํ•œ ํ”„๋กœ๋ฐ”์ด๋”๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?
์•„๋ž˜๋Š” ์„œ๋ฒ„ ๋ผ์ดํ”„ํƒ€์ž„๋™์•ˆ ๊ณ„์†ํ•ด์„œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ๊ธ€๋กœ๋ฒŒ ์นด์šดํ„ฐ ํ”„๋กœ๋ฐ”์ด๋”๋ฅผ ์ •์˜ํ•œ ์˜ˆ์‹œ๋‹ค.
Mutex๋‚˜ Atomic์„ ํ†ตํ•ด ๊ฐ€๋ณ€์„ฑ์„ ์ œ์–ดํ•˜๋ฉด thread safeํ•˜๊ฒŒ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

์“ธ๋•Œ๋„ ๊ทธ๋ƒฅ ์ ์ ˆํžˆ ๊ฐ€์ ธ์™€์„œ ์“ฐ๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿผ ์ž˜ ๋Š˜์–ด๋‚œ๋‹ค.

ํŠธ๋ ˆ์ž‡์— ๊ธฐ๋ฐ˜ํ•œ ์ถ”์ƒํ™” ์ฒ˜๋ฆฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
์ถ”์ƒํ™”์— ๊ธฐ๋ฐ˜ํ•ด์„œ ์œ ๋‹›ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ฆฌ๋ ค๋ฉด ๋‹น์—ฐํžˆ ์ถ”์ƒํ™”๋œ ํ˜•ํƒœ๋กœ DI๋ฅผ ๋„ฃ์—ˆ๋‹ค ๋นผ์„œ ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋จผ์ € ํŠธ๋ ˆ์ž‡์„ ์ •์˜ํ•˜๊ณ 

๊ตฌํ˜„ํ•˜๊ณ 

๋„ฃ์„๋•Œ๋Š” 2์ค‘ ๋ฐ•์‹ฑ์„ ํ†ตํ•ด ์ถ”์ƒํ™”๋œ ํƒ€์ž…์— ๋Œ€ํ•œ ํƒ€์ž… ์ •๋ณด๋ฅผ ๋“ฑ๋กํ•ด์•ผ ํ•œ๋‹ค.

๊บผ๋‚ด์“ธ๋•Œ๋„ ์ถ”์ƒํ™”๋œ ํ˜•ํƒœ๋กœ ๊ฐ€์ ธ๋‹ค ์“ฐ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  cargo doc์— ์ด๋ฒˆ์— ์ถ”๊ฐ€๋œ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ๋ฌธ์„œํ™”๋ฅผ ์ข€ ํ•ด๋’€๊ณ , ์ „๋ฐ˜์ ์œผ๋กœ summary๋ฅผ ์ข€ ์ •๋ฆฌํ•ด๋†จ๋‹ค.

https://docs.rs/rupring/latest/rupring/