ํ๋ก์ ์๋ฒ๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
ํ๋ก์ ์๋ฒ๋ ๊ต์ฐจ ์ถ์ฒ ๋ฆฌ์์ค๋ก, BE์์ ์ง์ ํ API ์ฃผ์๊ฐ FE์ API ์ฃผ์๊ฐ ํ๋ก์ ์ ์ํด์ ๋ฐ์ดํฐ ์ ์ก์ด ๋งํ๊ฒ ๋๋ฉด CORS๋ฅผ ๋์ง๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ๋ง๊ธฐ ์ํด ํ๋ก์ ์๋ฒ๊ฐ ํ์ํฉ๋๋ค.
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ ์ด ํ๋ฆ ํ๋ก์ฐ์ ๋ํ ์ ์ด ๊ถํ์ด ์ด๋์ ์๋๋์ ์ฐจ์ด์
๋๋ค. ํ๋ ์์ํฌ๋ ์ ํด์ง ๊ธธ์ ๋ฐ๋ผ์ผ ํ๋ฏ๋ก ์๋์ ์ด๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ๋์ ์ผ๋ก ํ ์ ์๋ค๋ ์ ์
๋๋ค.
ํ๋ ์์ํฌ์๋ ์ ์ด์ ์ญ์ (Inversion Of Control)์ด ์ ์ฉ๋์ด ์์ต๋๋ค.
์ดํฐ๋ ์ดํฐ ํจํด์ ์ฅ๋จ์ ์ ๋ฌด์์ธ๊ฐ์?
์ฅ์ ์ ์งํฉ์ฒด ํด๋์ค์ ์์ง๋๋ฅผ ๋์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ์งํฉ์ฒด ๋ด์์ ์ด๋ค ์์ผ๋ก ์ผ์ด ์ฒ๋ฆฌ๋๋์ง ์ ํ์ ์์ด, ์งํฉ์ฒด ์์ ๋ค์ด์๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ๊ทผ ํ ์ ์๊ฒ ํด์ค๋๋ค. ๋ชจ๋ ํญ๋ชฉ์ ์ผ์ผ์ด ์ ๊ทผํ๋ ์์ ์ ์ปฌ๋ ์ ๊ฐ์ฒด๊ฐ ์๋ ์ดํฐ๋ ์ดํฐ ๊ฐ์ฒด์์ ๋งก๊ฒ ๋๋ฏ๋ก ์ด๋ ๊ฒ ํ๋ฉด, ์งํฉ์ฒด์ ์ธํฐํ์ด์ค ๋ฐ ๊ตฌํ์ด ๊ฐ๋จํด์ง ๋ฟ๋ง ์๋๋ผ, ์งํฉ์ฒด์์๋ ๋ฐ๋ณต ์์ ์์ ์์ ๋ผ๊ณ ์๋ ์์ ์ด ํ ์ผ์๋ง ์ ๋ ํ ์ ์์ต๋๋ค.
๋จ์ ์ ๋จ์ํ ์ํ๋ฅผ ๊ตฌํํ๋ ๊ฒฝ์ฐ ํด๋์ค๋ง ๋ง์์ ธ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค.
์ถ์ํ๋ ๋ฌด์์ธ๊ฐ์?
๋์์์ ํน์ง์ ๋ฝ์๋ธ ๊ฒ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์์๋ interface ์์ ํจ์๋ฅผ ์ฐ๋๊ฒ ์ถ์ํ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฝ๋๋ฅผ ์ผ์ ๋ ์ด๋ค ๋ด์ฉ์ ์ํํ๋์ง๊ฐ ํ๋์ ํ์ ๋์ง์์๋ ์ถ์์ ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค.
MVC ํจํด์ ํน์ง๊ณผ ๊ฐ ๋ถ๋ถ์ ์ญํ ์ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํด์ฃผ์ธ์.
MVC ํจํด์ ์ฑ์ ๊ตฌ์ฑ ์์๋ฅผ ์ธ๊ฐ์ง ์ญํ ์ธ ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ๋ก ๊ตฌ๋ถํ ๋์์ธ ํจํด์ ๋๋ค. ์ฌ์ฌ์ฉ์ฑ๊ณผ ํ์ฅ์ฑ์ด ์ฉ์ดํ๋ค๋ ์ฅ์ ์ด ์๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํด์ง์๋ก ๋ชจ๋ธ๊ณผ ๋ทฐ์ ๊ด๊ณ ๋ํ ๋ณต์กํด์ง๋ ๋จ์ ์ด ์์ต๋๋ค. ๋ชจ๋ธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ญํ , ๋ทฐ๋ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ์ด์ง๋ฅผ, ์ปจํธ๋กค๋ฌ๋ ์ด๋ฅผ ์ ์ดํ๋ ์ญํ ์ ํฉ๋๋ค.
MVC ํจํด์ ์ฐ๋ ์ด์ ์ ๋ํด ๋ง์ํด์ฃผ์ธ์.
ํจ์จ์ ์ธ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์๋ฅผ ์ํด์์ ๋๋ค. ๋ชจ๋ธ, ๋ทฐ, ์ปจํธ๋กค๋ฌ๋ก ๊ฐ๊ฐ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ฐํ๋ฉด ์ค๋ณต ๊ฐ๋ฐ๋๋ ๋ถ๋ถ์ ๋ฐฉ์งํ ์ ์์ด ๊ฐ๋ฐ์ ํจ์จ์ฑ์ด ์ฆ๋๋ ๋ฟ๋ง ์๋๋ผ, ์ถํ ํ๋ก๊ทธ๋จ์ ์ ์ฐํ ํ์ฅ์ฑ์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ ํ ๋ถ๋ถ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋, ๋ค๋ฅธ ๋ถ๋ถ์ ์ต์ํ์ ์ํฅ์ ์ฃผ๋ฉฐ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋์์ธ ํจํด์ ๋ฐ๋ฅผ๋์ ์ฅ์ ์ ๋ฌด์์ธ๊ฐ์?
๊ฐ์ฅ ๋ฐ๊นฅ์ชฝ ๊ณ์ธต์ธ framework ๊ณ์ธต์ ์์ ํด๋ ์์ชฝ ๋น์ฆ๋์ค ๋ก์ง์ด ์ด ์์ ์ฌํญ์ ์ํด ์ํฅ๋ฐ์ง ์์ต๋๋ค. ์ฆ, ๋ ๋ฆฝ์ ์ผ๋ก ๋ทฐ๊ณ์ธต์ ์์ ํ๊ฑฐ๋ Data source๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋ด๋ถ์ ์์นํ ๋ชจ๋ธ ์ปดํฌ๋ํธ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค๋ก๋ถํฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ฐ์ ๋ด๋ถ์ ์ธ ์ฌํญ์ ์จ๊ธธ ์ ์๊ณ , ์ด๋ interface๋ฅผ ์ ์ธํด์ค๋ค๋ฉด ๋ก์ง ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋๋ค. ๋ํ, ํด๋น ์ปดํฌ๋ํธ์ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ๋ถ๋ฆฌ์์ผ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ก ์ฎ๊ฒจ๊ฐ๋ ๊ฒ ๋ํ ์์ํด์ง๋๋ค.
ํฉํ ๋ฆฌ ํจํด์ ๊ฐ๋ตํ ์ค๋ช ๊ณผ ์ข ๋ฅ, ๊ทธ ์ฐจ์ด๋ฅผ ๋ง์ํด์ฃผ์ธ์.
ํฉํ ๋ฆฌ ํจํด์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋์์ ๊ฐ์ฒด ์์ฑ ๋ถ๋ถ์ ๋ผ์ด๋ด ์ถ์ํํ ํจํด์ ๋๋ค. ๊ทธ ์ข ๋ฅ๋ก ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด๊ณผ ์ถ์ ํฉํ ๋ฆฌ ํจํด์ด ์๋๋ฐ, ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ํ ์ข ๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋์ง๋ง, ์ถ์ ํฉํ ๋ฆฌ ํจํด์ ์ฐ๊ด๋๊ฑฐ๋ ์์กด์ ์ธ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ง ์ฌ๋ฌ ์ข ๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
'๐ช CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ERD์ ์ ๊ทํ ๊ณผ์ (0) | 2023.02.23 |
---|---|
๋ฐ์ดํฐ๋ฒ ์ด์ค (DB, DataBase) (0) | 2023.02.23 |
์๊ฐ ๋ณต์ก๋ Big-O (0) | 2023.02.23 |
ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฐจ์ด (1) | 2023.01.04 |
1. Design Pattern ๋์์ธ ํจํด (์ฑ๊ธํค, ์ต์ ๋ฒ, MVC, MVVM ๋ฑ) (0) | 2023.01.04 |