๐ป๊ธฐ์
๋งฅ ๋ฏธ๋๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ถํ๋ฉฐ #2
์ด์ ๊ธ 1ํธ์ ๋งฅ๋ฏธ๋๋ฅผ ์ฌ๊ฒ ๋ ๊ฒฐ์ ์ ์ธ ์ด์ ์, ํ์๋ฒ์ ๋ชฉ์ ์ด ๊ธฐ๋ก๋ ๊ธ์ด๋ค. ์ด ํฌ์คํธ๋ ์ง๊ธ๊น์ง ์ด๋ค ์กฐ๊ฑด์์ ํ์๋ฒ๋ฅผ ์ด์ํด์๊ณ , ๋๋ต 4๋ ๊ฐ ํ์๋ฒ 3๋๋ฅผ ๋๋ ค๋ณธ ์ฌ๋์ผ๋ก์ ํ์๋ฒ์ ์ ์ ๊ธฐ์ค์ ๊ณต์ ํ๋ ค๊ณ ํ๋ค. https://devent.tistory.com/174 Mac mini๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ถํด๋ณด๋ฉฐ #1 ์ฌ๊ฑด์ ๋ฐ๋จ ์ง๋ 3๋ ๊ฐ LG 14์ธ์น ๊ทธ๋จ๊ณผ HP ๋ ธํธ๋ถ 2๋๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์๋ค. ๊ทธ๋ฌ๋ ์ค ์ค๋ ๊ธฐ๊ฐ ํ๋ฌ๊ทธ๊ฐ ๊ฝํ ์ฑ๋ก ๋ฐฐํฐ๋ฆฌ ๊ณผ์ด์ด ์๊ธฐ๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ ๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถํ์ด ์ค๋ฅด๋ ํ์์ด ๋ฐ devent.tistory.com ๋งฅ ๋ฏธ๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ๊น์ง LG ๊ทธ๋จ 14์ธ์น๋ก๋ ๊ฐ๋จํ ์น์๋ฒ๋ฅผ ๊ตฌ์ถํ๋๋ฐ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ทธ๋ฌ๋ ๋์์ ์์๊ฐ ๋๊ณ ์ฌ์ดํธ์ ํธ๋ํฝ์ด ๋ฌด๊ฑฐ์์ง๋ฉด์ ์ ์ฐจ ๋ถ..
[ NodeJS ] Webpack + SASS ์ค์ ํ๊ธฐ
SASS ๊ธฐ์กด ์นํ์ด์ง์ ์คํ์ผ์ ์ ์ฉํ๊ธฐ ์ํด์๋ CSS๋ก ํ๋ํ๋ ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋ค. ์ด ๊ฐ์ CSS์ ๊ฐ๋ฐ ํธ์์ฑ์ ๋์ด๊ธฐ ์ํด ๋ฑ์ฅํ SASS, ํ๋ฆฌํ๋ก์ธ์ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค. CSS์ ๊ฒฝ์ฐ HTMLํ๊ฒฝ์ style ํ๊ทธ๋ง ์ง์ ํด์ฃผ๋ฉด ๋ฐ๋ก ๋ก๋๊ฐ ๋๋๋ฐ ์ด SASS๋ ๋ ์์ ๊ทธ๋ ์ง๊ฐ ์๋ค. ์ฌ์ฉํ๊ธฐ ์ ์ CSS๋ก ์ปดํ์ผํ๋ ๊ณผ์ ์ด ํ์๋ค. ๊ทธ๋์ ๋ณดํต ์นํฉ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค. 1. ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น npm i webpack webpack-cli sass sass-loader style-loader mini-css-extract-plugin css-loader ์ค์น๋ฅผ ์๋ฃํด์ฃผ๋ฉด ์นํฉ ์ค์ ํ์ผ์ ๋ง๋ค์ด์ค๋ค. 2. webpack.config.js import MiniCssExtract..
Mac mini๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ถํด๋ณด๋ฉฐ #1
์ฌ๊ฑด์ ๋ฐ๋จ ์ง๋ 3๋ ๊ฐ LG 14์ธ์น ๊ทธ๋จ๊ณผ HP ๋ ธํธ๋ถ 2๋๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์๋ค. ๊ทธ๋ฌ๋ ์ค ์ค๋ ๊ธฐ๊ฐ ํ๋ฌ๊ทธ๊ฐ ๊ฝํ ์ฑ๋ก ๋ฐฐํฐ๋ฆฌ ๊ณผ์ด์ด ์๊ธฐ๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ ๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถํ์ด ์ค๋ฅด๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋๋ค. ์ฌ์ค ์กฐ๋ง๊ฐ ๋ ธํธ๋ถ ์๋ฒ์์ ๋ฏธ๋ PC ์๋ฒ๋ก ๊ฐ์ํ ์์ ์ด์๊ธฐ ๋๋ฌธ์ ๊ณง๋ฐ๋ก ํ๊ธฐ ์ฒ๋ถํ๋ค. ์ดํ ๊ณ ๋ํ๋ ๋งฅ๋ฏธ๋๋ฅผ ์์ ํ๋ฉฐ ๋ณ๋ค๋ฅธ ๊ณ ๋ฏผ ์์ด 24์๊ฐ ์์ ๊ณ ๋ฌธ์ค(?)๋ก ๋ค์ด๊ฐ๊ฒ ๋์๋ค. (์ฌ..์ฌ์... ์ด๋ ค์คใ ใ ...) ์ฐธ๊ณ ๋ก 24์๊ฐ ์ผ์ ธ์๋ ์๋ฒ์ฉ์ด๋ผ ์ด๊ธฐ์ ์ธํ ํ ๋ ์ ์ธํ๊ณ ๋ ๋ชจ๋ํฐ ์ฐ๊ฒฐ๋ ์ ์ธํด๋์๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฒ ๊ด๋ฆฌ๊ฐ ํ๋ค์ด์ง๊ธฐ์ VNC ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ์๊ฒฉ ์ ์์ผ๋ก ๊ด๋ฆฌํ๋ค. ๊ธฐ์กด์ ๋งฅ๋ถ์ด ์์๊ธฐ ๋๋ฌธ์ ํฌ๋กฌ์ผ๋ก vnc:// ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ๋ ธํธ๋ถ ์๋ฒ vs ๋งฅ๋ฏธ..
๋ด๊ฐ ์ ๊ธฐ์ ๋์ ์ ์์ด ์ค์ํ๊ฒ ์๊ฐํ๋ ์์น
์์น ์ธ์์๋ ์๋ง์ ๊ธฐ์ ์ด ์๋ค. ์ค๋๋ ๊ธฐ์ ๋ถํฐ ์๋ก ๋์จ ๋ฐ๋๋ฐ๋ํ ๊ธฐ์ ๊น์ง, ๊ทธ ๋ฒ์๋ ์ง๊ธ๋ ๋์ด์ง๊ณ ์๋ค. ๊ทธ๋ฌ๋ ์ ๊ธฐ์ ์ด ์ต์ ์ด๊ณ ์ข์ ๋ณด์ธ๋ค๊ณ ํด์ ๋ฌด์์ ๋์ ํ๋ค๊ฐ๋ ๋ญํจ๋ฅผ ๋ณผ ์ ์๋ค. ๊ทธ๋งํผ ์์์น ๋ชปํ ์ด์๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ณ ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋์ด์์ง ์์ ๋ฒ๊ทธ๋ ์ทจ์ฝ์ ์ ๋ํด ๋ฐ ๋น ๋ฅธ ๋์์ด ํ๋ค๋ค๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ์ ๊ธฐ์ ์ ๋ณด์์ ์ผ๋ก๋ง ๋ฐ๋ผ๋ณธ๋ค๋ฉด, ๋ณด๋ค ๋ณธ์ง์ ์ธ ์์ฐ์ฑ์ ํด์น ์ ์๊ธฐ์ ์ ๊ธฐ์ ์ ๋ํด์๋ ์ ์คํ๊ฒ ๋ฐ๋ผ๋ณด์์ผ ํ๋ค. ๋ฐ๋ผ์ ์ด ๊ธ์์๋ ์ ๊ธฐ์ ์ ๋์ ํ์ ๋์ ์ฅ๋จ์ ์ ๋น๊ตํ๊ณ ํ๋ก๋ํธ๋ฅผ ์ํ ๋ฐฉํฅ์ ์งํฅํ๋ ์์น์ ์ ์ํ๊ณ ์ ํ๋ค. ํ๋, ์ ๊ธฐ์ ์ด ๊ธฐ์ ์์กด๋๋ฅผ ๋์ด๋๊ฐ. ํ๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์ ํํ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๋ฐ..
Prometheus + Node Exporter ์ฐ๋ํ๊ธฐ
์์ฝ ํ๋ก๋ฉํ ์ฐ์ค๋ ์คํ์์ค ์์คํ ๋ชจ๋ํฐ๋ง ํด์ด๋ค. ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ด์ฉํ๋ ์์คํ ์ด๋ผ๋ฉด ํ๋ก๋ฉํ ์ฐ์ค๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ๊ถ์ฅํ ์ ๋๋ก ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค. ํ๋ก๋ฉํ ์ฐ์ค๊ฐ ๋งคํธ๋ฆญ ์์ง์ ํ๊ธฐ ์ํด์๋ ์ต์คํฌํฐ๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ๋๊ฒ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ํฐ๋ง ํด๊ณผ ๋ค๋ฅธ ์ ์ push๊ฐ ์๋ pull ๋ฐฉ์์ผ๋ก ๋งคํธ๋ฆญ์ ์์งํ๋ค๋ ์ ์ด๋ค. ์ด๋ ์ต์คํฌํฐ ์๋ฒ๋ ์ ์ก ์ค์ผ์ค ๋ถํ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ํ๋ก๋ฉํ ์ฐ์ค ์ค์น&์คํ ๋งฅ OS์์ ๊ตฌ๋๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ homebrew๋ฅผ ์ด์ฉํ๊ฒ ๋ค. ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ ์ค์น ํ ์คํ์ ํด๋ณด์. ์ดํ http://localhost:9090/ ๋ก ์ ์ํด์ ์ ์ ์๋ํ๋์ง ํ์ธํ๋ฉด ๋๋ค. brew install prometheus brew services start..
[ NodeJS ] winston ์ฝ์์์ ์์ ์ง์ ํ๊ธฐ
winston ์ค์น ๋ฐ ์ค์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ ์ค์นํด์ค๋๋ค. npm i winston ์ฝ๋ ์ค์ import winston from 'winston'; import dayjs from 'dayjs'; const messageSymbol = Symbol.for('message'); const colorset = { "INFO": "\x1b[34m[ %s ]\x1b[0m", "ERROR": "\x1b[31m[ %s ]\x1b[0m", "WARN": "\x1b[33m[ %s ]\x1b[0m" } export async function init () { winston.configure({ level: 'info', format: winston.format.combine( winston.format(func..
[ NodeJS ] TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" ์๋ฌ
ํด๊ฒฐ๋ฐฉ๋ฒ ํด๊ฒฐ๋ฐฉ๋ฒ์ ์ ๋ง ๊ฐ๋จํ๋ค. node --experimental-json-modules app.js ๋ง ๋ถ์ฌ์ฃผ๊ณ ์คํํ๋ฉด ๋๋ค.
[ Webpack5 ] export 'default' was not found in ์๋ฌ
ERROR in ./frontend/public/js/handle.js 10:0-31 export 'default' (reexported as 'Feeds') was not found in './feeds.js' (possible exports: Feeds) webpack 5.72.0 compiled with 1 error in 112 ms ์นํฉ์์ ํด๋์ค๋ฅผ ์ํฌํธ ํ ๋ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ ์ ์์ต๋๋ค. ์ด๋ ์ํฌํธ ํ ํด๋์ค๋ฅผ export default class๋ก ์ค์ ํด์ฃผ์๋ฉด ์๋ฌ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค. โ ์๋ฌ ์ฝ๋ export class Feeds { constructor(token) { this.token = token } ... } ๐ ์์ ์ฝ๋ export default class Feeds { ..