Spring

[Spring] Service, ServiceImpl ๊ตฌ์กฐ

DAHLIA CHOI 2023. 6. 30. 14:04

 

Service์™€ ServiceImpl์„ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†๋Š”๋ฐ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ๋งŽ์ด ๋ด์„œ ํ•œ ๋ฒˆ ์กฐ์‚ฌํ•ด ๋ดค๋‹คโœ๏ธ

 

์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์ฒด๋ฅผ ๋”ฐ๋กœ ๋‘๋Š” ๊ฑด OCP(๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™) ๋•Œ๋ฌธ์ด๋‹ค.

 

๐Ÿ”ธ OCP๋ž€?

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ์ฑ„๋Š” ํ™•์žฅ์— ๋Œ€ํ•ด ์—ด๋ ค์žˆ์–ด์•ผ ํ•˜๊ณ , ์ˆ˜์ •์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ซํ˜€์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›์น™์ด๋‹ค.

์ด ์›์น™์ด ์ž˜ ์ ์šฉ๋˜๋ฉด, ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒจํ•ด์•ผ ํ•  ๋•Œ ์ด๋ฏธ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ์กด์˜ ์ฝ”๋“œ์— ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๋‚˜ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

๐Ÿ”ธ Service์™€ ServiceImpl

sevice๋ฅผ ๋จผ์ € ์ •์˜ํ•˜๊ณ , serviceimpl์ด service ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„์„œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

Controller์—์„œ๋Š” service๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค!!

 

ํ”„๋กœ์ ํŠธ์—์„œ๋„ ์ ์šฉ์„ ํ•ด๋ดค์—ˆ๋Š”๋ฐ ๊ฒฐ๊ตญ 1:1 ๊ด€๊ณ„์—์„œ๋Š” ์ƒ๊ด€์ด ์—†๋Š” ๊ฑฐ ์•„๋‹Œ๊ฐ€๋ผ๊ณ  ์ƒ๊ฐ์„ ํ•ด๋ดค๋‹ค.

๊ทผ๋ฐ ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ๊นŒ ๊ทœ๋ชจ๊ฐ€ ์ข€ ํฐ ๊ธฐ์—…์—์„œ๋Š” 1:N๊ด€๊ณ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค!!

 

ํ•˜๋‚˜์˜ service ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๊ฐ€๊ฒฉ ์กฐ์ •์ด ์˜ค๊ฑฐ๋‚˜ ์ผ์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด? ๊ตฌํ˜„์ฒด๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์–ด์„œ ๋‹ค์‹œ ๋งŒ๋“  ๊ตฌํ˜„์ฒด์— @Service ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค! 

 

 

์ฆ‰, ๊ตฌํ˜„์ฒด์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋”ฐ๋กœ ๋‘๋Š” ๊ฑด ์œ ์—ฐํ•˜๊ณ  ๋ณ€๊ฒฝ์— ์šฉ์ดํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•  ๋•Œ๋Š” ๊ตณ์ด ํ•„์š” ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค!! 

 

โœ๏ธ ์ธํ”„๋Ÿฐ์— ๊น€์˜ํ•œ๋‹˜ ๋‹ต๋ณ€์„ ๊ฐ€์ ธ์™€๋ดค๋‹ค!

์ด์ƒ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ์„ค๊ณ„์— ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ, ์‹ค๋ฌด์ ์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„์ž…ํ•˜๋ฉด ์ถ”์ƒํ™”๋ผ๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

โš™๏ธ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๋ฉด, ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ณ  ํ–ฅํ›„ ๊ผญ ํ•„์š”ํ•  ๋•Œ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค!!

 

-> ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ๊ต์ฒดํ•  ์ผ์ด ์—†๋‹ค๋ฉด ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์žโœจ

 

 

 

๐Ÿ”ธ๋„ค์ด๋ฐ ์ปจ๋ฒค์…˜

๋ณดํ†ต ๊ตฌํ˜„์ฒด์—๋Š” Impl์„ ๋ถ™์ด๋Š”๋ฐ ์ด ์ปจ๋ฒค์…˜์€ ์ •์‹ ์ปจ๋ฒค์…˜์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค.

๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์ด List๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ArrayList, Linked List์—์„œ๋Š” Impl์ด๋ผ๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์•ˆ ๋ถ™์ธ๋‹ค!

์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด๋ด์•ผ ํ• ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ํ•œ ๋ฒˆ ๊ณ ๋ฏผํ•ด ๋ด์•ผ๊ฒ ๋‹ค!!

๊ทผ๋ฐ impl์ด ์ข€ ์ง๊ด€์ ์ด๊ณ  ๋ณด๊ธฐ ํŽธํ•ด์„œ ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๊ธด ํ•˜๋‹ค..๐Ÿ˜€