๐Ÿ’ป Develop

[Develop] Controller/Manager/Service ์ฐจ์ด

JINiOS 2023. 12. 18. 02:29
728x90

์•„์นด๋ฐ๋ฏธ์—์„œ ํ”„๋กœ์ ํŠธํ•˜๋˜ ์ค‘ ํŒŒ์ผ ๋„ค์ด๋ฐ์— ๊ด€ํ•ด ๋…ผ์˜ํ–ˆ๋˜ ์ ์ด ์žˆ์—ˆ๋‹ค.

 

๊ทธ๋•Œ๋Š” ์šฐ๋ฆฌ(iOS๊ฐœ๋ฐœ์ž)๋ผ๋ฆฌ ์„œ๋กœ ํ•ฉ์˜๋งŒ ํ•˜๋ฉด ๋œ๋‹ค๊ณ  ๋ง์ด ๋‚˜์™”์–ด์„œ, ๋ณ„๋‹ค๋ฅธ ๋ง์„ ๊บผ๋‚ด์ง€ ์•Š๊ณ  ์ง€๋‚˜๊ฐ”๋‹ค.

์ถ”ํ›„์— ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์–ด๋–ค ๋„ค์ด๋ฐ์ด ๋” ๋ณดํŽธ์ ์ผ์ง€ ๊ฒ€์ƒ‰ํ–ˆ๊ณ , ๋ธ”๋กœ๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋๋‹ค.

์ด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

 

 

์•Œ์•„๋ณด์ž !


 

  1. ์„œ๋น„์Šค(Service)
    • ๊ฐœ๋…: ์„œ๋น„์Šค ๋ ˆ์ด์–ด ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋Šฅ: ํŠน์ • ํ”Œ๋žซํผ์ด๋‚˜ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ง€์‹์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ , ์ผ๊ด€๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋“ค์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์—์„œ ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ์—ญํ• : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํŠน์ • ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ๊ฐ€์ง€ ๋„๋ฉ”์ธ์— ํŠนํ™”๋œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ, ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ฆฌ ๋“ฑ๊ณผ ๊ฐ™์ด ํŠน์ • ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋งค๋‹ˆ์ €(Manager)
    • ๊ฐœ๋…: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋Šฅ: ์ฃผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์œจํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ๊ด€๋ฆฌ, ์„ธ์…˜ ๊ด€๋ฆฌ ๋“ฑ๊ณผ ๊ฐ™์ด ์ค‘์š”ํ•œ ๋ถ€๋ถ„๋“ค์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 
    • ์—ญํ• 
      • ์ „์—ญ์  ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ: ์ „์—ญ์ ์ธ ๋ฐ์ดํ„ฐ๋‚˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ๊ณต์œ ๋  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ์บ์‹ฑ, ๋กœ๊น…๊ณผ ๊ฐ™์€ ์ „์—ญ์ ์ธ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
      • ์ค‘์žฌ์ž ์—ญํ• : ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ค‘์žฌํ•˜๊ณ  ์กฐ์œจํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์—์„œ ํ•„์š”ํ•œ ์ค‘๋ณต๋œ ๋กœ์ง์ด๋‚˜ ์ƒํƒœ๋ฅผ ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
      • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์ ์ธ ๋กœ์ง ์ฒ˜๋ฆฌ: ์ „์—ญ์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ณด์•ˆ ๊ด€๋ฆฌ, ์ด๋ฒคํŠธ ๋กœ๊น…, ์„ธ์…˜ ๊ด€๋ฆฌ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™” ๋“ฑ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  3. Controller(์ปจํŠธ๋กค๋Ÿฌ)
    • ๊ฐœ๋…: Model-View-Controller(MVC) ๋””์ž์ธ ํŒจํ„ด์— ๊ธฐ๋ฐ˜ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋กœ, ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‚ฌ์ด์˜ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋Šฅ: ์‚ฌ์šฉ์ž์˜ ์•ก์…˜์— ๋ฐ˜์‘ํ•˜์—ฌ ๋ชจ๋ธ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ UI์— ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํŠน์ • ํ”Œ๋žซํผ์— ๋งž๊ฒŒ HTTP ํ†ต์‹  ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , HTML๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ UI๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

 


 

 

์„œ๋น„์Šค์˜ ์˜ˆ์‹œ๋ฅผ ๋”์šฑ ์•Œ์•„๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค!

  1. UserService(์‚ฌ์šฉ์ž ์„œ๋น„์Šค):
    ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ๊ด€๋ฆฌ, ๊ถŒํ•œ ๋ถ€์—ฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  2. ProductService(์ œํ’ˆ ์„œ๋น„์Šค):
    ์ œํ’ˆ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋กœ, ์ œํ’ˆ ๋ชฉ๋ก ์กฐํšŒ, ์ œํ’ˆ ์ƒ์„ธ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ, ์ œํ’ˆ ์ฃผ๋ฌธ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  3. PaymentService(๊ฒฐ์ œ ์„œ๋น„์Šค):
    ๊ฒฐ์ œ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๊ฒฐ์ œ ์ˆ˜๋‹จ ์ถ”๊ฐ€, ๊ฒฐ์ œ ์ง„ํ–‰, ๊ฒฐ์ œ ๋‚ด์—ญ ์กฐํšŒ ๋“ฑ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
  4. EmailService(์ด๋ฉ”์ผ ์„œ๋น„์Šค):
    ์ด๋ฉ”์ผ ๋ฐœ์†ก๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋กœ, ์ด๋ฉ”์ผ ์ „์†ก, ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ ์ด๋ฉ”์ผ ์ƒ์„ฑ, ์ด๋ฉ”์ผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

๋งค๋‹ˆ์ €๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋‚˜ ์„œ๋น„์Šค์™€ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์—ญ์ ์ธ ๋ฆฌ์†Œ์Šค๋‚˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ค‘์žฌ์ž ์—ญํ• ์„ ํ•˜๋Š” ๋ฐ์— ์ดˆ์ ์ด ๋งž์ถฐ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๋กœ๊น…, ๋ณด์•ˆ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ • ๋กœ๋“œ ๋“ฑ๊ณผ ๊ฐ™์€ ์ „์—ญ์ ์ธ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋งค๋‹ˆ์ €๋Š” ํŠน์ • ๋„๋ฉ”์ธ์ด๋‚˜ ๊ธฐ๋Šฅ์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์˜ ๊ด€๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜์—ฌ ์ „๋ฐ˜์ ์ธ ๋ชจ๋“ˆํ™”์™€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

 

 


 

์•Œ๊ฒŒ๋œ ์ ์„ ํ† ๋Œ€๋กœ ํŒ€์›์—๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ์ ์šฉ์‹œํ‚ค๋Š” ์‹œ๊ฐ„์„ ๊ผญ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค!

728x90