Controller vs Service

Controller๋Š” ์›น MVC์—์„œ ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ํ•œ๋‹ค.

Controller๋Š” Model๊ณผ View ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ์–ดํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•œ URL์— ๋”ฐ๋ผ ์š”์ฒญ์„ ํŒŒ์•…ํ•˜๊ณ  URL์— ์ ์ ˆํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ Service์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ด ํ›„ ๊ฒฐ๊ณผ๋ฅผ Model์— ์ €์žฅํ•˜์—ฌ View์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. -> Model๊ณผ View์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜๋Š” ์š”์†Œ์ด๋‹ค.

  1. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ Controller๊ฐ€ ๋ฐ›๋Š”๋‹ค.

  2. Controller๋Š” Service์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ Model์— ๋‹ด๋Š”๋‹ค.

  3. Model์— ์ €์žฅ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹œ๊ฐ์  ์š”์†Œ ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” View๋ฅผ ์ œ์–ดํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค.

์ด๋ฅผ Web์— ์ ์šฉํ•˜์—ฌ ์ƒ๊ฐํ•ด๋ณด์ž.

  1. User๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•œ๋‹ค.

  2. Controller๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด Model์„ ํ˜ธ์ถœํ•œ๋‹ค.

  3. Model์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ†ตํ•ด DB ๋ฐ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ดํ›„ Controller๋Š” Model์—๊ฒŒ ๋ฐ˜ํ™˜๋ฐ›์€ ๊ฒฐ๊ณผ๋ฅผ View์— ๋ฐ˜์˜ํ•œ๋‹ค.

  4. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜จ View๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์›น ํŽ˜์ด์ง€๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด Controller์™€ Service์˜ ๋กœ์ง ๊ตฌ๋ถ„์€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

๊ทน๋‹จ์ ์ด์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ์ข‹๋‹ค.

Controller ๊ฐ™์€ ์›น ๊ณ„์ธต์ด ์—†์–ด๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

Controller๋Š” ์›น ๊ณ„์ธต์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์›น ๊ณ„์ธต์ด ์—†์ด ๋‹จ์ˆœํžˆ ๋ฉ”์ธ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ฝ˜์†”์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ถ”๊ฐ€๋กœ ๊ฐœ๋ฐœํ•ด์•ผ ํ•ด๋„ ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

๋ฐ˜๋Œ€๋กœ ๋งํ•˜๋ฉด ์›น ๊ณ„์ธต์„ ์œ„ํ•œ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ™”๋ฉด์— ๋ฟŒ๋ฆด ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ๋„˜๊ฒจ์ฃผ๊ณ  ์ด๋Ÿฐ ์›น ๊ณ„์ธต ๊ด€๋ จ ์ผ๋“ค์€ ๋ชจ๋‘ Controller์—์„œ ๋‹ด๋‹นํ•ด์•ผ ํ•œ๋‹ค.

Last updated