Back-End ์์ ์ค/Node.js(12)
-
[M1 Mac] NVM, Node.js, NPM ์ค์น
"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค." ๐ NVM, Node.js, NPM ์ค์น ๐ฝ M1 Macbook ๐ฆ ์ค์น ๋ฐ ๊ตฌ์ฑ ์ต์ด Homebrew๋ฅผ ์ค์นํด์ผ ํด์. ํฐ๋ฏธ๋์ ์ด๊ณ , ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ Homebrew๋ฅผ ๋จผ์ ์ค์นํด ์ฃผ์ธ์. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ๋งฅ๋ถ์์ brew ๋ช ๋ น์ด๋ฅผ ํตํด Node๋ฅผ ๋ฐ๋ก ์ค์นํ ์ ์๊ณ , Linux์์๋ apt-get install -y node ๋ฑ์ ํตํด ์ค์นํ ์ ์์ง๋ง, ์ด ๋ฐฉ๋ฒ์ ๊ถ์ฅ๋์ง ์๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํด์. ๊ทธ ์ด์ ๋ OS์ ์ง์ ์ค์นํ๊ฒ ๋๋ฉด ๋์ค์ Nod..
2023.11.16 -
[Node.js] NVM(Node Version Manager)
๐ NVM ๐ฝ ์ค์น nvm์ Node.js๋ฅผ ์ด์ฉํ์ฌ Project๋ฅผ ํ ๋, ๊ฐ ํ๊ฒฝ๋ง๋ค ๋ค๋ฅธ Vesion์ ์ฌ์ฉํ๊ฒ ๋ ํ ๋ฐ, ์ด๋ ํธ๋ฆฌํ๊ฒ Version์ ๋ฐ๊ฟ ์ ์๋๋ก ๋์์ฃผ๋ ์น๊ตฌ์ ๋๋ค. Git Hub ์ฃผ์ ๋ช ๋ น์ด curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash ์์ ๋ช ๋ น์ด ์ค ํธํ๊ฒ์ ์ด์ฉํ์ฌ ์ค์นํด ์ฃผ๋ฉด ๋๊ฒ ์ต๋๋ค. ์ค์น๊ฐ ์๋ฃ๋ ๋ค ํ๊ฒฝ ๋ณ์ ์ค์ ์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. vim ~/.bashrc export NVM_DIR="$HOME/.nvm" [ -s "$..
2022.04.15 -
[Nest.js] Middle Ware(๋ฏธ๋ค์จ์ด)
๐ Nest.js์ Middle Ware ๐ฝ ๊ฐ์ `Pipes`, `Filters`, `Guards`, `Interceptors` ๋ฑ์ด `Nest.js`์์๋ ๋ฏธ๋ค์จ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒ์ด์์. ๐ฝ ๋ํ Middle Ware ์ด ๋ฆ ๋ด ์ฉ Pipes Pipe๋ Client ์์ฒญ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ Payload ๋ณํ์ ์ํด ์ฌ์ฉ. Data๋ฅผ ์์ํ ๋๋ก ์ง๋ ฌํ. ์์ธํ ์ค๋ช Filters ์ค๋ฅ ์ฒ๋ฆฌ ๋ฏธ๋ค์จ์ด. ํน์ ์ค๋ฅ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ๋ก์ ๊ฐ ๊ฒฝ๋ก ์ฃผ๋ณ์ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ ์ ๊ณต. Guards ์ธ์ฆ ๋ฏธ๋ค์จ์ด. ์ง์ ๋ ๊ฒฝ๋ก๋ก ํต๊ณผํ ์ ์๋ Client์ ๊ทธ๋ ์ง ์๋ Client์ ๋ํด Server์๊ฒ ๋ด์ฉ ์ ๊ณต. Interceptors ์๋ต Mapping ๋ฐ ์บ์ ๊ด๋ฆฌ์ ์์ฒญ Logging๊ณผ ๊ฐ์ ์ ํ ..
2022.04.11 -
[Nest.js] API ์ค๊ณ - ์์ฒญ, ์๋ต ๊ฐ์ฒด (Request, Response Object)
๐ ์์ฒญ, ์๋ต ๊ฐ์ฒด ๐ฝ ์์ฒญ ๊ฐ์ฒด(Request Object) `Client`๊ฐ ๋ณด๋ธ `Request(์์ฒญ)`์๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์๋ก ํ ๋๊ฐ ์์ ์ ์๋ ๊ฒ์ด์์. ์๋ฅผ ๋ค๋ฉด `Session ์ ๋ณด`, `Request Header ์ ๋ณด` ๋ฑ์ด์์. `Nest.js`์์๋ `Express.js`๋ `Fastify`์ ์์ฒญ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋๋ก ํด ์ฃผ๋ ๊ฒ์ด์์. `@Res()` ์ฒ๋ผ Handler์ ์๊ทธ๋์ณ์ Decorator๋ฅผ ์ถ๊ฐํ์ฌ `Nest.js`์ ์ฃผ์ ํ๋๋ก ์ ์ธํ์ฌ ์์ฒญ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ ๊ฒ์ด์์. ๋ง์ฝ `TypeScript`๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ ์์ ์์ ์ฒ๋ผ `Express.js`์ `Request`๋ฅผ ์ด์ฉํ๊ธฐ ์ํด `@types/express` Package๋ฅผ ์ค์น ํด์ผ ๋๋ ๊ฒ์ด์์..
2022.04.10 -
[Node.js][Nest.js] Logger ๊ธฐ๋ฅ
๐ Nest.js์ Logger ๐ฝ ๊ฐ์ Application์ ์ด์ํ ๋, ๋ง์ `Exception`๊ณผ ๊ฐ๋ฐ์๋ ์ธ์ฐ๋ ๊ฒ์ด์์. `Exception`์ด ํฐ์ก์ ๋, ์ด๋ค ๋ถ๋ถ์ด ๋ฌธ์ ์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ `Debug`๋ผ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง, `Logger`๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ ๊ฒ์ด์์. ๐ฝ Log ์ข ๋ฅ ์ข ๋ฅ ๋ด ์ฉ Log ์ค์ ์ ๋ณด ๋ฒ์ฉ Logging Warnning ์น๋ช ์ ์ด๊ฑฐ๋, ํ๊ดด์ ์ด์ง๋ ์์ ์ฒ๋ฆฌ๋์ง ์์ ๋ฌธ์ Error ์น๋ช ์ ์ด๊ฑฐ๋, ํ๊ดด์ ์ธ ์ฒ๋ฆฌ๋์ง ์์ ๋ฌธ์ Debug ์ค๋ฅ ๋ฐ์ ์ Logic์ Debugํ๋๋ฐ, ๋์์ด ๋๋ ์ ์ฉํ ์ ๋ณด (๊ฐ๋ฐ์ ์ฉ) Verbose Application ๋์์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ์ ๋ณด (์ด์์ ์ฉ) ๐ฆ Log Level ์ํ๋ ๋๋ก ๊ตฌ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ..
2022.04.09 -
[Node.js][Nest.js]TypeORM
[์์ด์ฝ์ถํ]์คํ๋ง๊ณผ JPA๋ฅผ ํ์ฉํ ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ธํธ - ์ 3๊ถ COUPANG www.coupang.com "์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค." ๐ TypeORM(Object Relational Mapping) ์๊ฐ ๐ฝ ๊ฐ์ ๐ฆ TypeORM ์ด๋? `TypeORM`์ `Node.js`์์ ์คํ๋๊ณ , `TypeScript`๋ก ์์ฑ๋ ๊ฐ์ฒด ๊ด๊ณํ ๋งคํผ Library์ธ ๊ฒ์ด์์. `Spring Boot`์์ ์ด์ฉํ๋ `JPA`์ ์์ฒญ ๋ง์ด ์ ์ฌํ๋ค๋ ํน์ง์ด ์๋ ๊ฒ์ด์์. `TypeORM`์ `MySQL`, `PostgreSQL`, `MariaDB`, `SQLite`, `MS SQL Server`, `Oracle DBMS`, `S..
2022.04.09