๐ Front End Developer ์ Back End ๋์ ๊ธฐ ! ๐
์ด ๊ธ์ PROJECT LION : ํธ์ฝ์น ๊ฐ์ฌ๋์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ์ฐธ๊ณ ํ ๊ธ์ ๋๋ค.
์์ ์ค, ๊ฐ๋ฐ๊ณผ์ ์ ๋ฆฌ ๋ฐ issue๊ฐ ๋์๋ ๋ถ๋ถ๋ค์ ๊ณต์ ๋ฐ ๊ธฐ๋กํ๊ณ ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
โ ์ฌ์ฉ์๊ฐ ๊ตฌ๋งค๋ฅผ ์๋ฃํ์๋ค๋ฉด, ๊ตฌ๋งค๋ฅผ ์๋ฃํ ์ํ์ ๋ชฉ๋ก ๋ฐ ์์ธํ์ด์ง๊ฐ ํ์ํ ๊ฒ์ด๋ค.
์ฐ์ , ์ฃผ๋ฌธ์๋ฃ ์ํ์ ๋ชฉ๋ก๋ถํฐ ํ์ธ์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌ์ฑํด ๋ณด๊ฒ ๋ค.
- ์ฃผ๋ฌธ์๋ฃ controller ์์ฑ
๐ blueprint ์์ฑ = order ์ฃผ์๋ฅผ ๊ฐ์ง blueprint controller ์์ฑ
๐ controllers > order.py ์์ฑ
= blueprint order ์ถ๊ฐ ๋ฐ order ์ฌ์ฉ
๐ app.py > order blueprint ๋ฑ๋ก
= order import ๋ฐ prefix๋ order๋ ์ด์ฉ
- ๊ตฌ๋งค ์๋ฃํ ์ํ ๋ชฉ๋ก API ์์ฑ(controllers > order.py)
= ๊ตฌ๋งค์๋ฃ๋ ๋ฆฌ์คํธ์ด๋ฏ๋ก ๋น์ฐํ ๋ก๊ทธ์ธ ๋ ์ํ์์ ํ์ธ์ด ๊ฐ๋ฅํ๋ฏ๋ก check_login์ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ ์ ๋ฌด ์ฒดํฌ๋ฅผ ๋จผ์ ์งํํ๋ค.๊ทธ ํ, ์ฃผ๋ฌธ๋ชฉ๋ก์ ๊ฐ์ ธ์์ผ ํ๋๋ฐ, find ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์ค๋๋ก ํ๊ฒ ๋ค
- find ํจ์ ์์ฑ(models > order.py)
= db์ orders์ ์๋ ๋ชจ๋ document๋ฅผ ๊ฐ์ ธ์์ orders ๋ณ์์ ์ ์ฅ์์ผ์ฃผ๊ณ orders๋ฅผ return ์์ผ์ค๋ค.
- orders ์ฌ์ฉ
= import ๋ฐ models > order.py์์ return ๋ฐ์์จ orders ์ฌ์ฉํ๋ค.
์ด ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ html์์ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ค.(orders.html ์์ฑ ๋ฐ orders ์ ๋ณด html file์ ๋์ ธ์ค)
orders.html file ์์ฑ(๊ตฌ๋งคํ ์ฃผ๋ฌธ ๋ชฉ๋ก)
= ์ฌ๊ธฐ์ ์ ์ํ ๋ถ๋ถ์ render_template ์์ฑ ํ product๊ฐ ์๋ orders๋ฅผ ๋๊ฒจ์ฃผ์๊ธฐ ๋๋ฌธ์,
{% for order in orders %} = ๋๊ฒจ์ค orders ๊ฐ์ order๋ก ๋ฐ์์ order์ product๋ฅผ ํ๊ณ ํด๋น ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
order > product > ___
= ์ฃผ๋ฌธ๋ชฉ๋ก ํ์ด์ง ๊ฒฐ๊ณผํ๋ฉด
์ฐ์ ์ฃผ๋ฌธํ ์ํ์ ๋ชฉ๋ก ํ์ด์ง๋ ๋์ด๋ฌ๋ค.
๋ค์์ผ๋ก๋ ์ฃผ๋ฌธํ ์ํ์ ์์ธํ์ด์ง๋ฅผ ํ์ธํด๋ณด๊ฒ ๋ค.
- ์์ธ ํ์ด์ง API ์์ฑ
= ์ฃผ๋ฌธ ๋ชฉ๋ก๊ณผ ์ ์ฌํ๋, ์ํ ์์ธ ํ์ด์ง๋ ์ด๋ค order์ธ์ง๊ฐ ํ์ํ๋ฏ๋ก order_id ๊ณ ์ ๊ฐ์ ๊ฐ์ ธ์จ๋ค.์์ธํ์ด์ง๋ ๋์ผํ๊ฒ ๋ก๊ทธ์ธ์ด ํ์ํ์ฌ check_login์ผ๋ก ์ฒดํฌํ์ผ๋ฉฐ, order_id ํ๋๋ง ์ฐพ์ผ๋ฉด ๋๋ฏ๋ก, find_one์ผ๋ก order_id๋ฅผ ์ฃผ์๊ฐ์์ ๋ฐ์์ ๋๊ฒจ์ค ๊ฒ์ด๋ค.
- ๋๊ธด order_id๋ฅผ find_one์ผ๋ก ์ฐพ๊ธฐ(models > order.py)
= ๋์ด์จ order_id ๊ฐ์ _id ์ฃผ์๋ก(db์์ _id๋ฅผ ์ฐพ๋๊ฒ) document๋ฅผ ์ฐพ๋๋ค.
๊ทธ ํ order๋ฅผ return ์ํจ๋ค.๐ ObjectId๋ฅผ ๋ฐ์์จ ์ด์ ๋ db์์ id๊ฐ์ด ObjectID๊ฐ์ผ๋ก ์ค์ ๋์ด ์์ด ๋ง์ถฐ์ฃผ์๋ค.
- order.html file ์์ฑ(์ฃผ๋ฌธ์๋ฃ ์์ธ ํ์ด์ง)
= ์ ์ํ ์ ์ ์ฃผ๋ฌธ๋ชฉ๋ก๊ณผ ๋์ผํ๊ฒ order์ product ์์ ๊ฐ์ ธ์ฌ data๋ค์ด ์๋ค๋ ์ ์ด๋ค.
- ์ฃผ๋ฌธ๋ชฉ๋ก ํ์ด์ง์์ ์์ธํ์ด์ง ์ด๋ ๋งํฌ
= orders์ order_id ๊ณ ์ ๊ฐ์ผ๋ก ๋์ ธ์ค๋ค(์ด๋) -> order controllers ์์ ์์ธ ํ์ด์ง๋ก ์ด๋๋๋ ๋ถ๋ถ์ด ์๋๋๋ค.
- ๋ฐฐ์ก์ง / ์ฃผ๋ฌธ์์ ๋ณด ์ถ๊ฐ
= order ์์ ๊ฐ์ ํด๋น๋๋ data๊ฐ์ ๊ฐ์ ธ์จ๋ค.
์ด๋ ๊ฒ ์ฃผ๋ฌธ์๋ฃ๋ ๋ชฉ๋ก ๋ฐ ์์ธํ์ด์ง๋ฅผ ๊ตฌํํด ๋ณด์๋ค.
์ง์ ์ฌ์ฉ์ ๋ฐ ์ํ์ data๋ฅผ ๋๊ธฐ๊ณ , ๊ทธ ๋๊ฒจ์ง ๊ฐ์ ๋ฐ์์ db์์ ํ์ธ ํ ์ง์ ๋ฟ๋ ค์ง๋ ๊ณผ์ ๊น์ง ๊ตฌํํด ๋ณด๋ front์๋ ๋ ๋ค๋ฅธ ์ฌ๋ฏธ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ๐
๋ค์ ์๊ฐ์๋ ๋๋์ด ๊ฒฐ์ ๋ชจ๋์ ์ฐ๋์์ผ ๋ณด๊ฒ ๋ค!!!!๐