[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 9. Test ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ(with Mocha, Chai)

nodejs-test-mocha-chai
Node.js์—์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์˜ ์ •ํ™•์„ฑ, ์•ˆ์ •์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ฝ”๋“œ๊ฐ€ ์˜ˆ์ƒ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ๊ธฐ์กด ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Mocha์™€ Chai๋ฅผ ์ด์šฉํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 8. Websocket ์†Œ๊ฐœ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ

nodejs-tutorial-websocket
WebSocket์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ˜์‹ ์ ์ธ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์—์„œ๋Š” WebSocket์˜ ๊ฐœ๋…, ๋™์ž‘ ์›๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  Node.js์™€ TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์—์„œ Websocket์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Websocket ์ด๋ž€? ๊ฐœ์š” WebSocket์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 7-2. ์‚ฌ์šฉ์ž ์ธ์ฆํ•˜๊ธฐ(Authentication) – (JWT ์‚ฌ์šฉ)

node.js-tutorial-authentication-jwt
JWT(JSON Web Token)๋Š” ํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์ •๋ณด ๊ตํ™˜์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” JWT์˜ ๊ฐœ๋…๊ณผ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , Node.js(Typescript & Express)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. JWT๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•œ ์„œ๋ช…๋œ ํ† ํฐ์„ ์ƒ์„ฑํ•˜์—ฌ, ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 7-1. ์‚ฌ์šฉ์ž ์ธ์ฆํ•˜๊ธฐ(Authentication) – (Session & Cookie ์‚ฌ์šฉ)

nodejs-cookie-session-authentication-์ธ์ฆ
์‚ฌ์šฉ์ž ์ธ์ฆ์€ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ์˜ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ, ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์„ธ์…˜๊ณผ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ  JSON Web Token (JWT)์„ ์ด์šฉํ•œ ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ์…˜(Session)์„ ๊ณผ ์ฟ ํ‚ค(Cookie)๋ฅผ ์ด์šฉํ•œ ์ธ์ฆ ๊ฐœ์š” ์„ธ์…˜(Session)๊ณผ ์ฟ ํ‚ค(Cookie)๋Š” ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 6. Database ์—ฐ๋™ํ•˜๊ธฐ(Feat. MongoDB ์†Œ๊ฐœ ๋ฐ ์—ฐ๋™)

node.js-tutorial-database-mongodb
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MongoDB๋Š” ์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆ์™€ ๋†’์€ ์„ฑ๋Šฅ์œผ๋กœ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์‚ฌ๋ž‘๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Node.js์—์„œ Database๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ ํŠนํžˆ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MongoDB๋ฅผ ์†Œ๊ฐœํ•˜๊ณ , Mongoose๋ฅผ ์ด์šฉํ•˜์—ฌ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ MongoDB์™€ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ...
Read more

[Network] OSI 7 Layers ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

network-osi-7-layers
๋„คํŠธ์›Œํฌ(Network) ํ†ต์‹ ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๊ฐœ๋…์ธ OSI 7๊ณ„์ธต ๋ชจ๋ธ(OSI 7 Layers Model)์€ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์˜ ํ‘œ์ค€์„ ์ •์˜ํ•˜๋Š” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ํ†ต์‹  ์‹œ์Šคํ…œ์„ 7๊ฐœ์˜ ๊ณ„์ธต์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๊ณ„์ธต์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜๊ณ , ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” OSI 7๊ณ„์ธต ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 5-2. ๊ธฐ๋ณธ ์›น ์„œ๋ฒ„ ๊ตฌ์ถ•(Middleware ํŽธ)

node.js-tutorial-middleware
์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Node.js๋กœ ๊ธฐ๋ณธ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Middleware์„ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ž์„œ Routing ํฌ์ŠคํŒ…([Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 5-1. ๊ธฐ๋ณธ ์›น ์„œ๋ฒ„ ๊ตฌ์ถ•(Routing ํŽธ)) ์—ญ์‹œ ๋ฏธ๋“ค์›จ์–ด(Middleware)๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฏธ๋“ค์›จ์–ด(Middleware) ์†Œ๊ฐœ Middleware ๋ž€? ๋ฏธ๋“ค์›จ์–ด(Middleware)๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์š”์ฒญ(request)๊ณผ ์‘๋‹ต(response) ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 5-1. ๊ธฐ๋ณธ ์›น ์„œ๋ฒ„ ๊ตฌ์ถ•(Routing ํŽธ)

node.js-tutorial-routing
์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Node.js๋ฅผ ์ด์šฉํ•ด ๊ธฐ๋ณธ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ผ์šฐํŒ…(Routing)์„ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ์–ด, ๋‹ค์–‘ํ•œ URL ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. HTTP ๋ชจ๋“ˆ๊ณผ Express ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•œ ์›น ์„œ๋ฒ„ ๊ตฌ์ถ• ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ ์†Œ๊ฐœํ•˜๊ณ , TypeScript์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ผ์šฐํŒ… ์„ค์ • ๋ฐฉ๋ฒ•์„ ์˜ˆ์ œ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, URL ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ๊ณ , ๋ผ์šฐํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” Routing Module์˜ ์—ญํ• ๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํšจ์œจ์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Read more

AI์™€ ์ „๋ ฅ๋‚œ(Power Shortage)์˜ ์ƒ๊ด€๊ด€๊ณ„: ํ˜„ํ™ฉ๊ณผ ๋ฏธ๋ž˜ ์ „๋ง (feat. ๊ด€๋ จ์ฃผ)

์ธ๊ณต์ง€๋Šฅ(AI)์€ ๋‹ค์–‘ํ•œ ์‚ฐ์—…์—์„œ ํ˜์‹ ์„ ์ฃผ๋„ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ๊ณผ์ •์—์„œ ์—„์ฒญ๋‚œ ์ „๋ ฅ์„ ์†Œ๋ชจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ ํ•™์Šต๊ณผ ์‹คํ–‰์—๋Š” ๊ณ ์„ฑ๋Šฅ ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ(GPU)์™€ ๊ณ ์‚ฌ์–‘ ์ปดํ“จํŒ… ์žฅ์น˜๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ด๋“ค์€ ๋งŽ์€ ์ „๋ ฅ์„ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹คโ€‹ ์ด๋กœ ์ธํ•ด AI ๊ธฐ์ˆ ์˜ ํ™•์‚ฐ๊ณผ ํ•จ๊ป˜ ์ „๋ ฅ ์†Œ๋น„๋Ÿ‰๋„ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ ์ด๋Ÿฐ ...
Read more

[Node.js โ€“ ๊ธฐ์ดˆ ๊ฐ•์ขŒ] 4. Express Framework (์†Œ๊ฐœ, ์‚ฌ์šฉ๋ฐฉ๋ฒ•)

node.js-framework-tutorial-express
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ, ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋„์›€์ด ๋˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Express ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Express๋Š” Node.js ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ๋Ÿ‰์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋‹จ์ˆœํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Express์˜ ๊ฐœ์š”์™€ ํŠน์ง•, ๊ทธ๋ฆฌ๊ณ  TypeScript๋ฅผ ํ™œ์šฉํ•˜์—ฌ Express ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Read more