
// ์ผ๋ฐ ๋ฌธ์์ด ๋ด์์ ์ค๋ฐ๊ฟ ๋ฑ์ ๊ณต๋ฐฑ์ ํํํ๋ ค๋ฉด ๋ฐฑ์ฌ๋์(\)๋ก ์์ํ๋ ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. var template = '\n\tHome // // ์ค๋ฐ๊ฟ๊ณผ ๋ค์ฌ์ฐ๊ธฐ๊ฐ ์ ์ฉ๋ HTML ๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์ด \n ๋ค์ํ์ผ๋ก ์ด๋, \t ํญ(์ํ) ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ๋ฃ์ด ์ฌ์ฉํด ์์ฑํ๋ค. var template2 = ` Home ` ์ผ๋ฐ ๋ฌธ์์ด๊ณผ ๋ฌ๋ฆฌ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ด์์๋ ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ค๋ฐ๊ฟ์ด ํ์ฉ๋๋ฉฐ, ๋ชจ๋ ๊ณต๋ฐฑ๋ ์๋ ๊ทธ๋๋ก ์ ์ฉ๋๋ค. var first = 'Ung-mo'; var last = 'Lee'; // ES5 ๋ฌธ์์ด ์ฐ๊ฒฐ console.log('My name is ' + first + ' ' + last + '.'); // My name is U..

var userId = 1; var userName = 'Lee'; // ๊ฐ์ฒด๋ ๋ฐฐ์ด ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋๋ก ๊ทธ๋ฃนํํด์ ํ๋์ ๊ฐ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. var user = { id: 1, name: 'Lee' }; var users = [ { id: 1, name: 'Lee' }, { id: 2, name: 'Kim' } ]; console.log(score); // undefined var score; // 1. ๋ณ์ ์ ์ธ score = 80; // 2. ๊ฐ์ ํ ๋น console.log(score); // 80 ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ์๋จ์ด๋ค. console.log(score2); // undefined score2 = 80; var score2; console.lo..

๋ธ๋ผ์ฐ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ 0 + - ๋๋ฒ๊น ๋ฐฉ๋ฒ 1. ์ฝ์์ฐฝ์ ์ด์ด ์๋ฌ์ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ค. 2. ์๋์ผ๋ก ๋์ด๊ฐ ์์คํจ๋์ ํด๋น ์๋ฌ๊ฐ ํ์๋ ์ค(์ผ์ชฝ ๋ฒํธ)์ ํด๋ฆญํ๋ค.(๋ธ๋ ์ดํฌ ํฌ์ธํธ) 3. ์๋ฌ๋ฅผ ์ฌํํ๊ธฐ ์ํด ์นํ์ด์ง์ ๋ฒํผ(์๋ฌ๋ฐ์ ์ง์ )์ ๋ค์ ํด๋ฆญํ๋ค. 4. ๋๋ฒ๊น ๋ชจ๋ ํ์ฑํ(๋๋ฒ๊น ๋ชจ๋๊ฐ ํ์ฑํ๋์ง ์์ผ๋ฉด ์นํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ๋ค.) 5. ์์คํจ๋์ ๋ธ๋ ์ดํฌ ํฌ์ธํธ๋ฅผ ์ฐ์ด ๋์ ์ค์ ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๋ค ๋๋ฉด ์๋ฌ ๋ฐ์์์ธ์ ์ ์ ์๋ค. ๋ด์ฅ ํฐ๋ฏธ๋ const arr = [1, 2, 3]; arr.forEach(console.log); // ๋ด์ฅ ํฐ๋ฏธ๋์ ์ด๊ณ 'node [ํ์ผ์ด๋ฆ]'์ ์ ๋ ฅํ๋ฉด js๋ฅผ ์คํ์ํจ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค. const arr2 = [1, 2, 3]; arr.forE..

