๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (197)

JUINTINATION

Express.js์™€ nodemon

nodemon์ด๋ž€?nodemon์€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ์ด๋ฃจ์–ด์กŒ์„ ๋•Œ ๋…ธ๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ๋กœ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๊ฐœ๋ฐœ ์‹œ ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์šฉ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜์˜€๋‹ค๊ฐ€ ์žฌ์‹œ์ž‘ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—… ์—†์ด ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋œ ์†Œ์Šค ํŒŒ์ผ๋กœ ์ ์šฉ๋˜๊ฒŒ ํ•ด์ค€๋‹ค.์ผ๋‹จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ ๋’ค์— $ npm install nodemon ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ nodemon ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•œ๋‹ค.์ด ๋ชจ๋“ˆ์€ ํ”„๋กœ์ ํŠธ์—์„œ ๋”ฐ๋กœ requireํ•  ํ•„์š”์—†์ด package.json ์˜ "scripts"์— ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์˜ˆ์‹œ๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋ณด์ž.app.jsconst express = require('express');const http = require('http');const path = require('path');co..

StudyNote 2024. 1. 23. 22:53
ETRI 2024 ๋™๊ณ„ ์—ฐ๊ตฌ์—ฐ์ˆ˜์ƒ - 3์ฃผ์ฐจ

3์ฃผ์ฐจ ํ›„๊ธฐ ETRI์—.. ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์—.. ์ •์ฒ˜๊ธฐ ์ค€๋น„์—.. ์•„์ฃผ ๋ฐ”์œ ํ•˜๋ฃจํ•˜๋ฃจ๋ฅผ ๋ณด๋‚ด๋Š๋ผ ์ •์‹ ์ด ์—†๋‹ค. ๊ทธ ์™€์ค‘์— ๋„์„œ๊ด€์—์„œ ๊ดœ์ฐฎ์•„ ๋ณด์ด๋Š” ์ฑ…๋“ค์„ ๋นŒ๋ ค๊ฐ€๋ฉฐ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ฝ์œผ๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์€ ์€๊ทผํžˆ ์ฆ๊ฑฐ์šด ์ผ์ธ ๊ฒƒ ๊ฐ™๋‹ค. cuDF? ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๋Œ๋ฆด ๋•Œ๋งˆ๋‹ค ๋„ˆ๋ฌด ๋“ค์ญ‰๋‚ ์ญ‰ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๊ณ  ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ์…‹์— ์žˆ๋Š” ์ œํ’ˆ๋“ค์˜ ์ ์ˆ˜ ์ธก์ • ๋ฐฉ์‹์„ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ํ…Œ์ŠคํŠธํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ „์ฒ˜๋ฆฌ๋ฅผ ๋น„๋กฏํ•œ time decay ํ•จ์ˆ˜ ์ ์šฉ, ์ ์ˆ˜๋ฅผ ์ •ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ pandas์˜ Dataframe์€ GPU๊ฐ€ ์•„๋‹Œ CPU๋กœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋Š๋ฆฐ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ด ์ „์ฒ˜๋ฆฌ ๊ด€๋ จ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๋‹ค๊ฐ€ cuDF..

Express.js์™€ passport-local์„ ์‚ฌ์šฉํ•œ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธ

passport๋ž€? ์ด์ „ Express.js์˜ morgan๊ณผ cookie-parser, express-session ๊ธ€์—์„œ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์ด์šฉํ•ด ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ค˜๋‹ค. passport๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ Node.js์—์„œ ์ธ์ฆ(Authenicate)์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด์ด๋‹ค. ํ•ด์™ธ๋กœ ๋‚˜๊ฐˆ ๋•Œ ์‹ ์› ํ™•์ธ์„ ์œ„ํ•œ ์—ฌ๊ถŒ(passport)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”์ง€ ์‹ฌ์‚ฌํ•˜๋Š” ์—ญํ• ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. strategy passport๋Š” ์–ด๋–ค ๊ฒƒ์„ ์ด์šฉํ•ด ์–ด๋–ป๊ฒŒ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์ „๋žต์ธ strategy๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์˜ค๋Š˜์„ ๊ธฐ์ค€์œผ๋กœ 539๊ฐ€์ง€ strategy๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋‚˜์™€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 'passport-..

StudyNote 2024. 1. 21. 21:38
Express.js์˜ morgan๊ณผ cookie-parser, express-session

