ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ํ ๋ฒ์ฏค console.log("ํ์ธ")
์ ์ฐ์ด๋ณธ ๊ฒฝํ์ด ์์ ๊ฒ๋๋ค. ์ ๋ ๊ทธ๋ฌ์ต๋๋ค.
๋๋ฒ๊น ์ ๋ ๋ ํ ์น๊ตฌ, ์ธ์ ์ด๋์๋ ํธ์ถํ๋ฉด ๋ํ๋๋ log ์น๊ตฌ.
ํ์ง๋ง Electron ํ๋ก์ ํธ์์ ์ด ์น๊ตฌ๊ฐ ์ฑ๋ฅ ๋ณ๋ชฉ์ ์ฃผ๋ฒ์ด ๋ ์๋ ์์ต๋๋ค.
Electron์ ๋ ๊ฐ์ ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
๊ตฌ์ฑ | ์ค๋ช |
---|---|
Renderer Process | React๊ฐ ๋์๊ฐ๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ (Chromium ๊ธฐ๋ฐ) |
Main Process | Node.js ๊ธฐ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ (Electron ์์ง) |
์ด ๋์ ๋ก๊ทธ๋ฅผ ์ฐ๋ ๋ฐฉ์๋, ๋ก๊ทธ๊ฐ ์์คํ ์ ๋ฏธ์น๋ ์ํฅ๋ ๋ค๋ฆ ๋๋ค.
console.log
)console.log
)stdout
์ผ๋ก ์ถ๋ ฅ๊ฒฐ๊ตญ, ๋จ์ํ โ๋ก๊ทธ ์ข ๋ง๋คโ ์์ค์ด ์๋๋ผ ์์คํ ์ฑ๋ฅ ์ ํ, ์ฌ์ฉ์ ๋ถํธ, ์ฌ์ง์ด ๋ณด์ ์ด์๋ก๋ ์ด์ด์ง ์ ์๋ ๊ตฌ์กฐ์ ๋๋ค.
์ ๊ฐ ์ฐธ์ฌํ ๋ณด์ ์๋ฃจ์ ๊ธฐ๋ฐ Electron ํ๋ก์ ํธ์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ก๊ทธ๋ค์ด ์ง์์ ์ผ๋ก ๋ฐ์ํ์ต๋๋ค:
์ด๋น ์์ญ ๊ฐ์ ๋ก๊ทธ๊ฐ ์ฐํ๋ค ๋ณด๋:
์ด๋ฐ ์ฆ์์ด ์ค์ ๋ก ์์์ต๋๋ค.
Electron์์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ๋ง์ ์ ์์ผ๋, log๊ฐ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋์ง ์๋๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋์ ๊ท์ฐฎ์์ ์๋ฐฑ ์ค์ console.log๋ฅผ ์ ์ง์ ์ต๋๋ค. ๐
ํ์ง๋งโฆ
console.log("โ
์์ฒญ ์ฑ๊ณต", response);
console.log("๐ ํ์ฌ ์ํ", status);
console.log("๐จ ์์ธ ๋ฐ์", error)
์ด๋ฐ ๋ก๊ทธ๊ฐ ๊ณ์ ์์ด๋ฉด, ๋ ๋๋ง ์ง์ฐ, ๋ฉ๋ชจ๋ฆฌ ๋์, ๋์คํฌ I/O ๋ถํ๋ก ์ด์ด์ง๋ ๊ฑธ ์ค์ ๋ก ๊ฒฝํํ์ต๋๋ค.
vite-plugin-remove-console
์๋์ผ๋ก ์ผ์ผ์ด ์ญ์ ํ๋ ๊ฑด ๋๋ฌด ๋นํจ์จ์ ์ด์๊ณ , ๊ตฌ๊ธ๋ง ๋์ค ๋ฐ๊ฒฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฐ๋ก ์ด ๊ตฌ์์์ ๋๋ค.
npm i vite-plugin-remove-console -D
// vite.config.ts
import removeConsole from 'vite-plugin-remove-console';
export default defineConfig({
plugins: [
react(),
removeConsole({
include: ['**/*.ts', '**/*.tsx'],
}),
],
});
console.log
, console.debug
, console.info
โ ๋น๋์ ์๋ ์ ๊ฑฐ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ์ฉ๋ | ํน์ง |
---|---|---|
vite-plugin-remove-console | ๊ฐ๋ฐ ๋ก๊ทธ ์ ๊ฑฐ | ๋น๋ ์ log/debug/info ์๋ ์ ๊ฑฐ |
electron-log | ์ด์ ๋ก๊ทธ ๊ธฐ๋ก | ๋ฉ์ธ ํ๋ก์ธ์ค ๋ก๊ทธ ํ์ผ ์ ์ฅ |
winston | ๊ณ ๊ธ ๋ก๊ฑฐ | ๋ค์ํ ๋ ๋ฒจ ๊ด๋ฆฌ, ํ์ผ/์ฝ์ ์ถ๋ ฅ ๋ณํ ๊ฐ๋ฅ |
pino | ์ด๊ณ ์ ๋ก๊ฑฐ | ๋๊ท๋ชจ ํธ๋ํฝ ํ๊ฒฝ์ ์ ํฉ, Electron๊ณผ๋ ๋ ์ด์ธ๋ฆผ |
electron-log
Renderer์์๋ console.log
๋ฅผ ์ง์ฐ์ง๋ง, Main Process์์๋ ๋ก๊ทธ๋ฅผ ๋ฐ๋์ ๋จ๊ฒจ์ผ ํฉ๋๋ค.
์๋๊ณ ์? Electron ์ฑ์ ํต์ฌ ๊ธฐ๋ฅ์ ๋๋ถ๋ถ Main์์ ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ ๊ฐ ๋งก์ ํ๋ก์ ํธ๋ง ํด๋:
๋ชจ๋ ์ฃผ์ ํ๋ฆ์ Main์์ ์ผ์ด๋ฉ๋๋ค.
์ด๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์์์น ๋ชปํ ์ํฉ์ด ์๊ธฐ๋ฉด ๋ฐ๋์ ๋ก๊ทธ๊ฐ ๋จ์ ์์ด์ผ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํ์ฃ .
๊ทธ๋์ ์ ๋ Main์์๋ console.log
๋์ electron-log
๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
// main.ts
import log from 'electron-log';
log.info("๐ก ์์ง ์ด๊ธฐํ ์์");
log.warn("โ ๏ธ ์ค์ํ ์ค์ ๋๋ฝ๋จ");
log.error("โ ์ค๋ฅ ๋ฐ์", error);
electron-log
๋ก ๋จ๊ธฐ๋ ์ด์ ~!์ด์ | ์ค๋ช |
---|---|
์์คํ ์ด๋ฒคํธ ์ถ์ | ์ฌ์ฉ์๊ฐ ํด๋ฆญํ์ง ์์๋ ์๋ ๋์ํ๋ ๊ธฐ๋ฅ๋ค(์ ์ฑ , ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ง ๋ฑ)์ ๊ธฐ๋กํด์ผ ํจ |
์ฑ๋ฅ ์ต์ ํ | console.log ๋ณด๋ค IO ์์ ์ฑ ๋๊ณ , ํ
์คํธ ํ์ผ๋ก ์ ์ฅ๋๋ ๊ฐ๋ฐ์ ๋๊ตฌ ์์กด๋ ์์ |
์ด์ ๋ก๊ทธ ์์ง | ์ฌ์ฉ์ ์ปดํจํฐ์์ ์์งํ์ฌ ๊ณ ๊ฐ ์ง์, ์ฅ์ ๋ถ์์ ํ์ฉ ๊ฐ๋ฅ |
๋ณด์์ฑ | ํ ์คํธ ํ์ผ๋ก ์ ์ฅ๋๋ฉฐ, ์ฝ์์ ๋ ธ์ถ๋์ง ์์ ์ฌ์ฉ์์๊ฒ๋ ์์ |
OS | ๊ฒฝ๋ก |
---|---|
Windows | C:\Users\USERNAME\AppData\Roaming\YourAppName\log.txt |
macOS | ~/Library/Logs/YourAppName/log.txt |
ํญ๋ชฉ | console.log | electron-log |
---|---|---|
๋์ | ๊ฐ๋ฐ์ฉ ๋๋ฒ๊น | ์ด์ ์ํ ๊ธฐ๋ก |
์ ๊ฑฐ ๊ฐ๋ฅ ์ฌ๋ถ | โ vite-plugin์ผ๋ก ์ ๊ฑฐ ๊ฐ๋ฅ | โ ์ง์ ์ฝ๋์์ ๊ด๋ฆฌ |
์ถ๋ ฅ ์์น | ๋ธ๋ผ์ฐ์ ์ฝ์ / ํฐ๋ฏธ๋ | ๋ก์ปฌ ๋ก๊ทธ ํ์ผ |
์ฑ๋ฅ ์ํฅ | ๋ง์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ/CPU ์ฆ๊ฐ | ์๋์ ์ผ๋ก ์์ ์ |
์ฌ์ฉ์ ๋ ธ์ถ ๊ฐ๋ฅ์ฑ | ์์ (devtool ๋ฑ) | ์์ (๋ก์ปฌ ์ ์ฉ) |
console.log๋ ๋๋ฒ๊น ์ ์์ฃผ ์ ์ฉํ์ง๋ง, Electron์ฒ๋ผ ๋ฆฌ์์ค์ I/O์ ๋ฏผ๊ฐํ ํ๊ฒฝ์์๋ ์ค๊ณ ๋์์ด ๋ฉ๋๋ค.
๐ง ๋ก๊ทธ๋ฅผ ์ง์ฐ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ์๋๋ผ,
"์ด๋ค ๋ก๊ทธ๋ฅผ ์ธ์ , ์ด๋์, ์ด๋ป๊ฒ ๋จ๊ธธ ๊ฒ์ธ๊ฐ" ๊ฐ ์ค์ํฉ๋๋ค.
Electron ๊ธฐ๋ฐ ์ฑ์์์ ๋ก๊ทธ๋ ๋จ์ํ ๋๋ฒ๊น
๋๊ตฌ
๊ฐ ์๋๋ผ,
์ด์ ํจ์จ์ฑ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ์ข์ฐํ๋ ์์๊ฐ ๋ฉ๋๋ค.
์ง์ฐ์ง ์์๋ ๋๋ ์ฝ์ ๋ก๊ทธ?
์ด์ฉ๋ฉด, ๊ทธ๊ฒ ๋ณ๋ชฉ์ ์์์ผ ์ ์์ต๋๋ค.
์ ์ฒ๋ผ "๊ท์ฐฎ์์ ๋ก๊ทธ ์ ์ง์ ๋ ๊ทธ๋"
์ ์ ๋ฅผ ๋ฐ์ฑํ๋ฉฐโฆ
์ง๊ธ์ ์๋ํ๋ ์์ ํ ๋ก๊ทธ ์ ๋ต์ผ๋ก ํ์ธต ๋ ์ฑ์ฅํ ๊ธฐ๋ถ์ ๋๋ค.
์ข์ ๊ธ ๊ฐ์ฌํฉ๋๋ค.