
λΈλ£¨λ°μ νμκ³Ό μ μλ κ°μ μνν μν΅μ μν νμ΅ λ³΄μ‘° λꡬμ
λλ€.
λ μ΄μμ νκ³ μλ νμ΅μ μ μ, ν¨κ» μ°λ¦¬μ μ μμ κ°κΎΈμ΄ λκ°μ! π±πΌ
μ ν¬λ κ΅μ‘μ μκ°νλ©° μ΄λ¬ν λΆνΈν¨μ λκΌμ΅λλ€.
π£οΈ βλ·μλ¦¬λΌ μ½λκ° μ μ 보μ¬μ.β
π£οΈ βλ무 μ‘°μ©ν΄μ μ§λ¬ΈνκΈ° μ΄λ €μμ.β
π£οΈ βνμλ€λΌλ¦¬ μ΅λͺ μΌλ‘ μν΅ν μ μλ μ°½κ΅¬κ° μμΌλ©΄ μ’κ² μ΄μ.β
π£οΈ β곡μ§μ¬νμ μ¬λμμ νμΈνλ€λ³΄λ μ°ΎκΈ° νλ€μ΄μ.β
λ°λΌμ κ΅μ‘ ν΅ν© κ΄λ¦¬ μμ€ν
μ΄μ νμλ€μ μμ
μ 보쑰ν΄μ£Όλ λꡬμΈ, λΈλ£¨λ°μ κ°λ°νμ΅λλ€!
π¨ λΈλ£¨λ°μ ν΅ν΄ μ¬μ©μλ
- μ½λ 곡μ λ₯Ό κ°νΈννκ³
- μ κ·Ήμ μΈ μ§μμλ΅ μ λνκ³
- νμλ€μ νμ΅ μν©μ νλ‘μ°ν μ μμ΅λλ€!
νμμ μμ
μ κ΄ν νΌλλ°± νΉμ μ§λ¬Έμ μλ¦Ό κΈ°λ₯μ ν΅ν΄ μ΅λͺ
μΌλ‘ μ λ¬ν μ μμ΅λλ€.
κ°μ¬λ μλ¦Όμ ν΅ν΄ νμλ€μ μ΄ν΄μ λλ₯Ό μ μ μκ³ μ§λ¬Έμ λ°μ μ μμ΄ μ΅μ νλ μμ
μ΄ κ°λ₯ν©λλ€.
κ²μν, κ³Όμ ν¨, 곡μ§μ¬ν μΈκ°μ κ²μνμ΄ μ‘΄μ¬ν©λλ€.
κ²μνμλ μ΅λͺ
μΌλ‘ κΈμ μ μ μ μμΌλ©°, κ³Όμ ν¨μ μμ μ΄ μ¬λ¦° κΈλ§ μ κ·Ό ν μ μμ΅λλ€.
κ°μ¬ νΉμ νμμ μ½λλ₯Ό κ°μμ νλ©΄μ λμ λͺ¨λ ν¨κ» 곡μ ν μ μμ΅λλ€.
μ€ν¬λ¦°κ³Ό λ©μ΄ κ°μ¬μ νλ©΄μ΄ μ보μ΄κ±°λ, νμμ μ½λλ₯Ό 보며 μ€λͺ
ν΄μΌ νλ κ²½μ°μ ν΄λΉ κΈ°λ₯μμ μ¬μ©ν¨μΌλ‘μ¨ λ³΄λ€ μ§ λμ μμ
μ΄ κ°λ₯ν©λλ€
| κΉλ―Έλ | κΉμμ | λ°μν¬ | 000 |
|---|---|---|---|
| @allllfo | @lvolzdev | @seohee99 | @ekgus9701 |
| Full-stack | Full-stack | Full-stack | Full-stack |
| βοΈ AWS EC2 λ°°ν¬ βοΈ λ‘κ·ΈμΈ, νμκ°μ κΈ°λ₯ λ° UI ꡬν βοΈ λ§μ΄νμ΄μ§ κΈ°λ₯ λ° UI ꡬν βοΈ κΈ°ν UI ꡬν |
βοΈ AWS EC2 λ°°ν¬ λ° CICD ꡬν βοΈ λ©μΈνμ΄μ§ UI λ° μ»€λ¦¬νλΌ κΈ°λ₯ ꡬν βοΈ κ²μκΈ μμ±/μμ νμ΄μ§ ꡬν βοΈ λ‘κ³ λμμΈ ν¬ν¨ κΈ°ν λ¬Έμ μμ |
βοΈ κΈ°λ³Έ λ μ΄μμ μ€κ³ λ° κ΅¬ν βοΈ Iframe, VSCode Liveshare Extensionμ νμ©ν νλ©΄ 곡μ κΈ°λ₯ ꡬν βοΈ Socket.ioλ₯Ό νμ©ν μ§λ¬Έ, μλ¦Ό κΈ°λ₯ ꡬν |
βοΈ κ²μκΈ λ¦¬μ€νΈ νμ΄μ§ ꡬν βοΈ κ²μκΈ μμΈ νμ΄μ§ ꡬν βοΈ ν€λ 문ꡬ λ³κ²½ κΈ°λ₯ ꡬν βοΈ κΈ°ν UI ꡬν |
vscode μ½λ 곡μ λ₯Ό μν΄ live share extensionμ μ€μΉν΄μ Iframeμ src μμ±μ νλ©΄ 곡μ λ§ν¬λ₯Ό μ½μ
λΆλͺ¨(blueming), μμ(vscode~~.com) μ κ°μ μΆμ²κ° μλκΈ° λλ¬Έμ CORS μλ¬κ° λ°μ
CORS
- CORS : cross origin resource sharing, λμΌν μΆμ²(νλ‘ν μ½, νΈμ€νΈλͺ , ν¬νΈ)μ 리μμ€μλ§ μ κ·Όνλλ‘ μ ννλ μ μ±
- λ°λΌμ CORSλ μλ‘ λ€λ₯Έ μΆμ²(Origin) κ°μ 리μμ€λ₯Ό μ λ¬νλ λ°©μμ μ μ΄νλ 체μ μ΄λ©°,CORS μμ²μ΄ κ°λ₯νλ €λ©΄ μλ²μμ νΉμ ν€λμΈ Access-Control-Allow-Originκ³Ό ν¨κ» μλ΅ν νμκ° μλ€!
iframe μ λ€λ₯Έ μΆμ²μ μ¬μ΄νΈλ₯Ό λ£μλ€λ κΈμ μ°Έκ³ νμ¬ κ°μ λ°©λ²μ μ¬μ©
λ€λ₯Έ μ¬λμ΄ λ§λ νλ‘μ μλ²(λνμ μΈ μ:https://cors-anywhere/herokuapp.com)λ₯Ό μ¬μ©νλ κ² :: μμ²ν΄μΌνλ url μμ νλ‘μ μλ² urlμ λΆμ¬ μμ²νλ©΄ ν΄κ²°ν μ μμ
νμ§λ§ μ΄ λ°©λ²μ μ¬μ©μκ° μ§μ νλ‘μ μλ² μ¬μ΄νΈμ λ€μ΄κ°μ μ μ μ¬μ©νκ² λ€λ μμ² λ²νΌμ λλ¬μΌλ§ κ°λ₯νκΈ°μ μ΄κ±΄ μμμ μΈ λ°©λ²μ΄μκ³ , κ°λ°μ©μΌλ‘λ§ κ°λ₯ν΄μ λ°°ν¬νμ λλ μ¬μ©νμ§ λͺ»νλ€λ λ¨μ μΌλ‘ μ¬μ©νμ§ μμ
μλ²μμ μ§μ Access-Control-Origin ν€λλ₯Ό μΈν
Iframeμ λ£κ³ μΆμ λ§ν¬λ₯Ό μλ²λ‘ 보λ΄μ μλ²μμ ν€λλ₯Ό λ£μ΄ μλ΅μ 보λ΄μ£Όμκ³ , κ·Έ μλ΅λ°μ λ°μ΄ν° μ체λ₯Ό iframeμμ srcDoc μμ±μ λ£μ΄μ£Όμλ€. (srcDocμ htmlκ°μ ννλ₯Ό λ£μ μ μλ μμ±)
μλ², νλ‘ νΈ μ¬μ΄μ νλ‘μλ μ΄λ―Έ μ€μ ν΄λμκΈ°λλ¬Έμ μ λ°©λ²μ μ¬μ©ν΄μ λ€λ₯Έ μΆμ²μ μ¬μ΄νΈλ₯Ό iframeμ λ£μ μ μκ² λμλ€!
AWS EC2 μΈμ€ν΄μ€μ Socket ν΅μ ꡬνν λ²μ μ λ°°ν¬ μλ.
λ‘컬μμλ λ¬Έμ μμ΄ μλλμ§λ§, λ°°ν¬νμ corsμλ¬ λ°μνλ©° μμΌ ν΅μ μλνμ§ μμ.
μλ²λ 3000λ² ν¬νΈ, ν΄λΌμ΄μΈνΈλ 5173λ² ν¬νΈ μ¬μ© μ€.
λ°λΌμ κΈ°μ‘΄ νμΌμ κ²½μ°,
- νλ‘ νΈμλ socket νμΌμμλ http://elasicIP:3000 μλ² ν¬νΈλ‘ μμΌμ 보λ΄κ²λ ꡬν.
- λ§μ°¬κ°μ§λ‘ λ°±μλ socket νμΌμμλ Serverλ₯Ό μλ‘ λ§λ€ λ cors originμ http://elasicIP:5173 μΆκ°ν΄μ€¬μ.
EC2 μΈμ€ν΄μ€ λ΄μμλ nginx μΉμλ²λ₯Ό ν΅ν΄ ν΅μ ν¨.
κ³ λ‘ μμΌ ν΅μ μμλ μ§μ νλ‘ νΈ/λ°± ν¬νΈλ‘ μ μ‘νλ κ²μ΄ μλ, null κ°μ 보λ΄μ£Όλ μ μμ μΌλ‘ ν΅μ μ΄ λμν¨.
ν΄λ ꡬ쑰
π frontend
ββ .eslintrc.cjs
ββ .gitignore // .gitignore νμΌ
ββ package-lock.json
ββ package.json // package κ΄λ¦¬ νμΌ
ββ public // image κ΄λ¦¬ ν΄λ
ββ README.md
ββ src
β ββ App.css
β ββ App.jsx
β ββ assets // λ°μ΄ν°, ν°νΈ λ± κ΄λ¦¬ ν΄λ
β β ββ data
β β ββ fonts
β ββ components // λ μ΄μμ κ΄λ¦¬ ν΄λ
β ββ lib
β β ββ apis // λ°±μλμ ν΅μ μ μν ν΄λ
β β ββ hooks
β ββ main.jsx
β ββ routers // λΌμ°ν° κ΄λ¦¬ ν΄λ
β ββ routes
β β ββ board // λ©μΈ κΈ°λ₯ 1. board
β β β ββ assignment // 1-1. κ³Όμ ν¨
β β β β ββ detail
β β β β ββ write
β β β ββ board // 1-2. μμ κ²μν
β β β β ββ detail
β β β β ββ write
β β β ββ notice // 1-3. 곡μ§μ¬ν
β β β ββ detail
β β β ββ write
β β ββ codeShare // λ©μΈ κΈ°λ₯ 2. νλ©΄ 곡μ
β β ββ question // λ©μΈ κΈ°λ₯ 3. μ§λ¬Έ/μλ¦Ό
β β ββ socket // μμΌ ν΅μ μ μν ν΄λ
β β ββ user // μ μ κΈ°λ₯ κ΄λ¦¬λ₯Ό μν ν΄λ
β β ββ login
β β ββ mypage
β β ββ signup
β ββ store
β ββ reducers // redux μν κ΄λ¦¬λ₯Ό μν ν΄λ
β ββ store.js
ββ vite.config.js
π backend
ββ .gitignore
ββ app.js
ββ bin // μλ² μμ νμΌ
β ββ www
ββ middlewares // λ‘κ·ΈμΈ κ΄λ¦¬ λ―Έλ€μ¨μ΄
ββ models // DB λͺ¨λΈ
ββ package.json
ββ routes // λΌμ°ν° κ΄λ¦¬ ν΄λ
ββ utils // μΈμ¦, μμΌ κ΄λ¦¬ ν΄λ
β ββ auth.js
β ββ socket
ββ views



