Naite Viewer ๊ฐ์
์ค์๊ฐ ์๊ฐํ
Unix Socket ํต์
ํ๋ก์ ํธ๋ณ ๊ฒฉ๋ฆฌ
์๋ ์ฐ๊ฒฐ
Naite Viewer๋?
Naite Viewer๋ Sonamu VSCode Extension์ ํฌํจ๋ ๊ธฐ๋ฅ์ผ๋ก, ํ ์คํธ ์คํ ์ค ๊ธฐ๋ก๋ Naite ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ์๊ฐํํฉ๋๋ค. Naite๋ ํ ์คํธ ์คํ ์คNaite.t()๋ก ๊ธฐ๋กํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ VSCode Extension์ผ๋ก ์ ์กํ์ฌ, ๊ฐ๋ฐ์๊ฐ ํ
์คํธ ํ๋ฆ์ ์๊ฐ์ ์ผ๋ก ์ถ์ ํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ด๋ ์ฌ๋ฌ ํจ์ ํธ์ถ์ด ์ฝํ ์ํฉ์์ ํนํ ์ ์ฉํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
์ค์๊ฐ ๋ก๊ทธ ํ์
Naite.t()๋ก ๊ธฐ๋ก๋ ๋ชจ๋ ๋ก๊ทธ๋ฅผ ์ฆ์ VSCode ํจ๋์ ํ์ํฉ๋๋ค. ์ฝ์์์ ๋ก๊ทธ๋ฅผ ์ฐพ์ ํ์ ์์ด ๊ตฌ์กฐํ๋ ํํ๋ก ํ์ธํ ์ ์์ต๋๋ค.ํ ์คํธ๋ณ ๊ทธ๋ฃนํ
์ฝ์คํ ์ถ์
ํํฐ๋ง ๋ฐ ๊ฒ์
user:*)์ผ๋ก ํน์ ๋ชจ๋์ ๋ก๊ทธ๋ง ํํฐ๋งํ๊ฑฐ๋, ํค์๋๋ก ๋ก๊ทธ ๋ด์ฉ์ ๊ฒ์ํ ์ ์์ต๋๋ค.์ํคํ ์ฒ
1. Unix Socket ํต์
Naite Viewer๋ Unix Socket์ ํตํด ํ ์คํธ ํ๋ก์ธ์ค์ ํต์ ํฉ๋๋ค. ์ด ๋ฐฉ์์ ํ์ผ ์์คํ ์ ์ฌ์ฉํ์ง ์๊ณ ํ๋ก์ธ์ค ๊ฐ ์ง์ ํต์ ์ด ๊ฐ๋ฅํ์ฌ ๋น ๋ฅด๊ณ ์์ ํฉ๋๋ค. ์์ผ ํต์ ์ ์ด์ :- ๋น ๋ฅธ ์ ์ก: HTTP๋ ํ์ผ๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ IPC(Inter-Process Communication)
- ์ค์๊ฐ์ฑ: ํ ์คํธ ์คํ ์ฆ์ ๋ก๊ทธ๊ฐ Extension์ ์ ๋ฌ๋จ
- ๊ฒฉ๋ฆฌ: ํ๋ก์ ํธ๋ณ ๋ ๋ฆฝ๋ ์์ผ์ผ๋ก ์ถฉ๋ ๋ฐฉ์ง
- macOS / Linux
- Windows
{hash}๋ sonamu.config.ts ๊ฒฝ๋ก์ MD5 ํด์ ์ 8์๋ฆฌ์
๋๋ค.ํด์ ์์ฑ ๋ฐฉ์ ์์ธํ ๋ณด๊ธฐ
ํด์ ์์ฑ ๋ฐฉ์ ์์ธํ ๋ณด๊ธฐ
sonamu.config.ts ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ ์ ํ ํด์๋ฅผ ์์ฑํฉ๋๋ค:2. ๋ฉ์์ง ํ๋กํ ์ฝ
ํ ์คํธ ํ๋ก์ธ์ค์ Extension ๊ฐ์๋ 3๊ฐ์ง ํ์ ์ ๋ฉ์์ง๊ฐ ์ ์ก๋ฉ๋๋ค.run/start - ํ ์คํธ ๋ฐ ์์
ํ ์คํธ ๋ฐ์ด ์์๋ ๋ ์ ์ก๋ฉ๋๋ค. Extension์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ๊ธฐ์กด ๋ก๊ทธ๋ฅผ ๋ชจ๋ ํด๋ฆฌ์ดํ๊ณ ์๋ก์ด ํ ์คํธ ๋ฐ์ ์ค๋นํฉ๋๋ค.run/start ๋ฉ์์ง๊ฐ ์ ์ก๋์ด Viewer๊ฐ ์ด๊ธฐํ๋ฉ๋๋ค.test/result - ํ ์คํธ ๊ฒฐ๊ณผ
๊ฐ ํ ์คํธ ์ผ์ด์ค๊ฐ ์๋ฃ๋ ๋๋ง๋ค ์ ์ก๋ฉ๋๋ค. ํ ์คํธ ๊ฒฐ๊ณผ์ ํจ๊ป Naite ๋ก๊ทธ(traces)๊ฐ ํฌํจ๋ฉ๋๋ค.- ํ ์คํธ ๋ฉํ๋ฐ์ดํฐ: Suite๋ช , ํ์ผ ๊ฒฝ๋ก, ๋ผ์ธ ๋ฒํธ
- ํ ์คํธ ๊ฒฐ๊ณผ: ์ฑ๊ณต/์คํจ ์ํ, ์์ ์๊ฐ, ์๋ฌ ์ ๋ณด
- Naite traces:
Naite.t()๋ก ๊ธฐ๋ก๋ ๋ชจ๋ ๋ก๊ทธ
run/end - ํ ์คํธ ๋ฐ ์ข ๋ฃ
๋ชจ๋ ํ ์คํธ๊ฐ ์๋ฃ๋๋ฉด ์ ์ก๋ฉ๋๋ค. Extension์ ์ด ๋ฉ์์ง๋ก ํ ์คํธ ๋ฐ์ด ๋๋ฌ์์ ์ธ์งํฉ๋๋ค.3. ์ ์ก ํ๋ฆ
์ ์ฒด ํ ์คํธ ์คํ ๊ณผ์ ์์ ๋ฉ์์ง๊ฐ ์ ์ก๋๋ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.์ฝ๋๋ก ๋ณด๋ ์ ์ก ํ๋ฆ
์ฝ๋๋ก ๋ณด๋ ์ ์ก ํ๋ฆ
์ค์น ๋ฐ ์ค์
1. Extension ์ค์น
VSCode Marketplace์์ ์ค์น
- VSCode ์ผ์ชฝ ์ฌ์ด๋๋ฐ์์ Extensions ์์ด์ฝ ํด๋ฆญ
- โSonamuโ ๊ฒ์
- Install ๋ฒํผ ํด๋ฆญ
Extension ํ์ฑํ ํ์ธ
2. ์๋ ์ฐ๊ฒฐ
Extension์ด ์คํ๋๋ฉด ์๋์ผ๋ก ์์ผ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค:ํ๋ก์ ํธ ๊ฐ์ง
sonamu.config.ts ํ์ผ์ ์ฐพ์ต๋๋ค.ํด์ ๊ณ์ฐ
sonamu.config.ts์ ์ ๋ ๊ฒฝ๋ก๋ก MD5 ํด์๋ฅผ ์์ฑํฉ๋๋ค (์ 8์๋ฆฌ).์์ผ ์๋ฒ ์์
~/.sonamu/naite-{hash}.sock ๊ฒฝ๋ก์ Unix Socket ์๋ฒ๋ฅผ ์์ํฉ๋๋ค.ํ ์คํธ ํ๋ก์ธ์ค ๋๊ธฐ
3. ํ ์คํธ ์คํ
- ์ผ๋ฐ ์คํ
- Watch ๋ชจ๋
- ํน์ ํ์ผ
์ฌ์ฉ๋ฒ
1. Naite Viewer ํจ๋ ์ด๊ธฐ

