์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ๋ฐ
- ํฌ๋กค๋ง
- error
- node.js
- ํ์ด์ฌ
- ๊ทธ๋ฆฌ๋
- heapq
- ๋ฐฑ์ค
- ๋๋ฆผ์ฝ๋ฉ
- KDT
- ์ฝ๋ฉ์ ํ
- ๋ชจ๊ฐ์ฝ
- Python
- JS
- ํ๋ก ํธ์๋
- fe
- ์ฝ๋ฉํ ์คํธ
- ํ ์ดํ๋ก์ ํธ
- react
- ๊ตญ๋น์ง์
- ์ฝ๋ฉ
- HTML
- javascript
- mongodb
- CSS
- ํ๋ก์ ํธ
- Til
- ๋ ธ๋ง๋์ฝ๋
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
๋ชฉ๋กServer/Node.js (16)
๐ฑ → ๐ณ
๐ Static : ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ํด๋์ ์์น๋ฅผ ์ง์ ํด ์ฃผ๋ ์ญํ app.use(express.static('views')); ์์ ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ํด๋ ๊ฒฝ๋ก์ ์์์ -> localhost:4000/views ./ ์ ์๋ ๊ฒฝ๋ก -> localhost:4000/views/ ์ ๋์ผํ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋ธ๋ผ์ฐ์ ์์ ์ ๊ทผ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ํด๋๋ฅผ ์ค์ ํ๋ ๋งํผ ๋๋ฌด ๋ง์ ํด๋๋ฅผ ์ ํ๋ ๊ฒ์ ํผํ๋ ํธ์ด ์ข์ ๋ณดํต public ์ด๋ผ๋ ํด๋๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ํด ๋๊ณ ํด๋น ํด๋๋ง ์ค์ public ํด๋์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ๋ฑ์ ํด๋ผ์ด์ธํธ๊ฐ ์ ๊ทผ์ด ๊ฐ๋ฅํ ํด๋๋ก์จ ๋ณดํต CSS, ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ JS, ์ด๋ฏธ์ง ๋ฑ์ ์์น ๐ Express ๊ธฐ๋ณธ ํด๋ ๊ตฌ์กฐ /images = /img /jav..
๐ URL ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ฐฉ๋ฒ โ req.params ๋ฐ์ url์์ :ํ๋ผ๋ฏธํฐ๋ช ์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๋ฉด ํด๋น ๋ด์ฉ์ req.params ์ ๋ด๊ฒจ์ ์ ๋ฌ๋จ app.get('/:id', (req, res) => { console.log(req.params); res.send(`ID ๋ฒํธ๊ฐ ${req.params.id} ์ธ ํ์ ์ ๋ณด`); }); data ์ฌ๋ฌ ๊ฐ ๋ฐ๊ธฐ๋ ๊ฐ๋ฅ req.params ๋ผ๋ ๊ฐ์ฒด์ ๋ด๊ฒจ์ ์ ๋ฌ์ด ๋์ด์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅ app.get('/:id/:name/:gender', (req, res) => { console.log(req.params); res.send(req.params); }); โ req.query params ์ ์ฝ์ ์ ์ ์ ๋ ํํ๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์์ ๋ง ..
๐ Yarn ์ด๋? Facebook์์ ๋ง๋ ๋ ธ๋ ํํค์ง ๊ด๋ฆฌ์ ๋๊ตฌ npm๊ณผ ์ ํํ๊ฒ ๊ฐ์ ์ผ์ ํด์ค(but, ๊ฐ๋ณ๊ณ ๋น ๋ฆ) + React๋ Facebook์์ ๋ง๋ค์ด์ ์ถํ์ ํธ๋ฆฌํจ โ Yarn์ ์ฅ์ ์๋ ํจํค์ง ๋ฐ์ดํฐ๋ฅผ Cache ์ ์ ์ฅํ์ฌ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ๋ค์ด ๋ฐ์ง ์๊ณ ์ค์น ํฉ๋๋ค -> ์๋๊ฐ ๋ ๋น ๋ฆ ๋๋ค ์์ ์ฑ & ๋ณด์์ฑ Yarn ์ ์ด์ ์ npm์ด ์ ๊ณตํ์ง ์๋ yarn.lock ํ์ผ์ ์ ๊ณต ๊ฐ๋จํ ์ ๋ณด๋ง ํฌํจํ๋ packge.json ์ด ์๋๋ผ ๊ฐ ํจํค์ง์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ๋ถ ํฌํจํ๋ lock ํ์ผ์ ์กด์ฌ๋ ์ด๋ ํ๊ฒฝ์์๋ ๊ฐ์ ํจํค์ง๋ฅผ ์ค์นํ ์ ์๋๋ก ๋ณด์ฅ์ ํด์คฌ๊ธฐ ๋๋ฌธ์ ์์ ์ฑ๊ณผ ๋ณด์์ฑ์ด ๋ฐ์ด๋จ ๋์ค์, npm ๋ pakage-lock.json ์ ๋์ ํ์ฌ ์ด์ ๊ฐ์ ๋ฌธ์ ํด๊ฒฐ ์ง๊ธ..
๐ CRUD (Create, Read, Update, Delete) Create -> post read -> get update -> put delete -> delete ๐req, res req(uire) : ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด์จ ์์ฒญ res(ponse): ์์ฒญ์ ๋ฐ๋ฅธ ์๋ฒ์ ์๋ต ๐ nodemon ์ฌ์ฉ "scripts": { "server": "nodemon js/main.js", "dev": "nodemon --watch \"./js/*.js\" --exec \"npm run server\"" }, package.json ํ์ผ ์์ sass ์ฒ๋ผ ํน์ ํ์ผ์๊ฒ --watch ๊ฑธ์ด ์ค ์๋ ์์ ๋ณํ๊ฐ ์ผ์ด๋๋ฉด --exec ์ต์ ์ผ๋ก ๋ช ๋ น์ด ์คํ ๊ฐ๋ฅ ๐ HTTPie ์๋ฒ์์ post ์์ฒญ โ ์ฝ๋ ์ ์ฒด..
๐ ์์ฑ์ ํจ์ ์์ฑ์ ํจ์๋ ์ํ ๊ธฐ๊ณ, ์์ฑ์๋ ์ํ.. -> ES6๊ฐ ๋์ค๋ฉด์ class๊ฐ ๋์ฒด (์ผ์ข ์ syntactic sugar ์) ๐ class ๋? ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์์ ํน์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ณ์์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ์ผ์ข ์ ํ -> ๊ฐ์ฒด์ ์ค๊ณ๋ ์ธ์คํด์คํ : ํด๋์ค(๊ฐ์ฒด์ ์ค๊ณ๋)๋ฅผ ์ด์ฉํด์ ์ค์ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ณผ์ โ๏ธ class ๋ก ๊ตฌํ ์์ // @ts-check class Car { constructor(brand, color) { this.brand = brand; this.color = color; } drive() { console.log(`${this.brand}์ ${this.color}์ ์๋์ฐจ๊ฐ ์ฃผํ ์ค์ ๋๋ค.`); } } const hyundai =..
์ฝ๋ฉ์ ํ ๊ฐ์๋ฅผ ๊ธฐ๋ฐํ์ฌ ๊ณต๋ถํ ๊ธฐ๋ก์ ๋๋ค. https://codingapple.com/ ์ฝ๋ฉ์ ํ ์จ๋ผ์ธ ๊ฐ์ข - ๊ฐ๋ฐ์๋ ๋จ๊ธฐ์์ฑ! ๋จ์ฐ NO1 ๊ฐ์ฌ๋์ NO.1 ๊ฐ์ ์ญ์๋ ๋ช ๊ฐ์ ๋๋ค. IT ์ ๊ณ์ ๋์น๋ NO1. ๊ฐ์ฌ๊ฐ์ ์์ฒญ๋ ๊ฐ์๋ ฅ. ์ฝ๋ฉ์ ํ๋์ ๊ฐ์๋, ์์ฒญ๋๊ฒ ๊ธฐ์ด์ ์ธ ๊ฒ๋ถํฐ ๊ฐ๋ฅด์น๋ ๋ฏ ๋ณด์ด์ง๋ง, ์ค์ ๋ก ๋ค๋ฃจ๋ ๊น์ด๋ ์ codingapple.com โ express ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ const express = require('express'); const app = express(); app.listen(8080, function() { console.log('listening on 8080') }) ๊ตณ์ด ํด์ํด๋ณด์๋ฉด ์ฒซ ๋์ค์ express ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฒจ๋ถ์ ์ฌ์ฉ, ๋ฐ์ app.lis..
sudo๋ก ๊ถํ ์ฃผ์ด ์ค์น ๐ NPM ์ด๋? Node Package Manager ํํค์ง ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋์ json ํ์ผ๋ก ๊ด๋ฆฌํด ์ค โ ํจํค์ง ๊ด๋ฆฌ ์์ํ๊ธฐ npm init -y package.js ํ์ผ์ด ์์ฑ๋๊ณ , ์ด ํ์ผ์์ node.js ๊ด๋ จ package ์ ๋ณด๊ฐ ๋ค ๋ค์ด๊ฐ { "name": "day27", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } ์์ ํ์ผ์ด ์ฒ์ ์์ฑ ๋น์์ package.js์ด๋ค. npm run tes..
๐ ํ๋ ์์ํฌ ํธ๋ฆฌํจ, ๋ณด์์ด ์ข์ ex) bootstrap - css ํ๋ ์์ํฌ(frontend) spring - java ํ๋ ์์ํฌ(backend) ํ๋ก ํธ์๋๋ก๋ ๊ฒฐ๊ณผ๋ง ๋ณด์ฌ์ค ๐ ์๋ฌ ์ปดํ์ผ์๋ฌ(์ ํ ์ค์๋ฌ) : ๋ฌธ๋ฒ ์ค๋ฅ ๋ฐํ์์๋ฌ: ์คํ๋๋ ๋์ค์ ๋ค์ด๋๋ ์๋ฌ/ ๋ฌธ๋งฅ์ ์ค๋ฅ โ head vs body head์์ ์๋ ๋ด์ฉ์ ํ ์ค, ํ ์ค ๋์ค๋๊ฒ ์๋๋ผ ํ๊บผ๋ฒ์ ๋์ด body๋ ํ ์ค, ํ ์ค ๋์ด head์ div, span ,, ์ด๋ฐ tag๋ค ๋ค ์ธ ์ ์์ body์ ์ค๋ฅ๊ฐ ์๊ธฐ๋ฉด ๋๊ทธ๋ฝ๊ฒ ๋์ด๊ฐ์ง๋ง, head์ ์ค๋ฅ๊ฐ ์๊ธฐ๋ฉด ๊ฒฐ๊ณผ๋ฌผ์ด ๋ก๋๋์ง ์์ ๐ ์๋ฐ์คํฌ๋ฆฝํธ : ๋น๋๊ธฐ์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋๋ ๋ฒก์๋๊ฐ ์๋๋ฆฌ์ค ๊ธฐ๋ฐ์ด์๋๋ฐ ์ฑํ : ์๋๋ฆฌ์ค ์์, ์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด ์ ธ์ผ ํจ ๋๋ถ๋ถ ..