์กฐํ์ ์ง์ ๊ธธ๋ฒ์ถํ์ฌ 664์ชฝ 32000์
์ธํ๋ฐ์์ ์ค์ ๋ถ๋ค์ ch14๊ฐ ch9๋ณด๋ค ๋จผ์ ๋์จ๋ค๋ ๊ฒ์ ์์๋์๋ฉด ๋ฉ๋๋ค.
์์ค ์ฝ๋๋ฅผ ๋ฐ์ผ์ ํ์๋ ํฐ๋ฏธ๋์์ ์ฝ๋์ ๋ฃจํธ๊ฒฝ๋ก(package.json์ด ์๋)๋ก ์ด๋ํ์ ํ npm i๋ฅผ ์ ๋ ฅํด์ node_modules๋ฅผ ์ค์นํ์ ์ผ ํฉ๋๋ค. node_modules๋ ์ด ์์ค ์ฝ๋์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค.
์ฝ๋์ ์คํ&์ค๋ฅ๊ฐ ์๊ฑฐ๋ ๊ฐ์ ์ ์ด ์๋ค๋ฉด ์ ๊ทน Pull Request ๋ณด๋ด์ฃผ์๋ฉด ๋ฉ๋๋ค!
MySQL์ 5.7๋ฒ์ ์ ์ค์นํ์๊ณ (8๋ฒ์ ์ ์ค์นํ๋ฉด legacy authentication ์์ฑ์ ํ์ฑํํด์ผ ํฉ๋๋ค) Sequelize๋ 4๋ฒ์ ์ ์ค์นํ์ ์ผ(npm i sequelize@4) find ๊ด๋ จ ์๋ฌ๊ฐ ์ ๋ฉ๋๋ค.
1์ฅ ๋ ธ๋ ์์ํ๊ธฐ
- 1.1 ํต์ฌ ๊ฐ๋
์ดํดํ๊ธฐ
- 1.1.1 ์๋ฒ
- 1.1.2 ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์
- 1.1.3 ์ด๋ฒคํธ ๊ธฐ๋ฐ
- 1.1.4 ๋ ผ๋ธ๋กํน I/O
- 1.1.5 ์ฑ๊ธ ์ค๋ ๋
- 1.2 ์๋ฒ๋ก์์ ๋ ธ๋
- 1.3 ์๋ฒ ์ธ์ ๋ ธ๋
- 1.4 ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ
- 1.4.1 ๋ ธ๋ ์ค์นํ๊ธฐ
- 1.4.2 npm์ ๋ฒ์ ์ ๋ฐ์ดํธํ๊ธฐ
- 1.4.3 VS Code ์ค์นํ๊ธฐ
- 1.5 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
2์ฅ ์์๋์ด์ผ ํ ์๋ฐ์คํฌ๋ฆฝํธ
- 2.1 ES2015+
- 2.1.1 const, let
- 2.1.2 ํ ํ๋ฆฟ ๋ฌธ์์ด
- 2.1.3 ๊ฐ์ฒด ๋ฆฌํฐ๋ด
- 2.1.4 ํ์ดํ ํจ์
- 2.1.5 ๋น๊ตฌ์กฐํ ํ ๋น
- 2.1.6 ํ๋ก๋ฏธ์ค
- 2.1.7 async/await
- 2.2 ํ๋ฐํธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ
- 2.2.1 AJAX
- 2.2.2 FormData
- 2.2.3 encodeURLComponent, decodeURLComponent
- 2.2.4 data attribute์ dataset
- 2.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
3์ฅ ๋ ธ๋ ๊ธฐ๋ฅ ์์๋ณด๊ธฐ
- 3.1 REPL ์ฌ์ฉํ๊ธฐ
- 3.2 JS ํ์ผ ์คํํ๊ธฐ
- 3.3 ๋ชจ๋๋ก ๋ง๋ค๊ธฐ
- 3.4 ๋
ธ๋ ๋ด์ฅ ๊ฐ์ฒด ์์๋ณด๊ธฐ
- 3.4.1 global
- 3.4.2 console
- 3.4.3 ํ์ด๋จธ
- 3.4.4 filename, dirname
- 3.4.5 module, exports
- 3.4.6 process
- 3.5 ๋
ธ๋ ๋ด์ฅ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ
- 3.5.1 os
- 3.5.2 path
- 3.5.3 url
- 3.5.4 querystring
- 3.5.5 crypto
- 3.5.6 util
- 3.6 ํ์ผ ์์คํ
์ ๊ทผํ๊ธฐ
- 3.6.1 ๋๊ธฐ ๋ฉ์๋์ ๋น๋๊ธฐ ๋ฉ์๋
- 3.6.2 ๋ฒํผ์ ์คํธ๋ฆผ ์ดํดํ๊ธฐ
- 3.6.3 ๊ธฐํ fs ๋ฉ์๋
- 3.7 ์ด๋ฒคํธ ์ดํดํ๊ธฐ
- 3.8 ์์ธ ์ฒ๋ฆฌํ๊ธฐ
- 3.9 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
4์ฅ http ๋ชจ๋๋ก ์น ์๋ฒ ๋ง๋ค๊ธฐ
- 4.1 ์์ฒญ๊ณผ ์๋ต ์ดํดํ๊ธฐ
- 4.2 ์ฟ ํค์ ์ธ์ ์ดํดํ๊ธฐ
- 4.3 REST API์ ๋ผ์ฐํ
- 4.4 https์ http2
- 4.5 cluster
- 4.6 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
5์ฅ ํจํค์ง ๋งค๋์
- 5.1 npm ์์๋ณด๊ธฐ
- 5.2 package.json์ผ๋ก ํจํค์ง ๊ด๋ฆฌํ๊ธฐ
- 5.3 ํจํค์ง ๋ฒ์ ์ดํดํ๊ธฐ
- 5.4 ๊ธฐํ npm ๋ช ๋ น์ด
- 5.5 ํจํค์ง ๋ฐฐํฌํ๊ธฐ
- 5.6 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
6์ฅ ์ต์คํ๋ ์ค ์น ์๋ฒ ๋ง๋ค๊ธฐ
- 6.1 Express-generator๋ก ๋น ๋ฅด๊ฒ ์ค์นํ๊ธฐ
- 6.2 ์ต์คํ๋ ์ค ๊ตฌ์กฐ ์ดํดํ๊ธฐ
- 6.3 ๋ฏธ๋ค์จ์ด
- 6.3.1 ์ปค์คํ ๋ฏธ๋ค์จ์ด ๋ง๋ค๊ธฐ
- 6.3.2 morgan
- 6.3.3 body-parser
- 6.3.4 cookie-parser
- 6.3.5 static
- 6.3.6 express-session
- 6.3.7 connect-flash
- 6.4 Router ๊ฐ์ฒด๋ก ๋ผ์ฐํ ๋ถ๋ฆฌํ๊ธฐ
- 6.5 ํ ํ๋ฆฟ ์์ง ์ฌ์ฉํ๊ธฐ
- 6.5.1 Pug(Jade)
- 6.5.2 EJS
- 6.5.3 ์๋ฌ ์ฒ๋ฆฌ ๋ฏธ๋ค์จ์ด
- 6.6 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
7์ฅ MySQL
- 7.1 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋?
- 7.2 MySQL ์ค์นํ๊ธฐ
- 7.2.1 ์๋
- 7.2.2 macOS
- 7.2.3 ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ)
- 7.3 ์ํฌ๋ฒค์น ์ค์นํ๊ธฐ
- 7.3.1 ์๋
- 7.3.2 macOS
- 7.3.3 ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ)
- 7.3.4 ์ปค๋ฅ์ ์์ฑํ๊ธฐ
- 7.4 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ
์ด๋ธ ์์ฑํ๊ธฐ
- 7.4.1 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑํ๊ธฐ
- 7.4.2 ํ ์ด๋ธ ์์ฑํ๊ธฐ
- 7.5 CRUD ์์
ํ๊ธฐ
- 7.5.1 Create(์์ฑ)
- 7.5.2 Read(์กฐํ)
- 7.5.3 Update(์์ )
- 7.5.4 Delete(์ญ์ )
- 7.6 ์ํ๋ผ์ด์ฆ ์ฌ์ฉํ๊ธฐ
- 7.6.1 MySQL ์ฐ๊ฒฐํ๊ธฐ
- 7.6.2 ๋ชจ๋ธ ์ ์ํ๊ธฐ
- 7.6.3 ๊ด๊ณ ์ ์ํ๊ธฐ
- 7.6.4 ์ฟผ๋ฆฌ ์์๋ณด๊ธฐ
- 7.6.5 ์ฟผ๋ฆฌ ์ํํ๊ธฐ
- 7.7 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
8์ฅ ๋ชฝ๊ณ ๋๋น
- 8.1 NoSQL vs SQL
- 8.2 ๋ชฝ๊ณ ๋๋น ์ค์นํ๊ธฐ
- 8.2.1 ์๋
- 8.2.2 macOS
- 8.2.3 ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ)
- 8.3 ์ปดํผ์ค ์ค์นํ๊ธฐ
- 8.3.1 ์๋
- 8.3.2 macOS
- 8.3.3 ๋ฆฌ๋ ์ค(์ฐ๋ถํฌ)
- 8.3.4 ์ปค๋ฅ์ ์์ฑํ๊ธฐ
- 8.4 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์ปฌ๋ ์ ์์ฑํ๊ธฐ
- 8.5 CRUD ์์
ํ๊ธฐ
- 8.5.1 Create(์์ฑ)
- 8.5.2 Read(์กฐํ)
- 8.5.3 Update(์์ )
- 8.5.4 Delete(์ญ์ )
- 8.6 ๋ชฝ๊ตฌ์ค ์ฌ์ฉํ๊ธฐ
- 8.6.1 ๋ชฝ๊ณ ๋๋น ์ฐ๊ฒฐํ๊ธฐ
- 8.6.2 ์คํค๋ง ์ ์ํ๊ธฐ
- 8.6.3 ์ฟผ๋ฆฌ ์ํํ๊ธฐ
- 8.7 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
9์ฅ ์ต์คํ๋ ์ค๋ก SNS ์๋น์ค ๋ง๋ค๊ธฐ
- 9.1 ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์ถ๊ธฐ
- 9.2 ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธํ ํ๊ธฐ
- 9.3 Passport ๋ชจ๋๋ก ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ
- 9.3.1 ๋ก์ปฌ ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ
- 9.3.2 ์นด์นด์ค ๋ก๊ทธ์ธ ๊ตฌํํ๊ธฐ
- 9.4 Multer ๋ชจ๋๋ก ์ด๋ฏธ์ง ์ ๋ก๋ ๊ตฌํํ๊ธฐ
- 9.5 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 9.5.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 9.5.2 ํต์ฌ ์ ๋ฆฌ
- 9.6 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
10์ฅ ์น API ์๋ฒ ๋ง๋ค๊ธฐ
- 10.1 API ์๋ฒ ์ดํดํ๊ธฐ
- 10.2 ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์ถ๊ธฐ
- 10.3 JWT ํ ํฐ์ผ๋ก ์ธ์ฆํ๊ธฐ
- 10.4 ํธ์ถ ์๋ฒ ๋ง๋ค๊ธฐ
- 10.5 SNS API ์๋ฒ ๋ง๋ค๊ธฐ
- 10.6 ์ฌ์ฉ๋ ์ ํ ๊ตฌํํ๊ธฐ
- 10.7 CORS ์ดํดํ๊ธฐ
- 10.8 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 10.8.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 10.8.2 ํต์ฌ ์ ๋ฆฌ
- 10.8.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
11 ์ฅ ์น ์์ผ์ผ๋ก ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์กํ๊ธฐ
- 11.1 ์น ์์ผ ์ดํดํ๊ธฐ
- 11.2 ws ๋ชจ๋๋ก ์น ์์ผ ์ฌ์ฉํ๊ธฐ
- 11.3 Socket.IO ์ฌ์ฉํ๊ธฐ
- 11.4 ์ค์๊ฐ GIF ์ฑํ ๋ฐฉ ๋ง๋ค๊ธฐ
- 11.5 ์ฑํ ๊ตฌํํ๊ธฐ
- 11.6 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 11.6.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 11.6.2 ํต์ฌ ์ ๋ฆฌ
- 11.6.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
12์ฅ ์ค์๊ฐ ๊ฒฝ๋งค ์์คํ ๋ง๋ค๊ธฐ
- 12.1 ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์ถ๊ธฐ
- 12.2 ์๋ฒ์ผํธ ์ด๋ฒคํธ ์ฌ์ฉํ๊ธฐ
- 12.3 ์ค์ผ์ค๋ง ๊ตฌํํ๊ธฐ
- 12.4 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 12.4.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 12.4.2 ํต์ฌ ์ ๋ฆฌ
- 12.4.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
13์ฅ ๊ตฌ๊ธ API๋ก ์ฅ์ ๊ฒ์ ์๋น์ค ๋ง๋ค๊ธฐ
- 13.1 ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ฐ์ถ๊ธฐ
- 13.2 Google Places API ์ฌ์ฉํ๊ธฐ
- 13.3 Google Maps API ์ฌ์ฉํ๊ธฐ
- 13.4 ์์น ๊ธฐ๋ฐ ๊ฒ์ ์ํํ๊ธฐ
- 13.5 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 13.5.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 13.5.2 ํต์ฌ ์ ๋ฆฌ
- 13.5.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
14์ฅ CLI ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
- 14.1 ๊ฐ๋จํ ์ฝ์ ๋ช ๋ น์ด ๋ง๋ค๊ธฐ
- 14.2 Commander, Inquirer ์ฌ์ฉํ๊ธฐ
- 14.3 ํ๋ก์ ํธ ๋ง๋ฌด๋ฆฌํ๊ธฐ
- 14.3.1 ์ค์ค๋ก ํด๋ณด๊ธฐ
- 14.3.2 ํต์ฌ ์ ๋ฆฌ
- 14.3.3 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
15์ฅ AWS์ GCP๋ก ๋ฐฐํฌํ๊ธฐ
- 15.1 ์๋น์ค ์ด์์ ์ํ ํจํค์ง
- 15.1.1 morgan๊ณผ express-session
- 15.1.2 sequelize
- 15.1.3 cross-env
- 15.1.4 retire
- 15.1.5 pm2
- 15.1.6 winston
- 15.1.7 helmet, hpp
- 15.1.8 connect-redis
- 15.1.9 nvm, n
- 15.2 Git๊ณผ GitHub ์ฌ์ฉํ๊ธฐ
- 15.2.1 Git ์ค์นํ๊ธฐ
- 15.2.2 GitHub ์ฌ์ฉํ๊ธฐ
- 15.3 AWS ์์ํ๊ธฐ
- 15.4 AWS์ ๋ฐฐํฌํ๊ธฐ
- 15.5 GCP ์์ํ๊ธฐ
- 15.6 GCP์ ๋ฐฐํฌํ๊ธฐ
- 15.7 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
16์ฅ ์๋ฒ๋ฆฌ์ค ๋ ธ๋ ๊ฐ๋ฐ
- 16.1 ์๋ฒ๋ฆฌ์ค ์ดํดํ๊ธฐ
- 16.2 AWS S3 ์ฌ์ฉํ๊ธฐ
- 16.3 AWS Lambda ์ฌ์ฉํ๊ธฐ
- 16.4 Google Cloud Storage ์ฌ์ฉํ๊ธฐ
- 16.5 Google Cloud Functions ์ฌ์ฉํ๊ธฐ
- 16.6 ํจ๊ป ๋ณด๋ฉด ์ข์ ์๋ฃ
์ฑ ์ ๋ง๋ฌด๋ฆฌํ๋ฉฐ
์ฐพ์๋ณด๊ธฐ
