Service์™€ ServiceImpl

Service ์ธํ„ฐํŽ˜์ด์Šค์™€ ServiceImpl์„ ๋”ฐ๋กœ ๋งŒ๋“œ๋Š” ์ด์œ 


1. OOP์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ Loose coupling
Interface๋Š” ๊ฐ์ฒด์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ํƒ€์ž…์ด๋‹ค. 

๊ฐ์ฒด์˜ ๊ตํ™˜์„ฑ์„ ๋†’์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๋‹คํ˜•์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. 

 

์ฆ‰, ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

 

์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์— ์–ด๋–ค ๊ตฌํ˜„ ๊ฐ์ฒด๋ฅผ ๋Œ€์ž…ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ์‹คํ–‰๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ด๋ฏ€๋กœ ๊ธฐ์กด ๊ตฌํ˜„ ๊ฐ์ฒด(ServiceImpl1)์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ตฌํ˜„ ๊ฐ์ฒด(ServiceImpl2)๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์ข‹๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ์ž‘๊ฒŒ ๋‚˜๋ˆ„์–ด ๋‹ค๋ฅธ ํด๋ž˜์Šค์™€ ์˜์กด๊ด€๊ณ„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. 

 

์ฆ‰, ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š”๊ฒƒ์ธ๋ฐ ์ด ๋˜ํ•œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ–๋Š”๋‹ค.

2. AOP
AOP์™€ ํŠธ๋žœ์žญ์…˜์€ ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
์Šคํ”„๋ง์—์„œ AOP๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ JDK์˜ ๊ธฐ๋ณธ ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ํ”„๋ก์‹œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Service์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ ๊ณต์œ 
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ ๊ณต์œ 
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ 
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