Controller vs Service
Last updated
Last updated
Controller๋ ์น MVC์์ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ค.
Controller๋ Model๊ณผ View ์ฌ์ด์์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ์ดํ๋ค. ์ฌ์ฉ์๊ฐ ์ ๊ทผํ URL์ ๋ฐ๋ผ ์์ฒญ์ ํ์ ํ๊ณ URL์ ์ ์ ํ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ Service์์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ค. ์ด ํ ๊ฒฐ๊ณผ๋ฅผ Model์ ์ ์ฅํ์ฌ View์๊ฒ ์ ๋ฌํ๋ ์ญํ ์ ์ํํ๋ค. -> Model๊ณผ View์ ์ญํ ์ ๋ถ๋ฆฌํ๋ ์์์ด๋ค.
์ฌ์ฉ์์ ์์ฒญ์ Controller๊ฐ ๋ฐ๋๋ค.
Controller๋ Service์์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ ํ ๊ฒฐ๊ณผ๋ฅผ Model์ ๋ด๋๋ค.
Model์ ์ ์ฅ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์๊ฐ์ ์์ ์ถ๋ ฅ์ ๋ด๋นํ๋ View๋ฅผ ์ ์ดํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ค.
์ด๋ฅผ Web์ ์ ์ฉํ์ฌ ์๊ฐํด๋ณด์.
User๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ๋ค.
Controller๋ ์ฌ์ฉ์๊ฐ ์์ฒญํ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด Model์ ํธ์ถํ๋ค.
Model์ ๋น์ฆ๋์ค ๋ก์ง์ ํตํด DB ๋ฐ ํ์ผ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค. ์ดํ Controller๋ Model์๊ฒ ๋ฐํ๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ View์ ๋ฐ์ํ๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ View๊ฐ ์ฌ์ฉ์์๊ฒ ์น ํ์ด์ง๋ฅผ ์ถ๋ ฅํ์ฌ ๋ณด์ฌ์ค๋ค.
๊ทธ๋ ๋ค๋ฉด Controller์ Service์ ๋ก์ง ๊ตฌ๋ถ์ ์ด๋ป๊ฒ ํด์ผํ ๊น?
๊ทน๋จ์ ์ด์ง๋ง ์ด๋ ๊ฒ ์๊ฐํ๋ฉด ์ข๋ค.
Controller ๊ฐ์ ์น ๊ณ์ธต์ด ์์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋์ํด์ผ ํ๋ค.
Controller๋ ์น ๊ณ์ธต์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฝ๋๋ง ์กด์ฌํ๋ ๊ฒ์ด ์ข๋ค. ์๋ฅผ ๋ค์ด์ ์น ๊ณ์ธต์ด ์์ด ๋จ์ํ ๋ฉ์ธ ๋ฉ์๋๋ฅผ ํตํด์ ์ฝ์์์๋ง ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ๋ก ๊ฐ๋ฐํด์ผ ํด๋ ๋๋ถ๋ถ์ ์๋น์ค ๋ก์ง์ ์ฌ์ฌ์ฉํ ์ ์์ด์ผํ๋ค.
๋ฐ๋๋ก ๋งํ๋ฉด ์น ๊ณ์ธต์ ์ํ ํผ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ , ํ๋ฉด์ ๋ฟ๋ฆด ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ๋๊ฒจ์ฃผ๊ณ ์ด๋ฐ ์น ๊ณ์ธต ๊ด๋ จ ์ผ๋ค์ ๋ชจ๋ Controller์์ ๋ด๋นํด์ผ ํ๋ค.