[ํด๋ผ์ฐ๋ฉ ์ดํ๋ฆฌ์ผ์ด์ ์์ง๋์ด๋ง TIL] 240111 - JS ์ค์ต
Intro
์ค๋์ ์ง์ ํ๋ก์ ํธ ์ธํ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๋ค.
json-server๋ฅผ ์๋กญ๊ฒ ์๊ฒ๋์๊ณ json-server๋ก ์์ผ๋ก ๊ฐ๋จํ๊ฒ REST API ํต์ ์ ๊ตฌํํ ํ์ด์ง๋ฅผ ๋ง๋ค์ด ๋ณผ ์ ์์ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ sass๋ ํ๋ฒ๋ ์ฌ์ฉํด ๋ณธ ์ ์ด ์๋๋ฐ ์์ผ๋ก ์ค์ตํ๋ฉฐ ์จ๋ณผ ์ ์์ด ๊ธฐ๋๊ฐ ๋๋ค.
์ค๋ ํ์ตํ ๋ด์ฉ
: Teck Flow, ํ๋ก์ ํธ ์ธํ
Tech Flow
์ด์ ๊ณต๋ถํ User Flow์ ์์ธ Flow์ ์ด์ด Teck Flow์ ๋ํด ํ์ตํ๋ค.
๊ธฐ์ ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ๋ ์ง์ ๋ํ ํ๋ก์ฐ๋ฅผ ์์ฑํด ๋ณด๋ ๊ฒ์ด๋ค.
- ์๋น์ค์ ์ ๊ทผํ๋ค.
- ์ ์ ๊ฐ ์ก์ ์ ํ๋ฉด, ์๋น์ค๋ ์ก์ ์ ์ ๋ ฅ ๋ฐ๋๋ค.
- ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์ฅํ๋ค.
- ํ์ฌ ์์ฐ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ๋ค.
- ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์์ฐ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค.
๊ฐ๋จํ ๊ณ์ฐ๊ธฐ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ํ์ํ ๋จ๊ณ๋ฅผ ์๊ฐํด๋ณด๊ณ , ๊ฐ๊ฐ์ ๋จ๊ณ์์ ๊ตฌํ ๋ชฉํ์ ๊ทธ์ ๋ฐ๋ฅธ ํ์ ์ฌํญ๋ค์ ์๊ฐํด์ tech flow๋ฅผ ์์ฑํ๋ค.
์๋ฅผ ๋ค๋ฉด,
- ์๋น์ค์ ์ ๊ทผํ๋ค.
- ๊ตฌํ ๋ชฉํ: ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ํ๋ฉด์ ํ์ธํ ์ ์๋๋ก ํ๋ค.
- ํ์: ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ ๊ทผํ๋ค โก๏ธ ์ ์ ๊ฐ ํ์ธํ ์ ์๋ ํ๋ฉด์ด ๊ทธ๋ ค์ง๋ค.
- Tech Flow: ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํด ์๋น์ค URL ์ ์ โก๏ธ ์๋น์ค์ ํ์ํ ํ์ผ์ ๋ก๋ โก๏ธ ๋ก๋ํ ํ์ผ๋ค์ ํ์ฉํ์ฌ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค.
- ์ ์ ๊ฐ ์ก์
์ ํ๋ฉด, ์๋น์ค๋ ์ก์
์ ์
๋ ฅ ๋ฐ๋๋ค.
- ๊ตฌํ ๋ชฉํ: ์ ์ ์ ์ก์ ์ ์๋น์ค์ ์ ๋ ฅ๋ฐ๋๋ค.
- ํ์: ์ ์ ๊ฐ ํ ์ ์๋ UI โก๏ธ ์ ์ ๊ฐ ์ก์ ์ ์ ๋ ฅ๋ฐ์ ์ ์๋๋ก ์ค๋นํด์ผ ํจ
- Tech Flow: Input UI์ ํค๋ณด๋๋ก ์ซ์๋ฅผ ์ ๋ ฅํ๋ค. โก๏ธ input์ ๋ฑ๋ก๋ ์ด๋ฒคํธ๊ฐ ์คํ๋จ โก๏ธ ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์์ ํ์ธํ ์ ์๋ค.
- ์
๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์ฅํ๋ค.
- ๊ตฌํ ๋ชฉํ: ์ ์ ์๊ฒ ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์ฅํ๋ค.
- ํ์: ์๋ฒ, ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ ํต์ (API)
- Tech Flow: ์ ์ ๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด โก๏ธ ๋ฒํผ์ ๋ฑ๋ก๋ ์๋ฒ ์ ์ก ์ด๋ฒคํธ๊ฐ ๋ฐ์ โก๏ธ API๋ฅผ ํตํด ์๋ฒ์ ๋ฐ์ดํฐ ์ ์ฅ ์์ฒญ โก๏ธ ์๋ฒ๋ ์์ฒญ์ด ์๋ฃ๋๋ฉด ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ค
- ํ์ฌ ์์ฐ์ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ๋ค.
- ๊ตฌํ ๋ชฉํ: ํ์ฌ ์์ฐ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ๋ฐ์์จ๋ค.
- ํ์: ์๋ฒ, ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ์ ํต์ (API)
- Tech Flow: API๋ฅผ ํตํค ์๋ฒ์ ๋ฐ์ดํฐ ์กฐํ ์์ฒญ โก๏ธ ์๋ฒ์์ ๋ฐ์ดํฐ ์๋ต
- ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์์ฐ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค
- ๊ตฌํ ๋ชฉํ: ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค.
- ํ์: ์๋ฒ๋ก๋ถํฐ ์๋ต๋ฐ์ ๋ฐ์ดํฐ โก๏ธ ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ ์ ๊ฐ ๋ณด๊ธฐ ์ฝ๊ฒ ์ฒ๋ฆฌํ๋ ๋ก์ง โก๏ธ ์ ์ ๊ฐ ํ์ธํ ์ ์๋ ํ๋ฉด ๊ทธ๋ฆฌ๊ธฐ
- Tech Flow: ์๋ต ๋ฐ์ดํฐ๋ฅผ ์ ์ ๊ฐ ๋ณด๊ธฐ ์ฝ๊ฒ ์ฒ๋ฆฌํ๋ค. โก๏ธ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ค์ ๋ณด์ฌ์ค๋ค.
์น/์ ์ /์๋ฒ ๊ฐ ์ธํฐ๋ ์
์์ ๋ด์ฉ ๊ตฌํ์ ์ํด ์น/์ ์ /์๋ฒ๋ ์๋ก ์ํธ์์ฉ์ ํ๋ค.
- ์น โก๏ธ ์ ์ : ํ๋ฉด์ ๋ณด์ฌ์ค๋ค. (๋ ๋๋ง)
- ์น โฌ ๏ธ ์ ์ : ์ก์ ์ ๋ ฅ ๋ฐ์ ์ ์๋๋ก
- ์น โก๏ธ ์๋ฒ: ๋ฐ์ดํฐ ์กฐํ/์ ์ฅ/์์ ์์ฒญ
- ์น โฌ ๏ธ ์๋ฒ: ์์ฒญ์ฌํญ์ ๋ํ ์๋ต์ ๋ฐ์
๋ ๋๋ง
๋ ๋๋ง์๋ HTML ๋ฌธ์๋ฅผ ๋ด๋ ค ๋ฐ์ ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ์ฝ์ด ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ธฐ๋ณธ ๋ ๋๋ง๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ์ ์กฐ์์ผ๋ก ๋ค์ ๋ ๋๋งํ๋ ์ ํ์ด ์๋ค.
- ๊ธฐ๋ณธ ๋ ๋๋ง
- HTML ํ์ผ์ ๋ฌธ์ ์์ฑ
- ์ต์ด ํ์ผ์ด ๋ก๋๋ ๋, ๋ธ๋ผ์ฐ์ ์ ์ํด HTML์ ์ฝ์ด ํ๋ฉด์ ๊ทธ๋ฆผ
- ๋ฐํ์ ๋ ๋ ๋๋ง
- ๋ฐํ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ ๋๋ง์ ์กฐ์
- ์ก์ ์ด ์์ ๋ UI๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ์ผ์ด์ค
- html์ ํตํ ๋ ๋๋ง
- HTML: Hyper Text Markup Language
- ์น ํ์ด์ง์ ์น ์ฌ์ดํธ์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ์ฝ๋
- ์น์ ๋ก๋ํ ๋ ์ฒ์์ ๋ก๋ํ๋ ํ์ผ
- CSS: Cascading Style Sheet
- ๋งํฌ์ ์ธ์ด๊ฐ ์ค์ ๋ก ํ์๋๋ ๋ฐฉ๋ฒ์ ๊ธฐ์ ํ๋ ์คํ์ผ ์ธ์ด
- DOM: Document Object Model
- HTML๋ฌธ์์ ์ํธ์์ฉํ ์ ์๋ ์ธํฐํ์ด์ค (JS๋ก DOM์ ์ ๊ทผํ ์ ์์)
- node์ Object๋ก ๋ฌธ์๋ฅผ ํํ
- ๋ถ๋ชจ/์์ ๊ตฌ์กฐ์ ํธ๋ฆฌ๊ตฌ์กฐ
- ๋ ๋๋ง ๊ณผ์
- html ๋งํฌ์ ํ์ฑ - DOM ํธ๋ฆฌ ๊ตฌ์ถ
- CSS ๋งํฌ์ ํ์ฑ - CSSOM ํธ๋ฆฌ ๋น๋
- DOM๊ณผ CSSOM์ ๊ฒฐํฉํด ๋ ๋๋ง ํธ๋ฆฌ ํ์ฑ
- ๋ ๋ํธ๋ฆฌ ๋ฐฐ์น
- ๋ ๋ํธ๋ฆฌ ํ์ธํ
- HTML: Hyper Text Markup Language
- ๋ฐํ์ ๋ ๋ ๋๋ง ์กฐ์
- Triggering์ด ์์ ๋ UI๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ์ผ์ด์ค
- ๋ฐํ์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก DOM์ ์กฐ์ํ์ฌ ๋ ๋๋งํ๋ค. (document.querySelector, document.createElement, Node.appendChild(Node), ...)
- ๋ฆฌ๋ ๋๋ง - ๋ฆฌํ์ธํ , ์ฌ๋ฐฐ์น ๋ฐ์
์ด๋ฒคํธ
์ ์ ๊ฐ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ํ์ ๋ ํจ์๋ฅผ ์คํ์ํค๊ณ ์ถ๋ค๋ฉด?
โก๏ธ ์ฌ์ค์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ catchํด์ผ ํจ == ์ด๋ฒคํธ catch๊ฐ ํ์
โ ์ ์ ๊ฐ ํ๋ํ๊ธฐ ์ ์ ์์ ๊ธฐ ๋ฑ๋ก์ด ํ์ โ
- EventTarget ๊ฐ์ฒด
- ์ด๋ฒคํธ์ ๋์์ด ๋๋ ๊ฐ์ฒด๊ฐ EventTarget ๊ฐ์ฒด ๊ตฌํ
- ์ด๋ฒคํธ๋ฅผ ์์ ํ ์ ์๋ ์์ ๊ธฐ
- ์ด๋ฒคํธ ์ ํ
- ์ ์ ์์ ์ํธ์์ฉ, ๊ธฐ๋ณธ ํ๊ฒฝ ์ํ์ ๋ณํ
- click, focus, blur, ...
์๋ฒ๊ฐ ํต์
๋ฐ์ดํฐ ์กฐ์์ ์ํด ํด๋ผ์ด์ธํธ์ ์๋ฒ์์ ํต์ ์ด ํ์ํ๋ค.
์๋ฒ์์ ํต์ ์๋ ๋ฌผ๋ฆฌ์ ์ธ ์๊ฐ ์ง์ฐ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์์ฒญ๊ณผ ๋์์ ๋ฐ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก, ์์ฒญ ์ดํ ์๋ต์ด ์ค๊ธฐ๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์๋ต ์ ํธ๋ฅผ ๋ฐ์์ผ ํ๋ค. ๋ํ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก,
- ์ฝ๋ฐฑ ํจํด
- Promise ๊ฐ์ฒด (ES6)
- async - await
์ ์ฌ์ฉํด ์๋ต์ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ์๋ต ์ ํธ๋ฅผ ๋ฐ์ ์ ์๋ค.
Promise
- ๋๊ธฐ Pending: ์ํ ์ค
- ์ดํ fulfilled: ์ํ ์ฑ๊ณต โก๏ธ then
- ๊ฑฐ๋ถ rejected: ์ํ ์คํจ โก๏ธ catch
Promise๋ ์์ ์ํ ์ค ํ๋์ ์ํ๋ฅผ ๊ฐ๋๋ค.
๋๊ธฐ์ ๋น๋๊ธฐ
- ๋๊ธฐ (Synchronous)
- ์ง๋ ฌ์ ์ผ๋ก ์์ ์ ์ํํ๋ ๋ฐฉ์
- ์์ฒญ ์ดํ, ์๋ต์ ๋ฐ์์ผ์ง ๋ค์ ๋์์ด ์ด๋ค์ง๋ ๋ฐฉ์
- ๋น๋๊ธฐ (Asynchronous)
- ๋ณ๋ ฌ์ ์ผ๋ก ์์ ์ ์ํํ๋ ๋ฐฉ์
- ์์ฒญ ์ดํ, ์๋ต ์๋ฝ ์ฌ๋ถ์ ์๊ด์์ด ๋ค์ ์์ ์ด ๋์ํ๋ ๋ฐฉ์
async - await
๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด ์ค ํ๋๋ก ๊ฐ๋ ์ฑ์ด ์ข์ง ์์ Promise์ ๋จ์ ์ ๋ณด์ํ๋ค.
ํจ์์ async ํค์๋๋ฅผ ๋ถ์ฌ Promise ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋๋ก ํ๋ค.
await๋ฅผ Promise ์ธ์คํด์ค ์์ ์ถ๊ฐํด ์ฑ๊ณต ์ฒ๋ฆฌ ์ดํ์ ๋ค์ ํจ์ ๋ช ๋ น๋ฌธ์ด ์คํ๋๋๋ก ํ๋ค.
์น ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์ฑ ์
ํ๋ก์ ํธ์์ ์น ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ ธ์ผํ ์ฑ ์์ ๋ํด ํ์ตํ๋ค.
- ๊ตฌํ์์ , ๋น ๋ฅด๊ณ ์์ฐ์ ์ผ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค.
- ์๋ํ: ๊ฐ๋ฐ ์๋๋ฅผ ๋ฎ์ถ๋ค๋ฉด ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ์๋ํ ๋ฐ ๊ฐํธ ํ์
- ์ฑ ์ ๋ถ๋ด: ๋ค๋ฅธ ๊ฐ๋ฐ ์์ค ํ์ฉ
- ๊ตฌํ์ ๋์์ฃผ๋ ๋๊ตฌ๋ก๋ npm, sass, prettier ๋ฑ์ด ์๋ค.
- ๋น ๋ฅด๊ฒ ์๋น์ค์ ์ ์ฉํด์ผ ํ๋ค.
- ์ง์์ ํตํฉ ๋ฐฐํฌ: ๊ฐ๋ฐ๋จ๊ณ โก๏ธ ๋ฐฐํฌ๋จ๊ณ
- ๊ฐ๋ฐ๋จ๊ณ) ๊ฐ๋ฐ์ ์์ฐ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์งํํด์ผ ํจ
- ๋ฐฐํฌ๋จ๊ณ) ํ์ผ์ ์๋ฒ์ ์ ๋ก๋
- ์ฌ์ดํด์ด ๋ฐ๋ณต์ , ์ต์ ํ๋ ์ํ๋ก ์ด๋ฃจ์ด์ง ์ ์๋๋ก ์ ํ ์ด ํ์
- ๋ฐฐํฌ๋ฅผ ๋์์ฃผ๋ ๋๊ตฌ๋ก๋ babel, vite ๋ฑ์ด ์๋ค.
- ์ง์์ ํตํฉ ๋ฐฐํฌ: ๊ฐ๋ฐ๋จ๊ณ โก๏ธ ๋ฐฐํฌ๋จ๊ณ
NPM
NPM ๋ ธ๋ ํจํค์ง ๋ฉ๋์ ์ด๋ฉฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง๋ ์ฝ๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ด ํ๋ก์ ํธ ์์ ์ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค.
ํจํค์ง๋ค์ ์ค์นํ ๊ฒฝ์ฐ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ฐ NPM์ด ๋ฒ์ ๊ด๋ฆฌ, ์ฝ๋ ์ข ์์ฑ ๊ด๋ฆฌ ๋ฑ์ ๋ด๋นํ๋ ์ญํ ์ ํ๋ค.
์คํ์ผ๋ง์ฉ pre-processor (์ ์ฒ๋ฆฌ๊ธฐ)
- Sass: CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ก CSS ํ๊ณ์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ ์ฒ๋ฆฌ๊ธฐ์ด๋ค. ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ฝ๋์ ์ฌ์ฌ์ฉ์ ์ ๋ฆฌํ CSS ํ์ฅ ์ธ์ด์ด๋ค.
๋ฒ๋ค๋ฌ
๋ฒ๋ค๋ฌ๋ ์์กด์ฑ ์๋ ๋ชจ๋ ์ฝ๋๋ฅผ ํ๋์ ํ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๋๊ตฌ์ด๋ค.
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ํธ์๋ฅผ ์ํด ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉ์ ํ๋๋ฐ ๋ธ๋ผ์ฐ์ ์์ ์ฝ๋์ ์ฉ๋์ ์ต์ ํํ๊ฑฐ๋, ๋ฆฌ์์ค ์ต์ ํ, ์บ์ฑ, ๋ฒ์ ๋์ ๋ฑ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์์ ๋ ์ฝ๋๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ต์ ํ ๋ ์ ์๋๋ก ์ ๋ฆฌํ๋ ์ค๊ฐ ์ ์ฒ๋ฆฌ๊ธฐ๊ฐ ํ์ํ๋ค.
์ด๋ฌํ ์ค๊ฐ ์ ์ฒ๋ฆฌ๊ธฐ๋ก ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋๋ก ๋ ์ฌ๋ฌ ํ์ผ๋ค์ ํฉ์ณ์ค๋ค.
๋ฒ๋ค๋ฌ๋ฅผ ์ํ ๋๊ตฌ๋ก๋ webpack, vite, percel ๋ฑ์ด ์๋ค.
ํ์ ์ ์ํ ์ ํ
ํ๋ก์ ํธ๋ ๋๋ถ๋ถ ์ฌ๋ฌ๋ช ์ด์ ๊ฐ๋ฐํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ ์ ์์ฐ์ฑ์ ์ฌ๋ฆฌ๊ธฐ ์ํด git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๋ค.
- git
- branch: ์ ์ ๊ฐ์ ์์ ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ๋ฆฌ๋์ด ๋์์ ์์ ํ ์ ์์
- merge: ์์ ์ด ์๋ฃ๋๋ฉด ์ฝ๋๋ฅผ ๋ณํฉํ๋ ๊ณผ์ ์ด ํ์
- ํ์ผ ์์ ์ด ์ด๋ฃจ์ด์ง๋ฉด, ํด๋น ์์ ์ ์์ ์ฌํญ๋ค์ ์ค๋ ์ทํ์ฌ ์ ์ฅํ๊ธฐ ์ํด (git add ํ์ผ๋ช ) ๋ฉ์์ง์ ํจ๊ป ๋ก๊ทธ๋ฅผ ๋จ๊ธด๋ค. (git commit -m "๋ฉ์์ง")
- github (git ์ ์ฅ์ ํธ์คํ
์น์๋น์ค)
- ํ์ผ ๊ด๋ฆฌ ํ๊ฒฝ
- ๋ด ์ปดํจํฐ์์ ๊ด๋ฆฌ: local
- ์๊ฒฉ ์ ์ฅ์์์ ๊ด๋ฆฌ: remote
- git์์ ์ปท๋ฐํ ๋ด์ญ์ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ ค ๊ด๋ฆฌํ๋ค.
- git remote add {{ ์๊ฒฉ ์ด๋ฆ }} {{ ์๊ฒฉ ์ ์ฅ์ url }}
- git push {{ ์๊ฒฉ ์ด๋ฆ }} ๋ธ๋์น๋ช
- ํ์ผ ๊ด๋ฆฌ ํ๊ฒฝ
๋ํ, ํจ๊ป ์์ ์ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ์ฌ ์ ํํ ์์ ํ ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ ํ๋ค.
- ์ฝ๋ ํฌ๋งทํ , ๋ค์ด๋ฐ ๊ท์น ๋ฑ์ ์ ํด ์ฝ๋๋ฅผ ํต์ผํํ์ฌ ์ฝ๋ ๊ฐ๋ ์ฑ์ ์ฌ๋ฆฐ๋ค.
- ์ฝ๊ธฐ ์ข์ ๋ฌธ์ ํํ๋ก ์ ์งํด์ผ ํ๋ค. โก๏ธ testable module...
- ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ดํดํ ์ ์๋๋ก ํ์ํ๋ฉด ์ฃผ์์ ์ฌ์ฉํ๋ค.
ํ๋ก์ ํธ ์ ํ
- npm init โก๏ธ package.json ์์ฑ
- vite ์ค์น
Vite
Vite, ์ฐจ์ธ๋ ํ๋ฐํธ์๋ ๊ฐ๋ฐ ํด
ko.vitejs.dev
- vite์์ CSS pre-processor ์ฌ์ฉ
https://ko.vitejs.dev/guide/features.html#css-pre-processors
Vite
Vite, ์ฐจ์ธ๋ ํ๋ฐํธ์๋ ๊ฐ๋ฐ ํด
ko.vitejs.dev
- JSON server: json ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์๋ฎฌ๋ ์ด์ ์ ์ํ REST API Mock server๋ฅผ ๊ตฌ์ถํ ์ ์๋ ํด
npm i json-server
์ฐธ๊ณ ) ํ์ฌ ์ค์น ์ alpha๋ฒ์ ์ผ๋ก ์ค์น๊ฐ ๋์ด์ ๊ธฐ๋ณธ ๋ฒ์ ์ผ๋ก ์ค์นํ๋ ค๋ฉด ์ํ๋ ๋ฒ์ ๋ช ์ ๋ค์ ๋ถ์ฌ ์ค์นํด์ผ ํจ
npm i json-server@0.X.X
๋ง๋ฌด๋ฆฌ
์ค๋์ ํ๋ก์ ํธ ์์ ์ ์ํ ํ๋ก์ ํธ ์ ํ ์ ๋ง๋ฌด๋ฆฌ ํ๋ค. ํ๋ก์ ํธ ์ ํ ๋ ๊ฝค ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์ด๋ ค์ด ์ผ์ด๋ค.
ํนํ, json server๊ฐ ์์ ๋๋ก ๋์ํ์ง ์์์ ํค๋ฉ๋ค๊ฐ ๋ฒ์ ๋ฌธ์ ์ธ ๊ฑธ ์์๋๋ค.
๋ฌธ์์์ โ ๏ธ์ด ๋ฒ์ ์ ์ํ๋ฒ์ ์ ๋๋ค!๋ผ๊ณ ๋งจ ์ฒจ๋ถํฐ ๊ฒฝ๊ณ ๋ฅผ ์คฌ๋๋ฐ... ์์ด ๋ฌธ์๋ผ ๋์ด ์นจ์นจํ๋๋ณด๋ค.
์์ฑ๋ ๋ฌธ์๋ฅผ ์ ์ฝ๋ ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ๋ค.