morgan morgan์€ Logger API๋กœ request์™€ response๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ํฌ๋งคํŒ…ํ•ด์ฃผ์–ด ํ˜ธ์ถœ๋œ router๊ฐ€ ์–ด๋–ค ์ƒํƒœ์ด๊ณ  ์–ด๋–ค ๊ฒฐ๊ณผ ๊ฐ’์ธ์ง€ ์ฝ˜์†”์— ๋กœ๊ทธ๋ฅผ ์ฐ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ฐํžŒ ๋กœ๊ทธ๋ฅผ ์ฝ˜์†”๋กœ๋งŒ ํ™•์ธํ•ด๋„ ๋˜์ง€๋งŒ json ํ˜•ํƒœ๋กœ dump ํŒŒ์ผ์— ๊ธฐ๋กํ•ด์ฃผ๋Š” winston์ด๋ผ๋Š” ๋ชจ๋“ˆ๋„ ์žˆ๋‹ค. const logger = require('morgan') ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ morgan ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์™€์„œ const app = express() ์ผ ๋•Œ app.use(logger('์˜ต์…˜')); ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. morgan์— ๋“ค์–ด๊ฐ€๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ธ ๊ฐ ์˜ต์…˜๋งˆ๋‹ค ๋ณด์—ฌ์ฃผ๋Š” ์ •๋ณด๊ฐ€ ๋‹ค๋ฅด๋ฉฐ ์—ฌ๋Ÿฌ ์˜ต์…˜์„ ๋„ฃ์–ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฃผ๋กœ ๊ฐœ๋ฐœ ์‹œ์—๋Š” dev ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์š”์ฒญ ๋ฉ”์„œ๋“œ, url, ์ƒํƒœ, ์‘๋‹ต์‹œ..

StudyNote 2024. 1. 21. 18:12
Express.js๊ณผ MVC ํŒจํ„ด, Controller & Service & Repository

MVC ํŒจํ„ด์ด๋ž€?MVC ํŒจํ„ด์€ ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(model–view–controller) 3๊ฐ€์ง€๋กœ ๋ถ„๋ฆฌ๋œ ํ˜•ํƒœ์˜ 3 Layer Architecture๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋””์ž์ธํŒจํ„ด์ด๋‹ค. ๊ฐ๊ฐ์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค ์‚ฌ์ด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค. ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ด€๊ณ„๋ฅผ ๋ฌ˜์‚ฌํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ผ๋ฐ˜์ ์ธ MVC ๊ตฌ์„ฑ์š”์†Œ ๋‹ค์ด์–ด๊ทธ๋žจ ๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(model–view–controller, MVC)ko.wikipedia.org๋ชจ๋ธ(Model)์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฌด์—‡์„ ํ•  ๊ฒƒ์ธ์ง€ ์ •์˜ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ DB์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•œ ์—ฐ์‚ฐ์ฒ˜๋ฆฌ๊ฐ€ ์ฃผ๋œ ๋ชฉ์ ์ด๋‹ค.์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด DB์—์„œ ์‚ฌ์šฉ์ž๊ฐ€..

StudyNote 2024. 1. 20. 23:01
Express.js์™€ Prisma ORM์„ ์‚ฌ์šฉํ•œ CRUD API

API๋ž€?API(Application Programming Interface)๋ž€ ์ •์˜ ๋ฐ ํ”„๋กœํ† ์ฝœ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค. API๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๋ช… - AWSGraphQL์€ API์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ๊ฐœ๋ฐœ๋œ ์ฟผ๋ฆฌ ์–ธ์–ด๋กœ์„œ, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ API๋ฅผ ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์œผ๋กœ ๋งŒ๋“ค๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. RESaws.amazon.comAPI๋ผ๋Š” ์šฉ์–ด๋ฅผ ์ฒ˜์Œ ๋“ค์—ˆ์„ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ๋ณด๊ฒŒ๋˜๋Š” ์˜ˆ์‹œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ์ƒ์ฒญ์ผ ๊ฒƒ ๊ฐ™๋‹ค. ์—ฌ๋Ÿฌ API์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์˜ ์ธ๊ธฐ๊ฒ€์ƒ‰์–ด๋งŒ ์‚ดํŽด๋ด๋„ ๊ธฐ์ƒ์ฒญ์ด ๊ฐ€์žฅ ์œ„์— ๋œจ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ๊ตญ๊ฐ€์—์„œ ..

StudyNote 2024. 1. 20. 18:02