Skip to content

Latest commit

ย 

History

History
249 lines (226 loc) ยท 7.68 KB

File metadata and controls

249 lines (226 loc) ยท 7.68 KB

์กฐํ˜„์˜ ์ง€์Œ ๊ธธ๋ฒ—์ถœํŒ์‚ฌ 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 ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์€ ์ž๋ฃŒ

์ฑ…์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ฐพ์•„๋ณด๊ธฐ