๐ ํ๋ก ํธ์๋(reactjs), ๋ฐฑ์๋(nodejs, mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค), ํด๋ผ์ฐ๋ ์๋ฒ(aws) ์์ญ์ ๋ชจ๋ ์ด์ฉํ๊ธฐ
React.js๋?
๐ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๐ Component ๋จ์๋ก ํ๋ฉด์ ๊ตฌ์ฑํด, ์ฝ๋ ๊ฐ๋ ์ฑ, ์ด์์ฑ, ์ฌํ์ฉ์ฑ์ด ์ข์ต๋๋ค.
๐ ํ๋ฉด์ ๊ตฌ์ฑ์์๋ฅผ ๊ทธ๋ ค์ฃผ๋ ๋ ๋๋ง ํจ์จ์ด ์ข์ต๋๋ค.
๐ ํ๋ง๋๋ก, ์ฌ์ฉ์ ๋์ ๋ณด์ด๋ ํ๋ฉด ์์ญ(ํ๋ก ํธ์๋)์ ํจ์จ์ ์ผ๋ก ๊ตฌํํ๋ ์ธ์ด์ ๋๋ค.
Node.js๋?
๐ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๊ฐ์ ๋ฐฑ์๋ ์ง์ ์ธ์ด์ ๋๋ค.
๐ ์ฌ์ด ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ๋ณต์กํ ๋ฐฑ์๋ ์๋ฒ ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ๋์ํด, ๊ฐ์๋ ๋ง์ง๋ง ํฌ๊ธฐ๊ฐ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ ๋ฆฌํ ์ธ์ด์ ๋๋ค.
๐ ์ฝ๊ฒ ๋งํ๋ฉด, DB๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ณต์กํ ๋ก์ง์ ์ํํ ์ ์๋ ์ธ์ด์ ๋๋ค. (ํ๋ก ํธ์๋ ์ธ์ด์ธ react์์๋ DB๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.)
MySQL์ด๋?
๐ ๋ฌด๋ฃ ์คํ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค.
๐ ์น ์ฌ์ดํธ์ ํ์ํ ์ ๋ณด๋ฅผ ์๊ตฌ์ ์ผ๋ก ๋ณด๊ด, ๊ด๋ฆฌํด์ค๋๋ค.
๐ ์ฌ์ดํธ์ ์ ์ํ ์ฌ์ฉ์๋ ์กฐํ, ์ ์ฅ, ์์ , ์ญ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
AWS๋?
๐ ํด๋ผ์ฐ๋ฉ ์ปดํจํ ์๋น์ค๋ก, ๋ด ์ปดํจํฐ๊ฐ ์๋ ์ธํฐ๋ท์ผ๋ก ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค์ ๋๋ค.
๐ ์ฝ๊ฒ ๋งํ๋ฉด ์ปดํจํฐ๋ฅผ ์จ๋ผ์ธ์ผ๋ก ๋์ฌํด์ฃผ๋ ์๋น์ค์ ๋๋ค.
๐ ์ฌ์ฉ์๋ ํ์ํ ๋งํผ๋ง ์ง๋ถํ๊ณ ์ปดํจํฐ ์์์ ์ฌ์ฉํฉ๋๋ค.
๐ ์์ ์์๋ mysql ์๋ฒ๋ก ์ฌ์ฉํ RDS ์ธ์คํด์ค, react์ node์๋ฒ๋ฅผ ๋ฐฐํฌํ EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐ React๋ html, css, javascript๋ฅผ ์ฌ์ฉํด ํ๋ฉด์ ๊ตฌ์ฑํฉ๋๋ค.
๐ Node๋ React์๋ฒ์ ํธ์ถ์ ๋ฐ์, ์คํํ Mysql์ฟผ๋ฆฌ๋ฅผ mysql์๋ฒ์ ์ ๋ฌํฉ๋๋ค.
๐ Mysql์์ ์คํํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ, React์๋ฒ์ ์ ๋ฌํด ํ๋ฉด์ ํ์ํฉ๋๋ค.
๐ React > Node > Mysql๋ฅผ ๋ชจ๋ AWS์ ๋ฐฐํฌํ๋ฉด, ์ธ๋ถ์์๋ ์ ์๊ฐ๋ฅํ ์๋น์ค๊ฐ ๋ฉ๋๋ค.
๋ผ์ฐํ : ํธ์ถ๋๋ ๊ฒฝ๋ก์ ๋ง๋ ํ๋ฉด ๋๋ ๋ก์ง์ ๋งค์นญํด ์ฃผ๋ ๊ฒ.
๋ฆฌ์กํธ์์๋ ํ๋ฉด์. ๋ ธ๋์์๋ ๋ก์ง์ ๋งค์นญํด์ค.
๐ npm์ node package manager๋ก ํ๋ก์ ํธ์ ํ์ํ ํจํค์ง์ ๋ค์ด๋ก๋ ๋ฐ ์ค์นํด์ค๋๋ค.
๐ yarn๋ npm๊ณผ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ๋์ผํฉ๋๋ค. ํ์ด์ค๋ถ์์ npm์ ๊ฒฝ๋ํํด ๋ง๋ ํจํค์ง์ ๋๋ค.
ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ์ด์
๐ react์์ node์๋ฒ ๊ฒฝ๋ก๋ฅผ ํธ์ถํ ๋, ํธ์ถ URL์ ๊ฐํธํ ํ๊ธฐ ์ํด ํ๋ก์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์) localhost:5000/users > /users
๐ ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ฉด cors์ค์ ์ ํ์ง ์์๋ ๋๋ค.
http (HyperText Transfer Protocol)
- ์น์์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์์ฒญ/์๋ต์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ
http get๋ฉ์๋
๐ get๋ฉ์๋๋ ์ฟผ๋ฆฌ์คํธ๋ง ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , URL์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ธ์ถ๋ฉ๋๋ค.
์) ?name=value&name2=value2
๐ ๋จ์ ์กฐํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ ํฉํฉ๋๋ค.
http post๋ฉ์๋
๐ post๋ฉ์๋๋ http body์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์ ๋ฌํฉ๋๋ค. URL์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ธ์ถ๋์ง ์๊ณ , ์ ์ก ๊ธธ์ด ์ ํ์ด ์์ต๋๋ค.
๐ ์กฐํ๋ฅผ ํฌํจํด ์ ์ฅ, ์์ , ์ญ์ ๋ฑ ์ด๋ค ์์ ์ ์ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
corsํจํค์ง ์ค์น
๐ node์๋ฒ์ cors์ค์ ์ ์ถ๊ฐํ๋ฉด, react์ node์๋ฒ๊ฐ ์๋ก ๋ค๋ฅธ ์๋ฒ์ด์ง๋ง ํ๋ก์ ์ค์ ์์ด ํต์ ํ ์ ์์ต๋๋ค.
๐์ฌ์ฉ ๋ช ๋ น์ด
cors ํจํค์ง ์ค์น : [npm install --save cors]
proxy๋ฅผ ์ฌ์ฉํ๋ฉด
์ฌ๊ธฐ์ localhost5000์ ์๋ตํด๋ ๋๊ณ
cors ์ค์ ๋ ๋ถํ์ํจ.
--> client package.json์ ์ด์ ๊ฐ์ด ์ค์
html์์ค๋ฅผ jsx์ ์ ์ฉํ ๋, ์ฃผ์ํ ์
๐ jsx์์๋ ๊ผญ ๋ซ์์ค์ผ ํ๋ htmlํ๊ทธ๊ฐ ์์ต๋๋ค.
๐ {/* ์ฃผ์ *}๋ฌธ๋ฒ์ผ๋ก ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํฉ๋๋ค.
๐ ํ๋์ ํ๊ทธ๋ก ํ์ ํ๊ทธ๋ฅผ ๊ฐ์ธ์ผํฉ๋๋ค.
๐ class๋์ className์ ์ฌ์ฉํฉ๋๋ค.
๐ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ ์นด๋ฉํ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
reactstrap์ด๋
๐ bootstrap๊ณผ react์ ํจ์ฑ์ด๋ก, react์์ bootstrap์ ํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ๋ฐ๋ ํจํค์ง์ ๋๋ค.
state๋ณ์๋
๐ react์ปดํฌ๋ํธ ๋ด๋ถ์์ ๊ด๋ฆฌ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋๋ค.
๐ javascript์ html์ฝ๋ ์์ญ์์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๐ state๋ณ์์ ๋ณํ์ ๋ฐ๋ผ ํ๋ฉด์ ๋ ๋๋งํ๊ฑฐ๋, ํน์ ํจ์๋ฅผ ์คํํ ์ ์์ต๋๋ค.
'Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ํต๊ณต #3 (0) | 2025.03.13 |
---|---|
ํ ์ต ๊ฟํ, ๋์ ์ฝ์ ํ์ ํ๊ธฐ (0) | 2024.12.24 |
์ํํธ์จ์ด ๊ณตํ ์ค๊ฐ ์ ๋ฆฌ๋ณธ (0) | 2024.10.16 |
์ธ๋ฌผ๋ก๋ณธ์ผ๋ณธ์ฌ [๊ธฐ๋ง ์์ฝ ์ ๋ฆฌ] (0) | 2023.12.07 |
์ปดํจํฐ๊ตฌ์กฐ (0) | 2023.12.07 |