Service ์ธํฐํ์ด์ค์ ServiceImpl์ ๋ฐ๋ก ๋ง๋๋ ์ด์
1. OOP์ ์ธํฐํ์ด์ค์ Loose coupling
Interface๋ ๊ฐ์ฒด์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ์ํ ํ์
์ด๋ค.
๊ฐ์ฒด์ ๊ตํ์ฑ์ ๋์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋คํ์ฑ์ ๊ตฌํํ๋ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
์ฆ, ๊ฐ๋ฐ ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ํด์ค๋ค.
์ธํฐํ์ด์ค ํ์
์ ์ด๋ค ๊ตฌํ ๊ฐ์ฒด๋ฅผ ๋์
ํ๋์ง์ ๋ฐ๋ผ ์คํ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋๋ก ๋ง๋๋ ๊ธฐ์ ์ด๋ฏ๋ก ๊ธฐ์กด ๊ตฌํ ๊ฐ์ฒด(ServiceImpl1)์ ๋น์ฆ๋์ค ๋ก์ง์ด ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผํ ๊ฒฝ์ฐ ๋ค๋ฅธ ๊ตฌํ ๊ฐ์ฒด(ServiceImpl2)๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ฉด ๋๋ค. ๋ฐ๋ผ์ ์ ์ง๋ณด์ ์ธก๋ฉด์์ ๋งค์ฐ ์ข๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์๋ ํด๋์ค๋ฅผ ์๊ฒ ๋๋์ด ๋ค๋ฅธ ํด๋์ค์ ์์กด๊ด๊ณ๋ฅผ ๋ฎ์ถ๋ ๊ฒ์ด ์ค์ํ๋ค.
์ฆ, ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋๊ฒ์ธ๋ฐ ์ด ๋ํ ์ ์ง๋ณด์๊ฐ ์ฝ๋ค๋ ์ฅ์ ์ ๊ฐ๋๋ค.
2. AOP
AOP์ ํธ๋์ญ์
์ ์๋น์ค ์ธํฐํ์ด์ค์์ ์ฒ๋ฆฌํ๋ค.
์คํ๋ง์์ AOP๋ฅผ ๊ตฌํํ ๋ JDK์ ๊ธฐ๋ณธ ํ๋ก์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด ํ๋ก์๋ ์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ Service์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.