TSyringe
TSyringe๋
Syringe(์ฃผ์ฌ๊ธฐ) ์ฆ, ์ฃผ์ฌ๊ธฐ๋ก ์ฃผ์ ํ๋ ์ญํ ์ ํ๋ค.. ๋ฌด์์? ์์กด์ฑ์ MS์์ ๋ง๋ TypeScript์ฉ DI ๋๊ตฌ(IoC Container)
TSyringe๋ ES6์ Reflect.metadata
API์ TypeScript์ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์์กด์ฑ ์ฃผ์
์ ๊ตฌํ
External Store๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ํ์ฉํ ์ ์๋ค.
ESbuild๋ฅผ ์ฌ์ฉํ๋ Vite์์๋ decorator๋ฅผ ์ง์ํ์ง ์์ Tsyringe๋ฅผ ์ฌ์ฉํ ์์๋ค.. #Issue
์์กด์ฑ ์ค์น
์ฝ๋ ์ง์
์ ์ด ๋๋ ํ์ผ src/main.tsx
์ src/setupTexts.ts(ํ
์คํธ)
์์ reflect-metadata ์ํฌํธ
Signleton ์์
์ฑ๊ธํค์ผ๋ก ๊ด๋ฆฌํ CounterStore ํด๋์ค ์ค๋น
์ฑ๊ธํค CounterStore ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ
Test Code
TSyringe์์ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ ์ ์๋ค.
singleton (์ฑ๊ธํค)
๊ฐ์ฒด์งํฅ ๋์์ธ ํจํด ์ค ํ๋๋ก, ํน์ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์ค์ง ํ๋๋ง ์์ฑ๋๋๋ก ๋ณด์ฅํ๋ ํจํด
์ฌ๋ฌ ๊ณณ์์ ๋์ผํ ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๊ณ ์ ํ ๋ ์ ์ฉ
์ธ๋ถ์์ ์ธ์คํด์ค๋ฅผ ์ง์ ์์ฑํ์ง ๋ชปํ๊ฒ ํด๋์ค์ ์์ฑ์๋ฅผ ๋ง์๋๋ค.
ํด๋์ค ๋ด๋ถ์์ ์ ์ผํ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ๋ฐํํ๋ ์ ์ ๋ฉ์๋๋ฅผ ๊ตฌํํ์ฌ ์ ๊ณต
์ฑ๊ธํค ํจํด์ธ ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค์ ๊ฒฐํฉ๋๊ฐ ๋๋ค๋ฉด DI ํจํด์ ์ฌ์ฉํ์
Last updated