ํด๋ฆฐ ์ํคํ
์ฒ ํด๋ฆฐ ์ํคํ
์ฒ๋ ํ๋ก์ ํธ๊ฐ ํ์ฅ๋ ๋ ๊ทธ ์๋ ฅ์ ๋ฐํํ๋ค. ํ๋ก์ ํธ๊ฐ ํ์ฅ๋จ์ ๋ฐ๋ผ ๋ก์ง์ด ์ฌ๋ฌ ์ฐจ๋ก ๋ฐ๋๊ฒ ๋๊ณ ๋ฐ์ดํฐ ์์กด์ฑ์ ๋ค์ฃฝ๋ฐ์ฃฝ ๋๊ธฐ ์ญ์์ด๋ค. ์ด๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ์ฒ์๋ถํฐ ๊ฒฌ๊ณ ํ๊ฒ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ก์์ผ ํ๋ค. ํด๋ฆฐ ์ํคํ
์ฒ๋ ๊ฐ์ฒด ์งํฅ ์ค๊ณ๋ฅผ ์์น์ผ๋ก ํ๋ค. ์ด ์์น์ SOLID ์์น์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋๋ฐ ์์กด์ฑ ๋ถ๋ฆฌ๊ฐ ํต์ฌ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ก๊ทธ์ธ์ ์ํด ์์ด๋์ ํจ์ค์๋๋ฅผ ์
๋ ฅํ๋ ์ ์ ๊ฐ ์๋ค๊ณ ํด๋ณด์. ๋ก๊ทธ์ธ ์ ํด๋น ์ ๋ณด๋ ์ฌ์ ์ ์ ์๋ api๊ฒฝ๋ก๋ก ์์ฒญ์ ๋ณด๋ธ๋ค. ์ดํ API ์๋ฒ์์๋ ํด๋น ๊ฒฝ๋ก์ ์ปจํธ๋กค๋ฌ๋ก ์ ๋ณด๋ฅผ ๋ณด๋ด์ฃผ๊ณ ์ปจํธ๋กค๋ฌ๋ ํด๋นํ๋ ์ ๋ณด๊ฐ ์๋์ง ๋ชจ๋ธ์์ ์๋ง์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค. ์๋ง์ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋ก๊ทธ์ธ ์ฑ๊ณต์ด๋ผ๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ฐํํด์ค๋ค. ..
๐ป๊ธฐ์
๊ฐํน๊ฐ๋ค ๋ณ๋์ ์ต์คํ
์
์ ์ค์นํ๋ค ๋ณด๋ฉด ์ด๋ฏธ CSS ์๋์์ฑ์ด ์ ์ฉ๋์ด ์์์๋ CSS ํ์ผ์ ์๋์์ฑ์ด ๋จ์ง ์์ ๋๊ฐ ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ค๋ฅธ์ชฝ ํ๋จ์ ์๋ ์ธ์ด ๋ชจ๋๋ฅผ CSS๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค. ์๋ ํ๋ฉด์ฒ๋ผ ์ ์์ ์ผ๋ก ์๋์์ฑ์ด ๋จ๊ฒ ๋๋ค.
์ด์ ๊ธ 1ํธ์ ๋งฅ๋ฏธ๋๋ฅผ ์ฌ๊ฒ ๋ ๊ฒฐ์ ์ ์ธ ์ด์ ์, ํ์๋ฒ์ ๋ชฉ์ ์ด ๊ธฐ๋ก๋ ๊ธ์ด๋ค. ์ด ํฌ์คํธ๋ ์ง๊ธ๊น์ง ์ด๋ค ์กฐ๊ฑด์์ ํ์๋ฒ๋ฅผ ์ด์ํด์๊ณ , ๋๋ต 4๋
๊ฐ ํ์๋ฒ 3๋๋ฅผ ๋๋ ค๋ณธ ์ฌ๋์ผ๋ก์ ํ์๋ฒ์ ์ ์ ๊ธฐ์ค์ ๊ณต์ ํ๋ ค๊ณ ํ๋ค. https://devent.tistory.com/174 Mac mini๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ถํด๋ณด๋ฉฐ #1 ์ฌ๊ฑด์ ๋ฐ๋จ ์ง๋ 3๋
๊ฐ LG 14์ธ์น ๊ทธ๋จ๊ณผ HP ๋
ธํธ๋ถ 2๋๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์๋ค. ๊ทธ๋ฌ๋ ์ค ์ค๋ ๊ธฐ๊ฐ ํ๋ฌ๊ทธ๊ฐ ๊ฝํ ์ฑ๋ก ๋ฐฐํฐ๋ฆฌ ๊ณผ์ด์ด ์๊ธฐ๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ ๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถํ์ด ์ค๋ฅด๋ ํ์์ด ๋ฐ devent.tistory.com ๋งฅ ๋ฏธ๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ๊น์ง LG ๊ทธ๋จ 14์ธ์น๋ก๋ ๊ฐ๋จํ ์น์๋ฒ๋ฅผ ๊ตฌ์ถํ๋๋ฐ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ทธ๋ฌ๋ ๋์์ ์์๊ฐ ๋๊ณ ์ฌ์ดํธ์ ํธ๋ํฝ์ด ๋ฌด๊ฑฐ์์ง๋ฉด์ ์ ์ฐจ ๋ถ..
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..
์ฌ๊ฑด์ ๋ฐ๋จ ์ง๋ 3๋
๊ฐ LG 14์ธ์น ๊ทธ๋จ๊ณผ HP ๋
ธํธ๋ถ 2๋๋ก ํ์๋ฒ๋ฅผ ๊ตฌ์ฑํ์๋ค. ๊ทธ๋ฌ๋ ์ค ์ค๋ ๊ธฐ๊ฐ ํ๋ฌ๊ทธ๊ฐ ๊ฝํ ์ฑ๋ก ๋ฐฐํฐ๋ฆฌ ๊ณผ์ด์ด ์๊ธฐ๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ ๋ฐฐํฐ๋ฆฌ๊ฐ ๋ถํ์ด ์ค๋ฅด๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋๋ค. ์ฌ์ค ์กฐ๋ง๊ฐ ๋
ธํธ๋ถ ์๋ฒ์์ ๋ฏธ๋ PC ์๋ฒ๋ก ๊ฐ์ํ ์์ ์ด์๊ธฐ ๋๋ฌธ์ ๊ณง๋ฐ๋ก ํ๊ธฐ ์ฒ๋ถํ๋ค. ์ดํ ๊ณ ๋ํ๋ ๋งฅ๋ฏธ๋๋ฅผ ์์ ํ๋ฉฐ ๋ณ๋ค๋ฅธ ๊ณ ๋ฏผ ์์ด 24์๊ฐ ์์ ๊ณ ๋ฌธ์ค(?)๋ก ๋ค์ด๊ฐ๊ฒ ๋์๋ค. (์ฌ..์ฌ์... ์ด๋ ค์คใ
ใ
...) ์ฐธ๊ณ ๋ก 24์๊ฐ ์ผ์ ธ์๋ ์๋ฒ์ฉ์ด๋ผ ์ด๊ธฐ์ ์ธํ
ํ ๋ ์ ์ธํ๊ณ ๋ ๋ชจ๋ํฐ ์ฐ๊ฒฐ๋ ์ ์ธํด๋์๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฒ ๊ด๋ฆฌ๊ฐ ํ๋ค์ด์ง๊ธฐ์ VNC ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ์๊ฒฉ ์ ์์ผ๋ก ๊ด๋ฆฌํ๋ค. ๊ธฐ์กด์ ๋งฅ๋ถ์ด ์์๊ธฐ ๋๋ฌธ์ ํฌ๋กฌ์ผ๋ก vnc:// ์ฃผ์๋ฅผ ์
๋ ฅํ๊ธฐ๋ง ํ๋ฉด ๋๋ค. ๋
ธํธ๋ถ ์๋ฒ vs ๋งฅ๋ฏธ..
์์น ์ธ์์๋ ์๋ง์ ๊ธฐ์ ์ด ์๋ค. ์ค๋๋ ๊ธฐ์ ๋ถํฐ ์๋ก ๋์จ ๋ฐ๋๋ฐ๋ํ ๊ธฐ์ ๊น์ง, ๊ทธ ๋ฒ์๋ ์ง๊ธ๋ ๋์ด์ง๊ณ ์๋ค. ๊ทธ๋ฌ๋ ์ ๊ธฐ์ ์ด ์ต์ ์ด๊ณ ์ข์ ๋ณด์ธ๋ค๊ณ ํด์ ๋ฌด์์ ๋์
ํ๋ค๊ฐ๋ ๋ญํจ๋ฅผ ๋ณผ ์ ์๋ค. ๊ทธ๋งํผ ์์์น ๋ชปํ ์ด์๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ณ ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋์ด์์ง ์์ ๋ฒ๊ทธ๋ ์ทจ์ฝ์ ์ ๋ํด ๋ฐ ๋น ๋ฅธ ๋์์ด ํ๋ค๋ค๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ์ ๊ธฐ์ ์ ๋ณด์์ ์ผ๋ก๋ง ๋ฐ๋ผ๋ณธ๋ค๋ฉด, ๋ณด๋ค ๋ณธ์ง์ ์ธ ์์ฐ์ฑ์ ํด์น ์ ์๊ธฐ์ ์ ๊ธฐ์ ์ ๋ํด์๋ ์ ์คํ๊ฒ ๋ฐ๋ผ๋ณด์์ผ ํ๋ค. ๋ฐ๋ผ์ ์ด ๊ธ์์๋ ์ ๊ธฐ์ ์ ๋์
ํ์ ๋์ ์ฅ๋จ์ ์ ๋น๊ตํ๊ณ ํ๋ก๋ํธ๋ฅผ ์ํ ๋ฐฉํฅ์ ์งํฅํ๋ ์์น์ ์ ์ํ๊ณ ์ ํ๋ค. ํ๋, ์ ๊ธฐ์ ์ด ๊ธฐ์ ์์กด๋๋ฅผ ๋์ด๋๊ฐ. ํ๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์ ํํ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค. ๋ฐ..
์์ฝ ํ๋ก๋ฉํ
์ฐ์ค๋ ์คํ์์ค ์์คํ
๋ชจ๋ํฐ๋ง ํด์ด๋ค. ์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ด์ฉํ๋ ์์คํ
์ด๋ผ๋ฉด ํ๋ก๋ฉํ
์ฐ์ค๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ๊ถ์ฅํ ์ ๋๋ก ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค. ํ๋ก๋ฉํ
์ฐ์ค๊ฐ ๋งคํธ๋ฆญ ์์ง์ ํ๊ธฐ ์ํด์๋ ์ต์คํฌํฐ๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ๋๊ฒ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ํฐ๋ง ํด๊ณผ ๋ค๋ฅธ ์ ์ push๊ฐ ์๋ pull ๋ฐฉ์์ผ๋ก ๋งคํธ๋ฆญ์ ์์งํ๋ค๋ ์ ์ด๋ค. ์ด๋ ์ต์คํฌํฐ ์๋ฒ๋ ์ ์ก ์ค์ผ์ค ๋ถํ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ํ๋ก๋ฉํ
์ฐ์ค ์ค์น&์คํ ๋งฅ OS์์ ๊ตฌ๋๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ homebrew๋ฅผ ์ด์ฉํ๊ฒ ๋ค. ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ ์ค์น ํ ์คํ์ ํด๋ณด์. ์ดํ http://localhost:9090/ ๋ก ์ ์ํด์ ์ ์ ์๋ํ๋์ง ํ์ธํ๋ฉด ๋๋ค. brew install prometheus brew services start..
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..