๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Spring

[Spring MVC ํ”„๋กœ์ ํŠธ ๋ฆฌํŒฉํ† ๋ง] 4. @Service, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„๋ฆฌ

by LasBe 2022. 5. 19.
๋ฐ˜์‘ํ˜•

๐Ÿ“„ ๊ด€๋ จ ๊ธ€


 

 

 

โšก๏ธ๋ฆฌํŒฉํ† ๋ง Before -> After


๐Ÿ“Œ Before

์ด GOING ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ์กด model2 ํ”„๋กœ์ ํŠธ๋ฅผ Spring ํ”„๋กœ์ ํŠธ๋กœ ๋ฐ”๊พผ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

 

์Šคํ”„๋ง ํ˜•ํƒœ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ–ˆ์ง€๋งŒ @Controller, @Service, @Repository ๋ณ„ ์ฝ”๋“œ์˜ ๋ถ„๋ฆฌ๊ฐ€ ์ „ํ˜€ ์ด๋ฃจ์–ด์ ธ์žˆ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

 

Service ํŒŒ์ผ์€ ๋ณ„๋„๋กœ ์—†์—ˆ์œผ๋ฉฐ Controller์™€ Dao ํŒŒ์ผ๋งŒ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“Œ After

์šฐ์„  ์„œ๋น„์Šค ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค์–ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ปจํŠธ๋กค๋Ÿฌ๋ถ€ํ„ฐ ๋ชจ๋‘ ๋ถ„๋ฆฌํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ ํ›„ ์—ญํ• ์— ๋งž๊ฒŒ ์ฝ”๋“œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

โšก๏ธ๋ฆฌํŒฉํ† ๋ง ์ด์œ 


๐Ÿ“Œ  ์–ด๋…ธํ…Œ์ด์…˜ ๋ณ„ ์—ญํ• 

์Šคํ”„๋ง์—์„œ ๋นˆ ๋“ฑ๋ก์„ ์œ„ํ•ด ์ฃผ๋กœ ์„ ์–ธํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์€ @Controller, @Service, @Repository 3๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Controller๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ,

Repository๋Š” Dao ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•˜๋Š” ์—ญํ• ,

๊ทธ๋ฆฌ๊ณ  Service๋Š” ๊ทธ์ € "๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง"๊ณผ ๊ด€๋ จ๋œ ์—ญํ• ๋กœ ์–ด๋ ดํ’‹์ด ์ดํ•ดํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ฒ˜์Œ์—๋Š” Service์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ ๋˜์–ด ๊ตณ์ด ์ค‘๊ฐ„์— ๋‹ค๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋” ๋†“์„ ํ•„์š”๊ฐ€ ์žˆ๋‚˜ ์ƒ๊ฐํ•˜๋ฉฐ

์ธ๊ฐ•๋„ ๋ณด๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ๊ฒ€์ƒ‰๋„ ํ•ด๋ณด๋ฉฐ ๊นจ๋‹ฌ์Œ์„ ์–ป๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ๋‚ด๋ฆฐ ๊ฒฐ๋ก ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

1. Controller์—๋Š” ์š”์ฒญ๊ณผ ์‘๋‹ต์— ๋Œ€ํ•œ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์€ Service๋ฅผ ํ†ตํ•ด ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. Service์—์„œ๋Š” ํ•˜๋‚˜ ํ˜น์€ ์—ฌ๋Ÿฌ Dao๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋กœ์ง์„ ํ†ตํ•œ ๊ฒฐ๊ณผ๋ฅผ Controller์—๊ฒŒ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค.

3. Repository์—์„œ๋Š” ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ •๋ฆฌํ•˜๊ณ , DB ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ Service๋กœ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  Service์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ Dao๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋‹ค ๋ณด๋‹ˆ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๊ฐ€ ๋˜์—ˆ๊ณ ,

์ด๋Š” ๊ณง ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋˜์–ด ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ด ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ๋กค๋ฐฑ ๋“ฑ ํ›„์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ ์—ญํ• ๋ณ„ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋‹ˆ ์—ฌ๋Ÿฌ ์ฑ…์ž„์„ ๊ฐ–๊ณ  ์žˆ๋˜ ๋ชจ๋“ˆ์ด ๋‹จ์ผ ์ฑ…์ž„์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๊ณ , ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋•๋ถ„์— ๊ฐ ๋ชจ๋“ˆ ๋ณ„ JUnit์„ ์ด์šฉํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ˆ˜์›”ํ•ด์กŒ๊ณ ,

Service์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜์„ ๋„์ž…ํ•ด ์‹œ์Šคํ…œ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ๊ฑฐ์˜ ์™„์„ฑ๋œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๋’ค์—Ž๋Š” ๊ณ ์ƒ์„ ํ•˜๋ฉฐ ๋Š๋‚€ ์ ์€

"์ฒ˜์Œ๋ถ€ํ„ฐ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์„œ ์Šค๋…ธ์šฐ๋ณผ ๊ตด๋ฆฌ์ง€ ๋ง์ž"๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๊ฐ€์žฅ ํž˜๋“ค์—ˆ๋˜ ๋ถ€๋ถ„์ด์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋•๋ถ„์— ์Šคํ”„๋ง ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์‹ฌ๋„ ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋œ ๊ฑฐ ๊ฐ™์•„ ๊ทธ๋‚˜๋งˆ ๋‹คํ–‰์ž…๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


์˜คํ”ˆ ์ฑ„ํŒ