• pm2๋ฅผ ํ†ตํ•œ NodeJS Application ๊ด€๋ฆฌ ๊ธฐ๋ฒ•

    pm2๋ฅผ ํ†ตํ•œ NodeJS Application ๊ด€๋ฆฌ ๊ธฐ๋ฒ•

    ์‹œ์ž‘ํ•˜๋ฉฐ pm2๋ž€? "PM2๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์˜จ๋ผ์ธ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž" ๋ผ๊ณ  ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๋‚˜์™€์žˆ๋‹ค. ๋ฐ๋ชฌ (daemon)์ด๋ผ๋Š” ๊ฑด ์ปดํ“จํ„ฐ ์šด์˜์ฒด์ œ์—์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•˜๋ฉฐ ๋”ฐ๋ผ์„œ pm2๋ผ๋Š” ๊ฑด NodeJS๋กœ ๋งŒ๋“ค์–ด์ง„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ์ž๋ผ๊ณ  ๋งํ• ์ˆ˜์žˆ๋‹ค. pm2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์ค‘์ง€๋˜๋Š” ๊ฒฝ์šฐ pm2๊ฐ€ ์ž๋™์œผ๋กœ ๋™์ž‘์‹œ์ผœ์ฃผ๊ธฐ ๋•Œ๋ฌธ์ž„. ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ• ๋•Œ ์„œ๋ฒ„๋ฅผ ๋‚ด๋ฆด ํ•„์š”์—†์ด ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์›น ์ƒˆ๋กœ๊ณ ์นจ๋งŒ ํ•ด์ฃผ๋ฉด ์ˆ˜์ •๋‚ด์šฉ์ด ๋ฐ˜์˜๋˜์–ด ํŽธ๋ฆฌํ•จ. ๋กœ๊ทธ๋ฅผ ๊ฐ€๋…์„ฑ ์ข‹๊ฒŒ ํ•œ๋ฒˆ์— ๋ณผ ์ˆ˜ ์žˆ์Œ. ์›๋ž˜๋Š” ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ์ธ NodeJS๋ฅผ pm2 cluster ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š”๋งŒํผ ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์žฅํ•˜์—ฌ ์šด์šฉํ• ์ˆ˜..

  • JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฆฌ๊ณ  Node.js์—์„œ์˜ ์˜ˆ์ œ

    JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฆฌ๊ณ  Node.js์—์„œ์˜ ์˜ˆ์ œ

    ์‹œ์ž‘ํ•˜๋ฉฐ JWT ํ† ํฐ์ด๋ž€? JWT ํ† ํฐ์€ Json Web Token์˜ ์•ฝ์ž์ž„. ์›น ์ธ์ฆ ํ† ํฐ์ด๋‚˜ ์„ธ์…˜, REST API์—์„œ ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” ํ† ํฐ์˜ ๋ฐฉ์‹์ž„. ์‚ฌ์šฉ์ž ์ธ์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”๋œ ํ˜•ํƒœ๋กœ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅํ•จ. JWT ํ† ํฐ์˜ ๊ตฌ์„ฑ "ํ—ค๋”"์™€ "ํŽ˜์ด๋กœ๋“œ", "์„œ๋ช…" ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ. "ํ—ค๋”"์™€ "ํŽ˜์ด๋กœ๋“œ"๋Š” ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„๋“ค์ž„. ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๋Š” Base64 ๋ฐฉ์‹์œผ๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์ „์†ก๋˜๊ณ , ์‰ฝ๊ฒŒ ๋””์ฝ”๋”ฉํ•˜์—ฌ ์›๋ž˜์˜ JSON ํ˜•ํƒœ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ. ๋ฐ˜๋ฉด "ํ—ค๋”"์™€ "ํŽ˜์ด๋กœ๋“œ"๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ "์„œ๋ช…" ๋ถ€๋ถ„์€ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์—†์Œ. "์„œ๋ช…" ๋ถ€๋ถ„์€ ๋ง ๊ทธ๋Œ€๋กœ ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜๋Š”์ง€, ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ์ธ์ง€ ํ™•์ธํ•˜๋Š” Signature ์—ญํ• ์„ ํ•จ. JWT ํ† ํฐ์˜ ์•”ํ˜ธํ™” ๊ทธ๋ฆฌ๊ณ  ๋ฌด๊ฒฐ์„ฑ JS..

  • [Database] ORM ์›๋ฆฌ ๋ฐ ์žฅ๋‹จ์  ์ดํ•ดํ•˜๊ธฐ

    [Database] ORM ์›๋ฆฌ ๋ฐ ์žฅ๋‹จ์  ์ดํ•ดํ•˜๊ธฐ

    ์‹œ์ž‘ํ•˜๋ฉฐ NodeJS์—์„œ ์‚ฌ์šฉ๋˜๋Š” ORM ์ข…๋ฅ˜ ์•Œ์•„๋ณด๊ธฐ (MySQL & MongoDB) NodeJS์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ์—ฌ๋Ÿฌ ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋จ. MySQL๊ณผ MongoDB๋Š” ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” DBMS์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋‘˜์— ๊ด€ํ•œ ORM๋“ค์„ ์•Œ์•„๋ณด๊ฒ ์Œ. ORM์€ ๊ทธ ์ข…๋ฅ˜๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์œผ๋ฏ€๋กœ Javascript ๋‚ด์—์„œ ํ™œ์šฉ๋˜๋Š” ORM๋งŒ ๋น„๊ตํ•˜์—ฌ ๋‹ค๋ฃจ์–ด ๋ณด๊ฒ ์Œ. ORM์ด๋ž€? ORM(Object-Relational Mapping)์ด๋ž€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด DBMS์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์ž„. ์ด๋Š” ์ฝ”๋“œ ๋‚ด์— ์„ ์–ธ๋œ ๋ชจ๋ธ๊ณผ DBMS๋ฅผ ์ง์ ‘ ๋งคํ•‘ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ๋งŒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•จ. ์ด๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ SQL..

  • MySQL RDBMS์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฐœ๋… ํ›‘์–ด๋ณด๊ธฐ

    MySQL RDBMS์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฐœ๋… ํ›‘์–ด๋ณด๊ธฐ

    About MySQL ์‹œ์ž‘ํ•˜๋ฉฐ NodeJS๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋Š” ORM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ RDBMS๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. RDBMS ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ์‰ฝ๊ฒŒ ์ ‘๊ทผ๋˜๊ณ  ์‚ฌ์šฉ๋˜๋Š” MySQL์— ๋Œ€ํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. MySQL์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์‚ฌ์‹ค MySQL์€ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS) ์ค‘ ํ•˜๋‚˜์ด๋‹ค. MySQL์€ 1995๋…„ ์ฒ˜์Œ์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ์ตœ์ดˆ ์ œ์ž‘์‚ฌ๋Š” ์Šค์›จ๋ด์˜ MySQL AB์˜€๋Š”๋ฐ, 2008๋…„์— ์ฌ ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ์ฆˆ์—๊ฒŒ 10์–ต ๋‹ฌ๋Ÿฌ์— ์ธ์ˆ˜๋˜์—ˆ๊ณ , ์ดํ›„ 2010๋…„์— ์˜ค๋ผํด์ด ์ฌ์„ 72์–ต ๋‹ฌ๋Ÿฌ์— ์ธ์ˆ˜ํ•˜๋ฉด์„œ ์ฌ๊ณผ ํ•จ๊ป˜ ์˜ค๋ผํด์— ํ•ฉ๋ณ‘๋˜์—ˆ๋‹ค. Essential Knowledge About MySQL ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ํŠน์ง• ์˜คํ”ˆ ์†Œ์Šค: ..

  • EJS ์ฃผ์š” ๋ฌธ๋ฒ• ๋ฐ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ ์ •๋ฆฌ

    EJS ์ฃผ์š” ๋ฌธ๋ฒ• ๋ฐ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ ์ •๋ฆฌ

    About EJS EJS๋ž€? EJS๋Š” Embedded JavaScript์˜ ์•ฝ์ž๋กœ, HTML์ฝ”๋“œ ๋‚ด์— JavaScript ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์ž„. ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด๋ž€, ํ…œํ”Œ๋ฆฟ์„ ๋ Œ๋”๋งํ•˜์—ฌ HTML์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž„. ์ด๋Š” PHP ๋˜๋Š” ASP์˜ ์ž‘์„ฑ ๋ฐฉ์‹๊ณผ ํก์‚ฌํ•˜์—ฌ, ๊ธฐ์กด์— ์›น ๊ฐœ๋ฐœ์„ ํ•ด๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ. EJS๋Š” Controller๋‹จ์—์„œ ๋„˜๊ฒจ์ค€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•จ. ํƒœ๊ทธ ๋‚ด์—์„œ ๊ฐ„๋‹จํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฑ์—”๋“œ ๋กœ์ง(if, while, for, foreach ๋“ฑ)์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ. ๋‹จ ์ด๋Š” Client๋‹จ์—์„œ ๋ Œ๋”๋ง ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Server๋‹จ์—์„œ ๋ Œ๋”๋ง ๋˜๋Š” ๊ฒƒ์ž„. ์ฆ‰, Client๋‹จ์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ, ๋ Œ๋”๋ง๋œ HTM..

  • Git Branch Strategy(๋ธŒ๋žœ์น˜ ์ „๋žต)์— ๋Œ€ํ•œ ์ •๋ฆฌ.

    Git Branch Strategy(๋ธŒ๋žœ์น˜ ์ „๋žต)์— ๋Œ€ํ•œ ์ •๋ฆฌ.

    Git Branch ์ „๋žต (Git Branch Strategy) ์ด๋ž€? Git Branch ์ „๋žต์˜ ๊ฐœ์š” Git Branch ์ „๋žต์€ Git Flow, Github Flow๊ฐ€ ์žˆ๋‹ค. Gitlab Flow๋„ ์žˆ์ง€๋งŒ, Github Flow์™€ ์œ ์‚ฌํ•˜๋ฏ€๋กœ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Œ. Git Branch ์ „๋žต์ด๋ž€, Git์„ ์‚ฌ์šฉํ•  ๋•Œ Branch๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๊ฒƒ. ์ฆ‰, Git Branch๋ฅผ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Workflow์˜ ์ผ์ข…์ž„. ์ด๋Š” ํ˜‘์—… ์ค‘ ์ถฉ๋Œ์ด๋‚˜ ํ˜ผ์„ ์„ ๋ฐฉ์ง€ํ•˜๊ณ , Branch์˜ ์ถœ์ฒ˜์™€ ๋ถ„๊ธฐ์ ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ฃผ๋กœ ์‚ฌ์šฉ๋จ. Git Flow ์ „๋žต (Git Flow Strategy) ๊ฐœ์š” Git Flow๋Š” 2010๋…„์— Vincent Driessen์ด ์ œ์•ˆํ•œ Git Branch ์ „..

  • * Hello World *

    * Hello World *

    deVlog ๊ฐœ์„ค ์™„๋ฃŒ. Develop์—์„œ ๋”ฐ์˜จ dev์™€ Blog๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ํ•ฉ์ณ ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ์ƒˆ๋กœ ๊ฐœ์„คํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์—ฌํ–‰ํ•˜๊ณ  ๊ฒฝํ—˜ํ•œ ๊ฒƒ๋“ค๊ณผ ์ฆ๊ฑฐ์› ๋˜ ์ถ”์–ต์„ ๋‚จ๊ธฐ๋ฉฐ ์ข‹์•˜๋˜ ๊ธฐ์–ต๋“ค์„ ๋‚จ๊ธฐ๋Š” ์ผ๊ธฐ์žฅ์ด์ž ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ถ€๋”ชํžˆ๋Š” ๊ฒƒ๋“ค์„ ๋‚จ๊ธฐ๋Š” ์˜ค๋‹ต๋…ธํŠธ์™€ ๊ฐ™์€ ๊ณต๊ฐ„์œผ๋กœ ํ™œ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋จผ ๋ฏธ๋ž˜์— ๋Œ์•„๋ณด์•˜์„๋•Œ ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ์„ฑ์žฅํ•˜๊ณ  ์–ด๋–ค๊ฒƒ๋“ค์„ ๊ฒฝํ—˜ํ–ˆ๋Š”์ง€ ์ƒˆ๋กœ์ด ๋˜๋Œ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ณธ ๋ธ”๋กœ๊ทธ์˜ ์ตœ์ข… ๋ชฉ์ ์ด๋‹ค. ๋ณธ ๋ธ”๋กœ๊ทธ๋Š” hELLO ํ‹ฐ์Šคํ† ๋ฆฌ ํ…œํ”Œ๋ฆฟ์„ ํ™œ์šฉํ•˜์—ฌ ์ œ์ž‘๋˜์—ˆ๋‹ค. hELLO ์ œ์ž‘์ž์˜ ์ €์ž‘๊ถŒ ๊ณต๊ฐœ์š”์ฒญ์— ๋”ฐ๋ผ ๋ธ”๋กœ๊ทธ ์ขŒ์ธก์— ๋ณ„๋„๋กœ ์›์ž‘์ž ์ •๋ณด๋ฅผ ํ‘œ๊ธฐํ•˜์˜€๋‹ค. Oct 03, 2022 Copyright deVlog. All rights reserved. 2022๋…„ 10์›” 03..