๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์„œ๋น„์Šค(Service) ํด๋ž˜์Šค์˜ ์—ญํ• 

by _silver 2024. 11. 27.

์„œ๋น„์Šค(Service) ํด๋ž˜์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ์ปจํŠธ๋กค๋Ÿฌ(Controller)์™€

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ณ„์ธต(Entity์™€ Repository) ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.


๐Ÿšš ์„œ๋น„์Šค์˜ ์—ญํ• 

1. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ

- ์„œ๋น„์Šค ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ๋กœ์ง์„ ์‹คํ–‰ํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ธฐ๋ณด๋‹ค๋Š” Repository๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•œ๋‹ค.

 

 

2. ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ

- *์„œ๋น„์Šค ๊ณ„์ธต์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.

- Spring์—์„œ @Transactional์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๋”๋ณด๊ธฐ

โญ๏ธ ์„œ๋น„์Šค ๊ณ„์ธต์˜ ์—ญํ•  ์˜ˆ์‹œ [→ Service๋Š” ์„œ๋น„์Šค ๊ณ„์ธต์˜ ์ธํ„ฐํŽ˜์ด์Šค]

- ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ •์˜: ์ด ๊ณ„์ธต์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๋‚˜ ํ™”๋ฉด ํ‘œ์‹œ์™€ ์ง์ ‘ ๊ด€๋ จ์ด ์—†๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•œ๋‹ค.

- ํด๋ž˜์Šค ๊ตฌํ˜„์„ ์œ„ํ•œ ์ฒญ์‚ฌ์ง„ ์ œ๊ณต: ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์„œ๋น„์Šค์˜ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)์„ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค(ServiceImpl)๋Š” ๊ตฌ์ฒด์ ์ธ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.

- ๊ธฐ๋Šฅ์˜ ๋ช…ํ™•์„ฑ ๋ณด์žฅ: ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌํ˜„ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. ์ปจํŠธ๋กค๋Ÿฌ์™€ Repository ๊ฐ„์˜ ๋ถ„๋ฆฌ

- ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ• ๋งŒํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์ด๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์„œ๋น„์Šค์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

- ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ๊ณ„์ธต์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.