ํ๋ก์ ํธ ํดํฐ ์์ฑ ํด๋น ํด๋ ์์ผ๋ก ๋ค์ด๊ฐ์ ๋ฆฌ์กํธ ์ค์นํ๊ธฐ // ํ์ฌ ํด๋์ ๋ฆฌ์กํธ ์ค์น npx create-react-app . npx๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด node.js์ ์ค์น๊ฐ ํ์ํจ. ๐https://nodejs.org/ko/ ์ค์นํ ๋ฆฌ์กํธ ๊ฐ๋ฐํ๊ฒฝ ์คํํ๊ธฐ npm start ๋ฐฐํฌ // buildํด๋ ์์ฑ, ํ์ผ์ด ๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํด ๋ฐฐํฌ์ฉ ํ์ผ์ ๋ง๋ฆ npm run build // build ํด๋ ์์ index.html ์๋ฒ ์คํ npx serve -s build

ํด๋ ์์ฑ mkdir ํด๋น ํด๋๋ก ์ด๋ cd ์ด๊ธฐํ (package.json ์์ฑ) npm init -y TypeScript ์ค์น // ํ๋ก์ ํธ์ ์ค์น npm i typescript -D // ์ ์ญ ์ค์น npm i -g typescript ํ์ค ์ปดํ์ผ ์ด๊ธฐํ (tsconfig.json ์์ฑ) // ์ด๊ธฐํ npx tsc --init // ํด๋น ํด๋ ์์ ๋ชจ๋ tsํ์ผ์ tsconfig.json์ ๋ง์ถฐ ์ปดํ์ผ npx tsc

๋ค๋ฅธ ์ฌ๋์ repository๋ฅผ ๋ก์ปฌ๋ก ํด๋ก ํ๋ ค๊ณ ํ๋๋ฐ Repository not found.๋ผ๋ ์๋ฌ ๋ฌธ๊ตฌ๊ฐ ๋ํ๋๋ฉฐ clone์ด ๋์ง ์์๋ค. ์ด์ ๋ฅผ ์ฐพ์๋ณด๋ Private repository๋ฅผ cloneํ๋ ค ํ ๋ ๋ํ๋๋ ์๋ฌ ๋ฌธ๊ตฌ๋ผ๊ณ ํ๋ค. 1. ํ๋ฉด ์ค๋ฅธ์ชฝ ์๋จ ๋ด ํ๋กํ์ ํด๋ฆญํ ํ 'Settings'๋ฅผ ํด๋ฆญ 2. ์ผ์ชฝ ๋ฉ๋ด ์ค ๋งจ ์๋ 'Developer settings' ํด๋ฆญ 3. ์ผ์ชฝ ๋ฉ๋ด ์ค ๋งจ ์๋ 'Tokens(classic)' ํด๋ฆญ ํ, 'Generate new token'๋ฅผ ํด๋ฆญํ ํ ํ ํฐ์ ๋ฐ๊ธ๋ฐ๋๋ค. 4. ํ์ ํฐ๋ฏธ๋์ ์๋์ ๊ฐ์ด ์ ๋ ฅํ๋ฉด ์ ์์ ์ผ๋ก git clone์ด ๋๋ค. $git clone https://:@github.com/....