VSCode์์ Naite Viewer ํจ๋ ์ด๊ธฐ
- Command Palette
- ์ฌ์ด๋๋ฐ
- ๋จ์ถํค
Cmd+Shift+P(macOS) ๋๋Ctrl+Shift+P(Windows/Linux)- โNaite: Open Viewerโ ์ ๋ ฅ
- Enter
2. ๋ก๊ทธ ํ์ธ
ํ ์คํธ ์คํ ์ Naite Viewer์ ๋ก๊ทธ๊ฐ ์๋์ผ๋ก ํ์๋ฉ๋๋ค.Viewer ํ๋ฉด ๊ตฌ์ฑ
Naite Viewer๋ ํ ์คํธ๋ฅผ 3๋จ๊ณ ๊ณ์ธต์ผ๋ก ํ์ํฉ๋๋ค:- ๊ณ์ธต ๊ตฌ์กฐ
- ์ค์ ํ๋ฉด
- ๊ตฌ์กฐ ์ค๋ช
Naite Viewer ๋ฉ์ธ ํ๋ฉด
3. ์ฝ์คํ ํ์ธ
๋ก๊ทธ๋ฅผ ํด๋ฆญํ๋ฉด ํด๋นNaite.t() ํธ์ถ์ ์์ธ ์ ๋ณด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ฝ์คํ ์ ๋ณด ์์
์ฝ์คํ ์ ๋ณด ์์
test(20๋ฒ์งธ ์ค): ํ ์คํธ ์ฝ๋์์Naite.t()๋ฅผ ํธ์ถํ ์์นcreateUser(45๋ฒ์งธ ์ค): ํ ์คํธ๊ฐ ํธ์ถํ ์ค์ ๋น์ฆ๋์ค ๋ก์งrunWithMockContext: Sonamu์ Context ๋ํผ (์ฌ๊ธฐ๊น์ง๋ง ํ์)
4. ํํฐ๋ง ๋ฐ ๊ฒ์
๋๊ท๋ชจ ํ ์คํธ์์๋ ์๋ฐฑ ๊ฐ์ ๋ก๊ทธ๊ฐ ์์ฑ๋ ์ ์์ต๋๋ค. ํํฐ๋ง ๊ธฐ๋ฅ์ผ๋ก ์ํ๋ ๋ก๊ทธ๋ง ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.- ํค ํจํด ํํฐ
- ํ ์คํธ ๊ฒ์
- ์ํ ํํฐ
์ค์ ํ์ฉ ์ฌ๋ก
1. ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง ๋๋ฒ๊น
์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ ๋ณต์กํ ๋ก์ง์ ๋๋ฒ๊น ํ ๋ ๊ฐ ๋จ๊ณ์ ์ํ๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.Viewer์์ ํ์ธํ๊ธฐ
Viewer์์ ํ์ธํ๊ธฐ
order:payment:start๊น์ง๋ง ๋ก๊ทธ๊ฐ ์์- ์ด๋ ๋จ๊ณ๊น์ง ์ ์ ์งํ๋์๋์ง ๋ช ํํ ํ์
- ์ฝ์คํ์ผ๋ก ์ ํํ ์คํจ ์์น ํ์ธ
order:payment:*โ ๊ฒฐ์ ๊ด๋ จ ๋ก๊ทธ๋ง ํ์order:*:startโ ๋ชจ๋ ๋จ๊ณ์ ์์ ๋ก๊ทธ๋ง ํ์
2. Syncer ์ฝ๋ ์์ฑ ์ถ์
Sonamu์ Syncer๊ฐ ์ด๋ค ํ ํ๋ฆฟ์ ๋ ๋๋งํ๊ณ ์ด๋ค ํ์ผ์ ์์ฑํ๋์ง ์ถ์ ํ ์ ์์ต๋๋ค.Syncer ๋ก๊ทธ ์์
Syncer ๋ก๊ทธ ์์
- ์ด๋ค ์์๋ก ํ์ผ์ด ์์ฑ๋์๋์ง ํ์ธ
- ๊ฐ ํ ํ๋ฆฟ ๋ ๋๋ง ์๊ฐ ์ธก์
- ํน์ ํ
ํ๋ฆฟ๋ง ํํฐ๋งํ์ฌ ํ์ธ (
syncer:renderTemplate:*)
3. API ํธ์ถ ์ฒด์ธ ์ถ์
์ฌ๋ฌ API๋ฅผ ์ฐ์์ ์ผ๋ก ํธ์ถํ๋ ๊ฒฝ์ฐ, ๊ฐ API์ ์ ์ถ๋ ฅ์ ์ถ์ ํ ์ ์์ต๋๋ค.4. ์ฑ๋ฅ ๋ณ๋ชฉ ์ง์ ํ์
์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ตฌ๊ฐ์ ์ฐพ์ ์ต์ ํํ ์ ์์ต๋๋ค.์ฑ๋ฅ ๋ถ์ํ๊ธฐ
์ฑ๋ฅ ๋ถ์ํ๊ธฐ
processData๊ฐ 3.3์ด๋ก ๊ฐ์ฅ ์ค๋ ๊ฑธ๋ฆผ (๋ณ๋ชฉ)fetchLargeData๋ 1.5์ด๋ก ์ํธsaveToDatabase๋ 0.4์ด๋ก ๋น ๋ฆ
processData ์ต์ ํ์ ์ง์คํด์ผ ํจ5. ์๋ฌ ์์ธ ์ถ์
์๋ฌ ๋ฐ์ ์ ์ด๋ ๋จ๊ณ์์, ์ด๋ค ๋ฐ์ดํฐ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ๋์ง ์ถ์ ํ ์ ์์ต๋๋ค.console.log๋ก๋ ํ์
ํ๊ธฐ ์ด๋ ค์ด ๋ณต์กํ ํธ์ถ ์ฒด์ธ์์ ํนํ ์ ์ฉํฉ๋๋ค.๋ด๋ถ ๊ตฌ์กฐ ๊น์ด ์ดํดํ๊ธฐ
NaiteReporter์ ์ฐ๊ฒฐ ๊ด๋ฆฌ
NaiteReporter๋ ์์ผ ์ฐ๊ฒฐ์ ์์ ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ฒํผ๋ง๊ณผ ์ฌ์ฐ๊ฒฐ ๋ก์ง์ ํฌํจํฉ๋๋ค.NaiteReporter ์ ์ฒด ๊ตฌ์กฐ
NaiteReporter ์ ์ฒด ๊ตฌ์กฐ
- ๋ฒํผ๋ง: Extension์ด ์์ง ์ค๋น๋์ง ์์์ด๋ ๋ฉ์์ง๋ฅผ ๋ฒํผ์ ์ ์ฅ
- ๋๊ธํ ์ฐ๊ฒฐ: ์ฐ๊ฒฐ ์คํจ๋ฅผ ์๋ฌ๋ก ์ฒ๋ฆฌํ์ง ์์
- ์๋ ์ฌ์ ์ก: ์ฐ๊ฒฐ ์ฑ๊ณต ์ ๋ฒํผ์ ๋ชจ๋ ๋ฉ์์ง๋ฅผ ์ ์ก
- CI ๊ฐ์ง: CI ํ๊ฒฝ์์๋ ์์ผ ํต์ ์ ๊ฑด๋๋
ํ๋ก์ ํธ๋ณ ์์ผ ๊ฒฉ๋ฆฌ
์ฌ๋ฌ Sonamu ํ๋ก์ ํธ๋ฅผ ๋์์ ์์ ํ ๋ ๋ก๊ทธ๊ฐ ์์ด์ง ์๋๋ก ๊ฒฉ๋ฆฌํฉ๋๋ค.- ํด์ ์์ฑ
- ์์ผ ๊ฒฝ๋ก
- ๊ฒฐ๊ณผ
- ํ๋ก์ ํธ ๊ฐ ๋ก๊ทธ ์์ ๊ฒฉ๋ฆฌ
- ๋์ ์คํ ์ง์ (A ํ ์คํธ ์ค B ํ ์คํธ ๊ฐ๋ฅ)
- ์ถฉ๋ ์๋ ์์ ์ ์ด์
bootstrap.ts์์ ํตํฉ
Sonamu์ ํ ์คํธ bootstrap์ ๊ฐ ํ ์คํธ๋ง๋คNaite.getAllTraces()๋ฅผ ํธ์ถํ์ฌ ๋ก๊ทธ๋ฅผ ์์งํฉ๋๋ค.
bootstrap.ts์ Naite ํตํฉ
bootstrap.ts์ Naite ํตํฉ
- test() ๋ํผ: Vitest์
test()๋ฅผ ๋ํํ์ฌ ์๋์ผ๋ก traces ์์ง - try-catch ์์ชฝ: ์ฑ๊ณต/์คํจ ๋ชจ๋ traces๋ฅผ ์์งํ์ฌ ์๋ฌ ๋๋ฒ๊น ์ง์
- task.meta ํ์ฉ: Vitest์ ๋ฉํ๋ฐ์ดํฐ ์์คํ ์ ํ์ฉํ์ฌ traces ์ ๋ฌ
- afterEach ์ ์ก: ๊ฐ ํ ์คํธ ์ข ๋ฃ ํ Reporter๋ก ์ ์ก
๋ฌธ์ ํด๊ฒฐ
Extension์ด ๋ก๊ทธ๋ฅผ ๋ฐ์ง ๋ชปํจ
Extension์ด ์คํ๋์ง ์์
Extension์ด ์คํ๋์ง ์์
- VSCode ํ๋จ ์ํ๋ฐ์ Sonamu ์์ด์ฝ์ด ์์
- Naite Viewer ํจ๋์ ์ด ์ ์์
- Extensions ํญ์์ Sonamu Extension ํ์ธ
- โEnableโ ๋๋ โReloadโ ๋ฒํผ ํด๋ฆญ
- VSCode ์ฌ์์:
Cmd+Shift+Pโ โReload Windowโ
์์ผ ๊ฒฝ๋ก ๋ถ์ผ์น
์์ผ ๊ฒฝ๋ก ๋ถ์ผ์น
- Extension์ ์คํ ์ค
- ํ ์คํธ๋ ์ฑ๊ณตํ์ง๋ง ๋ก๊ทธ๊ฐ ์ ๋ณด์
- ์ฝ์์ โENOENTโ ๋๋ โECONNREFUSEDโ ์๋ฌ
- VSCode์์ ํ๋ก์ ํธ ํด๋ ์ง์ ์ด๊ธฐ
- Extension ์ฌ์์
์์ผ ํ์ผ ๊ถํ ๋ฌธ์
์์ผ ํ์ผ ๊ถํ ๋ฌธ์
- โPermission deniedโ ์๋ฌ
- ์์ผ ํ์ผ์ด ์กด์ฌํ์ง๋ง ์ ๊ทผ ๋ถ๊ฐ
๋ก๊ทธ๊ฐ ๋๋ฌด ๋ง์ ๋๋ฆผ
- ๋์ ์
- ์ข์ ์
- ์กฐ๊ฑด๋ถ ๋ก๊น
CI ํ๊ฒฝ์์ ์์ผ ์ฐ๊ฒฐ ์๋ฌ
process.env.CI === "true"- GitHub Actions, GitLab CI, CircleCI ๋ฑ์์ ์๋ ์ค์ ๋จ
Watch ๋ชจ๋์์ ๋ก๊ทธ๊ฐ ์์
Watch ๋ชจ๋์์ ํ์ผ์ ์ฌ๋ฌ ๋ฒ ์์ ํ๋ฉด ์ด์ ํ ์คํธ ๋ก๊ทธ๊ฐ ๋จ์์์ ์ ์์ต๋๋ค. ์๋ ํด๋ฆฌ์ด ๋ฐฉ๋ฒ:- Naite Viewer ํจ๋ ์๋จ์ โClear Allโ ๋ฒํผ ํด๋ฆญ
- ๋๋ Command Palette โ โNaite: Clear Logsโ