1. Express

ํ‚ค์›Œ๋“œ

  • Express ๋ž€

  • URL ๊ตฌ์กฐ

  • REST API

  • HTTP Method(CRUD)

Express

Node.js ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

Node.js

  • V8์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„

    • ๋Ÿฐํƒ€์ž„ : ํŠน์ • ์–ธ์–ด๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ

  • ๋‹ค์–‘ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ(์ฃผ๋กœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰)

Express

  • Node.js์—์„œ ํšจ์œจ์ ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ

  • HTTP ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฉ”์†Œ๋“œ ๋ฐ ๋ฏธ๋“ค์›จ์–ด๋กœ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ API๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

ts-node

.ts ํŒŒ์ผ์„ ๋”ฐ๋กœ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ  node.js์—์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ

Express ํ™˜๊ฒฝ ์„ค์ •

.gitignore ์„ธํŒ…

ํŒจํ‚ค์ง€ ์ดˆ๊ธฐํ™”

TypeScript

ESLint

ts-node

Express ์„ค์น˜

Hello World ์˜ˆ์ œ

app.ts http://localhost:3000/์œผ๋กœ GET์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด Hello, world!๋ฅผ ์‘๋‹ต

ts-node๋กœ ์‹คํ–‰

์ฝ”๋“œ ์ˆ˜์ •์‹œ ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋˜๋„๋ก nodemon ์‚ฌ์šฉ

package.json script ์„ธํŒ…

REST API

  • URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„

    • /write-post ์ฒ˜๋Ÿผ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜์ง€ ์•Š๊ณ  /post ์ฒ˜๋Ÿผ ์ž์›๋งŒ ๋ช…์‹œ

  • ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method๋กœ ํ‘œํ˜„(GET, POST, PUT, DELETE)

    • Collection(๋ณต์ˆ˜)๊ณผ Item(Element)(๋‹จ์ˆ˜)๋กœ ๋‚˜๋‰จ

    • Read (Collection) โ†’ GET /products โ‡’ ์ƒํ’ˆ ๋ชฉ๋ก ํ™•์ธ

    • Read (Item) โ†’ GET /products/{id} โ‡’ ํŠน์ • ์ƒํ’ˆ ์ •๋ณด ํ™•์ธ

    • Create (Collection Pattern ํ™œ์šฉ) โ†’ POST /products โ‡’ ์ƒํ’ˆ ์ถ”๊ฐ€ (JSON ์ •๋ณด ํ•จ๊ป˜ ์ „๋‹ฌ)

    • Update (Item) โ†’ PUT ๋˜๋Š” PATCH /products/{id} โ‡’ ํŠน์ • ์ƒํ’ˆ ์ •๋ณด ๋ณ€๊ฒฝ (JSON ์ •๋ณด ํ•จ๊ป˜ ์ „๋‹ฌ)

    • Delete (Item) โ†’ DELETE /products/{id} โ‡’ ํŠน์ • ์ƒํ’ˆ ์‚ญ์ œ

Thinking in React ์˜ˆ์ œ

http://localhost:3000/products ์ ‘์†ํ•˜์—ฌ ํ™•์ธ

CommandLine์œผ๋กœ ํ™•์ธ

curl localhost:3000/products

http localhost:3000/products

Last updated