์๋ ๊ตฌํํด์ผ ํ ํ๋ฉด ๋ด๊ฐ ๊ตฌํํ ํ๋ฉด ์ฒ์์ ์์ฑํ ์ฝ๋ ๊ฒ์ํ ์ํ ์ค Ratings์ ๋ชฉ๋ก์ด 1~3๊ฐ์ง๋ก ๋ค์ํ๋ค. ๋๋ฌธ์ API์ ์ ์ฅ๋ ๋ชฉ๋ก์ ๊ฐ์๋ฅผ ์ด์ฉํด ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ณ ๊ทธ ๊ฐ์๋๋ก ๋ฐ๋ณต๋ฌธ์ด ๋ค ๋๋ฉด ๊ทธ ๊ฐ์๋๋ก ํ๋ฉด์ ์ถ๋ ฅ๋๋๋ก ๊ตฌํ ํ๋ ๊ฒ์ด ๋ชฉํ์๋ค. ํ์ง๋ง ๋ฐ๋ณต๋ฌธ ์์์ return์ ํ์ฌ ํจ์๊ฐ ํ๋ฒ ๋ฐ์ ๋์ง ์๊ณ ํจ์๊ฐ ๋๋๋ฒ๋ ค ํ๋ฉด์๋ ์์ฒ๋ผ ํ๊ฐ์ง ๋ชฉ๋ก๋ง ์ถ๋ ฅ๋๋ ๊ฒ์ด์๋ค. ํด๊ฒฐ ๋ฐ๋ณต๋ฌธ ๋ฐ์์ rating์ ๋น ๋ฌธ์์ด๋ก ์ด๊ธฐํ ํด ์ค ๋ค์, ๋ฐ๋ณต๋ฌธ ์์์ ratings์ ์ถ๋ ฅํ ์ฝ๋๋ค์ ์์ฑํ๊ณ ๋ฐ๋ณต๋ฌธ์ด ๋ ๋๋ง๋ค Ratings์ ๊ฐ์๋งํผ ํ๋ํ๋ ๋ํด์ rating์ ์ ์ฅํ ๋ค์ ๋ฐ๋ณต๋ฌธ ๋ฐ์์ return์ ํ์ฌ ๋ฐ๋ณต๋ฌธ์ด ๋ชจ๋ ๋๊ณ ๋ง์ง๋ง์ ๋ฐ๋ณต๋ฌธ์ ์ ์ฅ๋ rating๊ฐ์..

์๋ฌ 1. header์์ main-menu๋ฅผ ํด๋ฆญํ๋ฉด navigation์ด ํ์ฑํ๋ฉ๋๋ค. 2. navigation์ด ํ์ฑํ ๋๋ฉด body๋ถ๋ถ์ scroll-y๋ฅผ ์จ๊น๋๋ค. 2. ์คํฌ๋กค์ ๋ด๋ฆด๋ header๊ฐ ์จ๊ฒจ์ง๊ณ ์คํฌ๋กค์ ์ฌ๋ฆฌ๋ฉด header๊ฐ ํ๋ฉด๋ฐ์์ ์๋๋ก ๋ด๋ ค์ต๋๋ค. 3. โ ๏ธ์๋ฌ ๋ฐ์: ์คํฌ๋กค์ ์ถฉ๋ถํ ๋ด๋ฆฐ ์ดํ ์คํฌ๋กค์ ์ด์ง ์ฌ๋ ค header๊ฐ ํ์ฑํ๋๋ฉด .main-menu์์ li๋ฅผ ๋๋ฅด๋ฉด ์คํฌ๋กค์ ํ ๋ top: 0;์ ๊ณ ์ ๋์ด ์์ด์ผ ํ header๊ฐ ์ฌ๋ผ์ง๋๋ค. 4. ํ ์คํธ ํด๋ณธ ๊ฒฐ๊ณผ: ๋ฉ๋ด๋ฅผ ๋๋ฌ์ overflow:hidden ์ต์ ์ด body ์ ๋ค์ด๊ฐ๋ฉด, ์คํฌ๋กค์ด 1px~4.5px ์ ๋ ๊ฐ์ ๋ก ์ด๋ ํ๋ฉด์ header ๋ฅผ ์จ๊ธฐ๋ ์คํฌ๋กค ์ด๋ฒคํธ๊ฐ ์๋ํ๋ ๊ฒ ์์ธ์ด์์ต๋๋ค. 5. re..

โถ ์ฃผ๋ก ์ค / ๋ํ ํ๋ก์ ํธ์ ์ฌ์ฉ package.json { "name": "webpack-template-basic", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "webpack-dev-server --mode development", "build": "webpack --mode production" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { // (npm i -D copy-webpack-plugin) "copy-webpack-plugin": "^11.0.0", // (npm i -D html-webpack-plugi..

โถ ์ฃผ๋ก ์ / ์คํ ํ๋ก์ ํธ์ ์ฌ์ฉ package.json { "name": "parcel-template-basic", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "parcel index.html", "build": "parcel build index.html" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { // ์ง์ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ช ์ํ๋ฉด autoprefixer๋ก ํ์ฉํจ. (npm i -D autoprefixer) "autoprefixer": "^10.4.12", "parcel-bundler": "^1.12.5", // s..