-
[WIL] (230625_ 4์ฃผ์ฐจ) ํ์ดํ๋ก๊ทธ๋๋ฐ ์๊ณ ๋ฆฌ์ฆ, Spring์ ๋ฌธ HTTP, MVC ํจํด์ด๋?WIL 2023. 6. 25. 21:37728x90
๐น ๋ฐฐ์ด ๋ด์ฉ ์ ๋ฆฌ
์ด๋ฒ์ฃผ์๋ ํ์ดํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํจ๊ป ํ๋ฉด์ ํ ๋ฌธ์ ์ ๋ํด ๋ค์ํ ์ ๊ทผ๋ฐฉ๋ฒ์ ์ ์ ์์๋ค.
๋ํ Spring ๊ณต๋ถ์ ์ฒซ์ฃผ์ฐจ๋ก HTTP์ MVC ํจํด์ ๋ํด ๊ณต๋ถํ๋ค.
๋ด๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ์๋ฉด ์๋์ ๊ฐ๋ค.
1. HTTP
: ์น ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ๋ก ํด๋ผ์ด์ธํธ๋ ์์ฒญ(Request)๋ฉ์ธ์ง๋ฅผ ์์ฑํ์ฌ ์๋ฒ์ ๋ณด๋ด๊ณ , ์๋ฒ๋ ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํ์ฌ ์๋ต(Response)๋ฉ์ธ์ง๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ๋ค.
์ด๋ ๋ค์ํ ๋ฉ์๋(GET, POST, PUT, DELETE ๋ฑ)์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์์ฒญ๋ชฉ์ ์ ์ ๋ฌํ๋ค.
F12(์๋์ฐ ๊ธฐ์ค)์ผ๋ก Headersํญ์ ์ดํด๋ณด๋ฉด ์์ธํ ๋ด์ฉ์ ํ์ธํ ์ ์๋ค.
[์ํ์ฝ๋]
1xx (Informational)
: 1xx ์ํ ์ฝ๋๋ ์์ฒญ์ด ์์ ๋์์ผ๋ฉฐ ์ฒ๋ฆฌ๊ฐ ๊ณ์๋๊ณ ์์์ ๋ํ๋ ๋๋ค.
์ฃผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์์ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
2xx (Successful)
: 2xx ์ํ ์ฝ๋๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ ๋์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋ฐ์ดํฐ๊ฐ ์๋ฒ์ ์ ๊ณต๋จ์ ์๋ฏธํฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ํ ์ฝ๋๋ 200์ ๋๋ค.
3xx (Redirection)
3xx ์ํ ์ฝ๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์ถ๊ฐ์ ์ธ ์กฐ์น๋ฅผ ์ทจํด์ผ ํจ์ ๋ํ๋ ๋๋ค.
์ด ์ํ ์ฝ๋๋ ์ฃผ๋ก ํ์ด์ง ์ด๋, ๋ฆฌ๋ค์ด๋ ์ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
4xx (Client Error)
4xx ์ํ ์ฝ๋๋ ํด๋ผ์ด์ธํธ์ ์ค๋ฅ๊ฐ ์์์ ๋ํ๋ ๋๋ค.
์ด ์ํ ์ฝ๋๋ ์ฃผ๋ก ํด๋ผ์ด์ธํธ์ ์๋ชป๋ ์์ฒญ, ์ธ์ฆ ์ค๋ฅ ๋ฑ์ ์ฌ์ฉ๋๋ฉฐ, ์์ฒญํ ํ์ด์ง๋ ๋ฆฌ์์ค๋ฅผ ์๋ฒ์์ ์ฐพ์ ์ ์์์ ์๋ฏธํฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ํ ์ฝ๋๋ 404์ ๋๋ค.
5xx (Server Error)
5xx ์ํ ์ฝ๋๋ ์๋ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ ๋ํ๋ ๋๋ค. ์ด ์ํ ์ฝ๋๋ ์ฃผ๋ก ์๋ฒ์ ์ค๋ฅ, ์๋ฒ ๊ณผ๋ถํ ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ํ ์ฝ๋๋ 500์ ๋๋ค.์ด์ Postman์ ์ค์นํ๋ ค๊ณ ์ฌ์ดํธ์ ์ ์ํ๋ค๊ฐ 500์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ ๊ธํ๊ฑด ์๋๋ผ ์ค๋ ๋ค์ ์ ์ํด์ ์ค์นํ๋ ์ด๋ฒ์ ์ ์์ ์ผ๋ก ์งํ๋์๋ค. ์์ ์ฝ๋ ์ค๋ช ์ฒ๋ผ ์๋ฒ์ ์ค๋ฅ๋ก ๋ฐ์ํ ๋ฌธ์ ์๋ค๋๊ฒ์ ์ด์ ๋ ์ ์ ์๋ค.
2. MVC ํจํด
MVC๋ ์ํํธ์จ์ด์ ๋์์ธ ํจํด ์ค ํ๋๋ก ๊ฐ ์์๋ค์ Model, View, Controller๋ก ๊ตฌ๋ถํ์ฌ ์ญํ ์ ๋ถ๋ฆฌํ ๊ฒ์ด๋ค.
1. Model (๋ชจ๋ธ)
: ๋ชจ๋ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ด๋นํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, ์ธ๋ถ API ๋ฑ๊ณผ ์ํธ์์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์กฐ์ํ๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์งํ๋ฉฐ, ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฆผ์ผ๋ก์จ ๋ทฐ์ ์ปจํธ๋กค๋ฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ฌํ๋ค.
2. View (๋ทฐ)
: ๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ๋ถ๋ถ์ผ๋ก, ๋ชจ๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ณ ํ์ํ๋ค. ์ฌ์ฉ์์๊ฒ ํ๋ฉด, ๋ฒํผ, ํผ ๋ฑ์ ์๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ฉฐ, ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ ์ปจํธ๋กค๋ฌ์ ์ ๋ฌํฉ๋๋ค. ๋ทฐ๋ ์ฃผ๋ก HTML, CSS, JavaScript ๋ฑ์ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ตฌํ๋ฉ๋๋ค.
3. Controller (์ปจํธ๋กค๋ฌ)
: ์ปจํธ๋กค๋ฌ๋ Model๊ณผ View ์ฌ์ด์ ์ํธ์์ฉ์ ์กฐ์ ํ๊ณ ์ ์ดํ๋ค. ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ์ ํด๋น ์์ฒญ์ ๋ํ ์ ์ ํ ์ก์ ์ ์ํํ๊ณ , ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฑ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ , ๋ฐ์ดํฐ์ ํ๋ฆ๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ํ๋ฆ์ ์กฐ์ ํฉ๋๋ค.MVC ํจํด์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ค์ ๋ถ๋ฆฌํจ์ผ๋ก์จ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ํ ์คํธ๋ ์ ์๋๋ก ๋ถ๋ฆฌ๋์ด์ ์ ์ง๋ณด์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ ์ฅ์ ์ด ์๋ค. ๊ฐ๋ฐ์๋ค ๊ฐ์ ํ์ ์ ์ฉ์ดํ๊ฒ ๋ง๋ค์ด์ค๋ค.
๐น TIL์ ํ๊ณ
JAVA ํ์ดํ๋ก๊ทธ๋๋ฐ์ ํตํด ๋ถ์กฑํ๋ HashMap์ put, getOfDefault()ํจ์์ ๋ํด์ ๊ณต๋ถํ ์ ์์๋ค.
MySQL์ ์ค์นํ๋ฉด์ ์ด๋ฏธ ์ญ์ ํ ํ๋ก๊ทธ๋จ์ด ์ฐจ์งํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์๋ค.
๐น ์ด๋ฒ์ฃผ ๋ชฉํ ๋ฌ์ฑ ์ฌ๋ถ
1. <์๋ฐ์ ์ ์>
- ์๋ ์ฑํฐ๋ค ์๊ฐ ๋ฐ ๋ฌธ์ ํ๊ธฐ
06,07: ๊ธฐ๋ณธ๋ฌธ์ ์ ๋ถ ํ์ด๋ณด๊ธฐ
08. ์์ธ์ฒ๋ฆฌ(Exception Handling) ๊ฐ๋ ํ์ธ
09. java.langํจํค์ง์ ์ ์ฉํ ํด๋์ค ๊ฐ๋ ํ์ธ
10.๋ ์ง์ ์๊ฐ & ํ์ํ ๊ฐ๋ ํ์ธ
11. ์ปฌ๋ ์ ํ๋ ์์ํฌ ๊ฐ๋ ํ์ธ: 06 ๋ฌธ์ ํ์ด ์๋ฃ
2.
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ๊ธฐ๋ณธ๋ฌธ์ 8๊ฐ+ ์ฌํ๋ฌธ์ 5๊ฐ ํ์ด๋ณด๊ธฐ: ๊ธฐ๋ณธ๋ฌธ์ ํ์ด์๋ฃ, ์ฌํ๋ฌธ์ 1๊ฐ ํ์ด์๋ฃ
๐น ๋ค์ ์ฃผ ๋ชฉํ ์ธ์ฐ๊ธฐ
1. Spring 2์ฃผ์ฐจ ๊ฐ์ ์๊ฐ ํ ๊ณผ์ Lv2 ํ๊ธฐ
2. ์ธํ๋ฐ Spring ๊ธฐ๋ณธ๊ฐ์ ์๊ฐํ๊ธฐ
3. <์๋ฐ์ ์ ์>
- ์๋ ์ฑํฐ๋ค ์๊ฐ ๋ฐ ๋ฌธ์ ํ๊ธฐ
07: ๊ธฐ๋ณธ๋ฌธ์ ์ ๋ถ ํ์ด๋ณด๊ธฐ
08. ์์ธ์ฒ๋ฆฌ(Exception Handling) ๊ฐ๋ ํ์ธ
09. java.langํจํค์ง์ ์ ์ฉํ ํด๋์ค ๊ฐ๋ ํ์ธ
10.๋ ์ง์ ์๊ฐ & ํ์ํ ๊ฐ๋ ํ์ธ
11. ์ปฌ๋ ์ ํ๋ ์์ํฌ ๊ฐ๋ ํ์ธ728x90'WIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