ํจํด, ๋งตํ: project ํด๋์ urls.py, app ํด๋์ urls.py ๋ ๊ฐ ์์ , views.py ๋ฐ์ํ๊ธฐ(์ด๋ค method๊ฐ ์ฐ์ผ์ง ๊ณ ๋ฏผํ๊ธฐ) (ํจ์ ๋ด๋ถ๋ pass๋ก ์ ๊ธฐ) โ urls.py ํ์ผ ์ธ ๊ฐ ์บก์ณ, views.py ํ์ผ ๋ ๊ฐ ์บก์ณ
post์ฑ โ list, write, detail
user์ฑ โ login, logout
ํ๋ก์ ํธ ํ์ผ urls.py
post ํด๋ urls.py
user ํด๋ urls.py
post ํด๋ views.py
user ํด๋ veiws.py
: include()๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ URL ํจํด์ ๊ฐ ์ฑ์ urls.py์ ๋ชจ๋ํํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ํ๊ณ , ํ๋ก์ ํธ์ urls.py์์ ์ด๋ค์ ๊น๋ํ๊ฒ ํฌํจ์ํฌ ์ ์๊ธฐ ๋๋ฌธ. ์ฝ๋์ ๊ฐ๋
์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ๋์์ง
(G์ ์์ด ์๋ ค์ค ใ
)
์๋ค๋ค์ด ์ด๋ค method๋ฅผ ์ฌ์ฉํ๋๊ฐ?
> **1. GET ๋ฐฉ์ ์์**
์ํฉ: ๊ฒ์ ์์ง์์ ๊ฒ์์ด๋ฅผ ์
๋ ฅํด ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ ๊ฒฝ์ฐ
์ด๋ป๊ฒ ๋์ํ๋์?
> ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์์ "๊ณ ์์ด"๋ผ๋ ๊ฒ์์ด๋ฅผ ์
๋ ฅํ๊ณ "๊ฒ์" ๋ฒํผ์ ๋๋ฆ
๋๋ค.
์ด๋ ๋ธ๋ผ์ฐ์ ๋ GET ์์ฒญ์ ์ฌ์ฉํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค.
URL์ด ๋ค์๊ณผ ๊ฐ์ด ๋ณํฉ๋๋ค: https://example.com/search?q=๊ณ ์์ด
์ฌ๊ธฐ์ q=๊ณ ์์ด๋ ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๊ฒ์์ด๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ฒ๋ "๊ณ ์์ด"๋ผ๋ ๊ฒ์์ด์ ํด๋นํ๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ฌ์ฉ์์ ํ๋ฉด์ ๋ณด์ฌ์ค๋๋ค.
> **ํน์ง! **
์ฌ์ฉ์๊ฐ ๊ฒ์ํ ๋ด์ฉ์ด URL์ ๊ทธ๋๋ก ๋ณด์
๋๋ค.
๊ฒ์์ด๋ฅผ ์
๋ ฅํ ํ URL์ ๋ณต์ฌํด์ ์น๊ตฌ์๊ฒ ๋ณด๋ด๋ฉด, ์น๊ตฌ๋ ๊ฐ์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ณดํต GET ์์ฒญ์ ๋จ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋(read) ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ, ์๋ฒ์ ์ํ๋ฅผ ๋ฐ๊พธ์ง ์์ต๋๋ค.
> **2. POST ๋ฐฉ์ ์์**
์ํฉ: ํ์ ๊ฐ์
์ ํ๋ ๊ฒฝ์ฐ
์ด๋ป๊ฒ ๋์ํ๋์?
> ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ํ์ ๊ฐ์
ํ์ด์ง์์ ์ฌ์ฉ์ ์ด๋ฆ, ๋น๋ฐ๋ฒํธ, ์ด๋ฉ์ผ ๋ฑ์ ์
๋ ฅํฉ๋๋ค.
์ฌ์ฉ์๊ฐ "๊ฐ์
" ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ธ๋ผ์ฐ์ ๋ POST ์์ฒญ์ ์ฌ์ฉํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค.
์ด๋ ์ ์ก๋๋ ๋ฐ์ดํฐ๋ URL์ ๋ํ๋์ง ์๊ณ , ์์ฒญ ๋ณธ๋ฌธ(body)์ ๋ด๊ฒจ ์๋ฒ๋ก ์ ์ก๋ฉ๋๋ค.
์๋ฒ๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ์ฉ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ , "ํ์ ๊ฐ์
์ด ์๋ฃ๋์์ต๋๋ค"๋ผ๋ ๋ฉ์์ง๋ฅผ ํ๋ฉด์ ํ์ํฉ๋๋ค.
> **ํน์ง!**
์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๋น๋ฐ๋ฒํธ๋ ๊ฐ์ธ์ ๋ณด๋ URL์ ๋ณด์ด์ง ์์ต๋๋ค.
๋ฐ์ดํฐ๊ฐ ์์ฒญ ๋ณธ๋ฌธ์ ์จ๊ฒจ์ ธ ์ ์ก๋๊ธฐ ๋๋ฌธ์ GET ์์ฒญ๋ณด๋ค ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค.
์๋ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ์ ๊ฐํ๊ฑฐ๋(์๋ก์ด ์ฌ์ฉ์ ์ถ๊ฐ ๋ฑ) ์๋ฒ์ ์ํ๋ฅผ ๋ฐ๊พธ๋ ์์
์ ์ฌ์ฉ๋ฉ๋๋ค.
๋ญ ๊ทธ๋ ๋ค๊ณ ํ๋ค...
๐ post์ฑ โ list, write, detail
๐ user์ฑ โ login, logout