Service ๊ตฌํ์ฒด๋ฅผ ์ถ์ํ ํ๋๊ฒ์ ๋ํด..
๐ ์์ํ๊ธฐ ์ ์..
์ด๋ณด ๊ฐ๋ฐ์์ธ ์ ์ ์๊ฒฌ์ ๋ํด ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
interface-๊ตฌํ์ฒด๊ตฌ์กฐ๋ฅผ ํํ ๋ฌด์ง์ฑ, ์ฆ ์ด์ ์์ด ์ฌ์ฉํ๊ฑฐ๋ ๊ด๋ก๋ผ์ ์ฌ์ฉํ๋ ์ฌ๋ก์ ๋ง์ด ๋ด์์ต๋๋ค. ์ ๋ ๊ทธ๊ฒ์ ๊ตณ์ด interface๋ฅผ ์ฌ์ฉํด์ผ ํ๋๊ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์ด ๊ธ์ ์ ์์ต๋๋ค.
โจ ๋คํ์ฑ
Service์ ๊ตฌํ์ฒด๋ฅผ interface๋ก ์ถ์ํํด์ ์ฌ์ฉํ๋ ์ด์ ์ค ๊ฐ์ฅ ํฐ ์ด์ ๊ฐ ๋คํ์ฑ์ผ ๊ฒ์ ๋๋ค.
๋คํ์ฑ์ด๋ ๊ฐ๋จํ๊ฒ ํ๋์ Type์ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ๋์ ํ ์ ์๋ ์ฑ์ง์ ๋๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์คํ๋ง์์ ์๋น์ค์ ๋คํ์ฑ์ ๊ตณ์ด ๊ตฌํํด์ผ ํ๋ ์ด์ ๋ฅผ ์ ๋ ์ฐพ์ง ๋ชปํ์ต๋๋ค.
์๋ฅผ ๋ค์ด, UserService๋ฅผ ๊ตฌํํ ๋ ๊ธฐ๋ฅ์ผ๋ก ์ ์ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ, ๋๋ค์ ๋ณ๊ฒฝ ๋ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ์๋ค. ์ด UserService์ ๊ตฌํ์ฒด๊ฐ ์ฌ๋ฌ ๊ฐ ์๊ธธ์ํฉ์ด ์๋๋ฐ๋ ์ด์ ์์ด interface-๊ตฌํ์ฒด๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์๋ก ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ๋ interface๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์๋น์ค๋ฅผ ์ค๊ณํ ๋ ๋๋ฉ์ธ๋ณ ์๋น์ค ๋ถ๋ฆฌ๋ฅผ ๋ ์ง์คํด์ ํ๋์ ๋๋ฉ์ธ์ ์ฌ๋ฌ๊ฐ์ ์๋น์ค๊ฐ ์๊ธฐ์ง ์๊ฒ ์ค๊ณ๋ฅผ ํ๋๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๐ฉ ์ ๋ฆฌ
๋ฐ๋ผ์ ์ ๋ Service์ interface๋ฅผ ๋์ง ์๊ณ ๊ฐ๋ฐ์ ํ๋ค๊ฐ, ์ ์ฐํจ๊ณผ ํ์ฅ์ฑ์ด ํ์ํ ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ ์ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ตฌ์กฐ๋ฅผ ์ ํ๋๋ฐ ์ ๋ต์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๊ฐ ๋งํ ๋ฐฉ๋ฒ๋ํ ์ํฉ์ ๋ฐ๋ผ ๋ง๋ ๊ตฌ์กฐ์ผ์๋, ์๋ชป๋ ๊ตฌ์กฐ์ผ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์ ๋ค๋ฅธ ์๊ฐ์ ๊ฐ์ง์ ๋ถ๋ค์ ์๊ฒฌ ํ์ํฉ๋๋คโค
๋ถ์กฑํ ๊ธ์ด์ง๋ง ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค๐๐