-
pm2๋ฅผ ํตํ NodeJS Application ๊ด๋ฆฌ ๊ธฐ๋ฒ
์์ํ๋ฉฐ pm2๋? "PM2๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ด๋ฆฌํ๊ณ ์จ๋ผ์ธ ์ํ๋ก ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ ๋ฐ๋ชฌ ํ๋ก์ธ์ค ๊ด๋ฆฌ์" ๋ผ๊ณ ๊ณต์ ํํ์ด์ง์ ๋์์๋ค. ๋ฐ๋ชฌ (daemon)์ด๋ผ๋ ๊ฑด ์ปดํจํฐ ์ด์์ฒด์ ์์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ฉฐ ๋ฐ๋ผ์ pm2๋ผ๋ ๊ฑด NodeJS๋ก ๋ง๋ค์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋ก์ธ์ค ๊ด๋ฆฌ์๋ผ๊ณ ๋งํ ์์๋ค. pm2๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์ ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ ํ๋ก๊ทธ๋จ์ด ์ค์ง๋๋ ๊ฒฝ์ฐ pm2๊ฐ ์๋์ผ๋ก ๋์์์ผ์ฃผ๊ธฐ ๋๋ฌธ์. ์ฝ๋๋ฅผ ์์ ํ ๋ ์๋ฒ๋ฅผ ๋ด๋ฆด ํ์์์ด ์ฝ๋๋ฅผ ์ ์ฅํ๊ณ ์น ์๋ก๊ณ ์นจ๋ง ํด์ฃผ๋ฉด ์์ ๋ด์ฉ์ด ๋ฐ์๋์ด ํธ๋ฆฌํจ. ๋ก๊ทธ๋ฅผ ๊ฐ๋ ์ฑ ์ข๊ฒ ํ๋ฒ์ ๋ณผ ์ ์์. ์๋๋ ์ฑ๊ธ ์ฐ๋ ๋์ธ NodeJS๋ฅผ pm2 cluster ๋ชจ๋๋ฅผ ํตํด ์ํ๋๋งํผ ์ธ์คํด์ค๋ฅผ ํ์ฅํ์ฌ ์ด์ฉํ ์..
-
JWT ํ ํฐ ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ธ์ฆ ํ๋ก์ธ์ค ๊ทธ๋ฆฌ๊ณ Node.js์์์ ์์
์์ํ๋ฉฐ JWT ํ ํฐ์ด๋? JWT ํ ํฐ์ Json Web Token์ ์ฝ์์. ์น ์ธ์ฆ ํ ํฐ์ด๋ ์ธ์ , REST API์์ ๋ง์ด ํ์ฉ๋๋ ํ ํฐ์ ๋ฐฉ์์. ์ฌ์ฉ์ ์ธ์ฆ์ ํ์ํ ์ ๋ณด๋ฅผ ์ํธํ๋ ํํ๋ก ํด๋ผ์ด์ธํธ์ ์ ์ฅํจ. JWT ํ ํฐ์ ๊ตฌ์ฑ "ํค๋"์ "ํ์ด๋ก๋", "์๋ช " ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์. "ํค๋"์ "ํ์ด๋ก๋"๋ ๋ณตํธํ ๊ฐ๋ฅํ ๋ถ๋ถ๋ค์. ํค๋์ ํ์ด๋ก๋๋ Base64 ๋ฐฉ์์ผ๋ก ์ธ์ฝ๋ฉ๋์ด ์ ์ก๋๊ณ , ์ฝ๊ฒ ๋์ฝ๋ฉํ์ฌ ์๋์ JSON ํํ๋ก ๋ณผ ์ ์์. ๋ฐ๋ฉด "ํค๋"์ "ํ์ด๋ก๋"๋ฅผ ์ ์ธํ๊ณ ๋จ์ "์๋ช " ๋ถ๋ถ์ ๋ณตํธํํ ์ ์์. "์๋ช " ๋ถ๋ถ์ ๋ง ๊ทธ๋๋ก ํค๋์ ํ์ด๋ก๋๊ฐ ๋ณ์กฐ๋์ง ์์๋์ง, ๋ฌธ์ ๊ฐ ์๋ ๋ฐ์ดํฐ์ธ์ง ํ์ธํ๋ Signature ์ญํ ์ ํจ. JWT ํ ํฐ์ ์ํธํ ๊ทธ๋ฆฌ๊ณ ๋ฌด๊ฒฐ์ฑ JS..
-
[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์ ๋ํ ๊ฐ๋จํ ๊ฐ๋ ํ์ด๋ณด๊ธฐ
About MySQL ์์ํ๋ฉฐ NodeJS๋ฅผ ํตํด ๊ฐ๋ฐ์ ์งํํ๋ฉฐ ์ฌ์ฉํ๊ฒ๋๋ ORM ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก RDBMS๋ฅผ ์์์ผ ํ๋ค. RDBMS ์ค์์๋ ๊ฐ์ฅ ์ฝ๊ฒ ์ ๊ทผ๋๊ณ ์ฌ์ฉ๋๋ MySQL์ ๋ํ์ฌ ๊ฐ๋จํ ์์๋ณด๋๋ก ํ์. MySQL์ ๋ํ ๊ฐ๋จํ ์ฌ์ค MySQL์ ์ธ๊ณ์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS) ์ค ํ๋์ด๋ค. MySQL์ 1995๋ ์ฒ์์ผ๋ก ๋ฐํ๋์๋ค. ์ต์ด ์ ์์ฌ๋ ์ค์จ๋ด์ MySQL AB์๋๋ฐ, 2008๋ ์ ์ฌ ๋ง์ดํฌ๋ก์์คํ ์ฆ์๊ฒ 10์ต ๋ฌ๋ฌ์ ์ธ์๋์๊ณ , ์ดํ 2010๋ ์ ์ค๋ผํด์ด ์ฌ์ 72์ต ๋ฌ๋ฌ์ ์ธ์ํ๋ฉด์ ์ฌ๊ณผ ํจ๊ป ์ค๋ผํด์ ํฉ๋ณ๋์๋ค. Essential Knowledge About MySQL ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํน์ง ์คํ ์์ค: ..
-
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 ์ ๋ต (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 *
deVlog ๊ฐ์ค ์๋ฃ. Develop์์ ๋ฐ์จ dev์ Blog๋ฅผ ๋จ์ํ๊ฒ ํฉ์ณ ๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ์๋ก ๊ฐ์คํ๊ฒ ๋์๋ค. ์ฌํํ๊ณ ๊ฒฝํํ ๊ฒ๋ค๊ณผ ์ฆ๊ฑฐ์ ๋ ์ถ์ต์ ๋จ๊ธฐ๋ฉฐ ์ข์๋ ๊ธฐ์ต๋ค์ ๋จ๊ธฐ๋ ์ผ๊ธฐ์ฅ์ด์ ๊ฐ๋ฐ์ ์งํํ๋ฉฐ ๋ถ๋ชํ๋ ๊ฒ๋ค์ ๋จ๊ธฐ๋ ์ค๋ต๋ ธํธ์ ๊ฐ์ ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๊ณ ์ ํ๋ค. ๋จผ ๋ฏธ๋์ ๋์๋ณด์์๋ ๋ด๊ฐ ์ผ๋ง๋ ์ฑ์ฅํ๊ณ ์ด๋ค๊ฒ๋ค์ ๊ฒฝํํ๋์ง ์๋ก์ด ๋๋์๋ณผ ์ ์๋๋ก ํ๋ ๊ฒ์ด ๋ณธ ๋ธ๋ก๊ทธ์ ์ต์ข ๋ชฉ์ ์ด๋ค. ๋ณธ ๋ธ๋ก๊ทธ๋ hELLO ํฐ์คํ ๋ฆฌ ํ ํ๋ฆฟ์ ํ์ฉํ์ฌ ์ ์๋์๋ค. hELLO ์ ์์์ ์ ์๊ถ ๊ณต๊ฐ์์ฒญ์ ๋ฐ๋ผ ๋ธ๋ก๊ทธ ์ข์ธก์ ๋ณ๋๋ก ์์์ ์ ๋ณด๋ฅผ ํ๊ธฐํ์๋ค. Oct 03, 2022 Copyright deVlog. All rights reserved. 2022๋ 10์ 03..