๋ด์ผ๋ฐฐ์์บ ํ 4๊ธฐ ์คํ๋ฅดํ์ฝ๋ฉ React B๋ฐ
๐ ์ค๋์ ๊ณต๋ถ
1. ๋๋ชฉ๋ ์น๊ฐ๋ฐ ํน๊ฐ
<client - server - db ๊ตฌ์กฐ์ ๋์ ์๋ฆฌ>
-
์ปดํจํฐ = ์น์๋ฒ / ๋ด ์ปดํจํฐ = localhost = 127.0.0.1
-
id,pw๋ฅผ url์ ๋ด์์ post ๋ฐฉ์์ผ๋ก server์ ๋ณด๋ธ๋ค.
-> server์์๋ ์
๋ ฅ๊ฐ์ ํ์ธ
-> ํด๋น ํ์ ์ ๋ฌด์ ๋ฐ๋ฅธ ์๋ต ๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ด์ค๋ค.
-> ๋ก๊ทธ์ธ์ด ๋์๋ค๋ฉด ๋ก๊ทธ์ธ ๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค์ผ ํ๋๊น rendering๋ ๊ฐ์ด ํด์ ๋ณด๋ธ๋ค.
- render: ์ด๋ค ์ํ๊ฐ ๋๋๋ก ๋ง๋๋ ๊ฒ
โ flask๋ก๋ถํฐ render template ๋ฑ์ ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ๋ฐ๋ก render~ ๋ฅผ ์ค์ ํ์ง ์์๋ ์ ์ญํ ์ ํ๋ ๊ฒ
โก @app.route(๊ฒฝ๋ก)
- ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ด๋๋ก ๊ฐ๊ฒ๋ ํ๋ ๊ฒ. ๊ณ ๊ฐ์ด ์์ฒญ์ ๋ณด๋ธ ๊ฒฝ๋ก๋ฅผ ('/์ฌ๊ธฐ') ์ฌ๊ธฐ์ ๋ฃ์.
โข def home()
ํ์ ์๋ ๋ด์ฉ์ผ๋ก ์ ์ํ๋ค.
-> render template์ ํตํด ๋ธ๋ผ์ฐ์ ์๊ฒ ํ
ํ๋ฆฟ(index.html)์ ์ฐพ์์ ๋ฐํํด์ค๋ค.
-> ์๋ฒ์ ํต์ ํ๋ ๋ ๊ฐ์ง ๋ฐฉ์์ธ url, method(๊ฒฝ๋ก, ๋ฐฉ๋ฒ)์ด ๋ง์์ผ def ๋ฐ์ผ๋ก ๋ค์ด๊ฐ๋ค!
โฃ ๋ง์ง๋ง ์ค์ port=5000๋ฒ์ ๋ถ์ฌํ ๊ฒฐ๊ณผ
->localhost:5000
-> 5000 = ์๋ฒ๋ก ๋ค์ด๊ฐ ์ ์๋ port(ํญ๊ตฌ)์ ๊ณ ์ ๋ฒํธ
-> ์๋ฒ๋ก ๋ค์ด์ค๋ ๋ชจ๋ ์์ฒญ์ ์ผ๋จ ๋ง๊ณ ๋ค์ด์จ ์์ฒญ๋ง ์ฌ๋ ๊ฒ์ด ๋ ํจ์จ์ !
โค app.py๋ฅผ ์คํ
-> ์๋ฒ๊ฐ ๋๊ณ ์๋ค(Running) = request๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค.
-> ๋ง์ง๋ง 172.30~
๋ถ๋ถ์ ๋ด IP์ฃผ์
-
logging์ ํตํด ์ฝ๋๊ฐ ์ ์๋ํ๋์ง ํฐ๋ฏธ๋์์ ํ์
ํ๋ค.
- ex. python = print / Javascript = consol.log
-
home route๊ฐ ์๋ (๋ค๋ฅธ url์ ๊ฐ์ง)route์ print๋ก ์ด ๋ด์ฉ์ด ํฐ๋ฏธ๋์ ์ฐํ ์์์.
-> main.js๋ฅผ ๋ณด๋ ๋ฌธ์๊ฐ ์ค๋น๋๋ฉด ๋ฐ๋ก show template์ ํธ์ถํ๋ ํจ์๊ฐ ์์๊ธฐ ๋๋ฌธ!
์๋๋ home route์ print ๋ด์ฉ๋ง ์ถ๋ ฅ๋์ด์ผ ํจ
- Get / Post
- ํ์ ์์ผ๋ฉด = Get(๊ธฐ๋ณธ๊ฐ)
- Get: ํ๋ผ๋ฏธํฐ ๋
ธ์ถ
-> ex. id, pw(ํ๋ผ๋ฏธํฐ. ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ ์ก๋๋ ๊ฒ๋ค)์ด ๋
ธ์ถ๋๊ธฐ ๋๋ฌธ์ get์ ๊ฐ๋จํ rendering ์ ๋๋ฅผ ํ ๋ ์ด๋ค
-> request.form[]์ ํตํด ์ ๋ฌ์ด ๋๋ค
- Post: ํ๋ผ๋ฏธํฐ ๋
ธ์ถX
-> ๋๋ถ๋ถ DBํต์ ์ด ์ด๋ ๊ฒ ์ด๋ค์ง๋ค.
โญ๊ธฐ์ตํ ๊ฒ: ํ๋ผ๋ฏธํฐ(๋งค๊ฐ๋ณ์)๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค
- ๋๊ธฐ / ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์
- ๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์:
1, 2, 3๊ฐ์ง์ ์์ฒญ์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ
= ์ ์์ฒญ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด ๋ฉ์ถ๋ค
- ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์:
1, 2, 3๊ฐ์ง ์์ฒญ์ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ฒ
= ์์ ์์ฒญ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๋๋ค
= ์๋ต ๊ฐ์ ๋ฐ๋ก๋ฐ๋ก ์ค๋ค
= ์พ์ ํ UX(์ฌ์ฉ์ ๊ฒฝํ)์ ๋ง๋๋๋ฐ ๋์์ด ๋๋ค
- skeleton ui: ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์ ํ์ ํ๋ฉด๋ง ๋ํ๋์ง ์๋๋ก ์ฝํ
์ธ ๋ฅผ ํ์
- ํฐ๋ฏธ๋ ๋ช
๋ น์ด ์ ๋ฆฌ
clear
pwd
ํ์ฌ์ ๊ฒฝ๋ก๋ฅผ ํ์ธ
ls
๋ชฉ๋ก ๋ณด๊ธฐ
cd ๊ฒฝ๋ก์ด๋ฆ
ํด๋น ๊ฒฝ๋ก๋ก ๊ฐ๊ธฐ
cd..
์์ ๊ฒฝ๋ก๋ก ๊ฐ๊ธฐ
python3 app.py
์คํ
2. Algorithm_Python_2์ฃผ์ฐจ
- ์ด๋ ์ด์ ๋งํฌ๋ ๋ฆฌ์คํธ
- Array - ๋ฐ์ดํฐ ์กฐํ
- LinkedList - ๋ฐ์ดํฐ ์ฝ์
, ์ญ์
- Python์ list = LinkedList์ Array ๋ชจ๋ ์ธ ์ ์๊ฒ ๋ง๋ ํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ
- sum()์ ํ์ด์ฌ์ ๋ด์ฅํจ์
-> linked_list_sum
๋ณ์ ์ด๋ฆ์ ์ด๋ฐ ์์ผ๋ก ์ ํ๊ธฐ
3. Algorithm ํน๊ฐ
- ์ด๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฐ๋ ๊ณ ๋ คํด์ผ ํ๋ ๊ฒ:
<์ฝ์
์๊ฐ, ์ญ์ ์๊ฐ, ๊ฒ์ ์๊ฐ, ์ ๋ ฌ ์ฌ๋ถ>
- Double LinkedList: ์๋ฐฉํฅ ์ํต
4. ํ๋ก๊ทธ๋๋จธ์ค
- Day2 <์ฌ์น์ฐ์ฐ, ์กฐ๊ฑด๋ฌธ, ๋ฐฐ์ด>
- ๋ชซ ๊ตฌํ๊ธฐ์์ ์์์ ๋ผ๋ ๊ฒ์
Math.floor()
๋ฅผ ๋ฐฐ์์ ์ฌ์ฉํจ
-> Math.trunc
์ ์ ๋ถ๋ถ ๋ฐํ
-> parseInt
๋ฌธ์์ด์ ๋ฐ๋ ํจ์. ๋ฌธ์์ด์ด ์๋ ๋๋ ์ซ์๋ก ๋ณํํ์ง๋ง ๊ทธ๋๋ ๋ณธ๋ ํจ์ ์๋ฏธ์ ๋ง๊ฒ ๋ฌธ์์ด์ ์ฐ๊ธฐ
- Git repo์ ๋ด๊ฐ ํผ ๋ฌธ์ ์ฌ๋ฆฌ๊ณ ์ถ์๋ฐ ์ ์ ์ฌ๋ผ๊ฐ๋ใ
ใ
๐ฉ
๋ด ์๊ฐ
- ์ปค๋ฆฌํ๋ผ๋๋ก ๋ฐ๋ผ๊ฐ๊ณ ๋ ์๋๋ฐ ์ ๋ง '์' ๋ฐ๋ผ๊ฐ๊ณ ์๋ ๊ฒ์ธ๊ฐ?
- ์ค๋ ์ค์ ์ ๋ค์ WEB ํน๊ฐ์ ๋๋ฌด๋๋ฌด๋๋ฌด ์ข์๋ค. ๋ด๊ฐ ๋ฏธ๋ํ๋ก์ ํธ์์ MongoDB๋ฅผ ์ฐ๊ฒฐํ์ง๋ง ์ ๋ชจ๋ฅด๋ ์ฑ๋ก ๊ทธ๋ฅ ์์
์ฝ๋๋ง ๋ฐ๋ผ ๋ถ์ธ ๊ฒ ๊ฐ์ ๋ต๋ตํ๋๋ฐ ์ค๋ ๊ทธ ์ฝ๋๊ฐ ์ดํด๋๋ฉด์ ๋น ๋ถ๋ถ์ด ์ฑ์์ง ๊ฒ ๊ฐ์๋ค. ๊ทธ๋์ ๋ด์ฉ์ ์ ๋ฆฌํ๋๋ฐ ์๊ฐ์ ๊ฝค ์ผ๋๋ฐ๋ ๋ด ์ง์์ด +1๋๋ ๊ฒ ๊ฐ์ ์ข์๋ค.
- ํน๊ฐ ๋ฃ๊ณ ์ ๋ฆฌ, ์๊ฒฉ ๊ฐ์ ๋ฃ๊ณ ์ ๋ฆฌ, ์ด๋ฒ ์ฃผ๋ถํฐ ํ ์ฃผ๋ง ์คํฐ๋(git, js), ๊ฐ์ธ์ ์ผ๋ก html๊ณผ css ์ ํญ ๊ฐ์ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๊ธฐ, ํ๋ก๊ทธ๋๋จธ์ค ๊น์ง..
ํ ๊ฑด ๋ง๊ณ ๋ ๋ง์์ง๋๋ฐ ๋๋ ์ถฉ๋ถํ ๋ด ์ง์์ผ๋ก ๋ง๋ค๋ฉด์ ํด๋ด๊ณ ์๋๊ฐ..? ์ด๋ฐ ์ ๋ฐ ์๊ฐ๋ค์ด ์ ๋ฆฌ๊ฐ ์ ๋์ฑ๋ก ๋ฅ๋ฅ ๋ ๋ค๋๋ ๊ธฐ๋ถ..!
์ผ๋จ ๋ด๊ฐ ํ๊ณ ์๋ ๊ฒ๋ค์ ๊ณ์ ์ด๋ ๊ฒ ์ ๋ฆฌํด๊ฐ๋ฉฐ ๊ณต๋ถํ๊ณ ๋ค์ ์ฃผ์ ํ์ต๋ฐฉํฅ, ํ๋ ๋ค์ ์ ๊ฒํด๋ณด๊ธฐ!