Skip to content

Developer Tools ko

goodbug edited this page May 12, 2026 · 1 revision

๊ฐœ๋ฐœ์ž ๋„๊ตฌ

Unifyl์€ ํŒŒ์ผ ๋งค๋‹ˆ์ €๋ฅผ ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ ์›Œํฌ์Šคํ…Œ์ด์…˜์œผ๋กœ ๋ณ€๋ชจ์‹œํ‚ค๋Š” ํฌ๊ด„์ ์ธ ๊ฐœ๋ฐœ์ž ์ง€ํ–ฅ ๋„๊ตฌ ๋ชจ์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋“ค์€ Developer ๋ฉ”๋‰ด์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋…๋ฆฝ๋œ ํ”Œ๋กœํŒ… ์œˆ๋„์šฐ๋กœ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ชฉ์ฐจ

  1. ์ธ๋ผ์ธ ํ„ฐ๋ฏธ๋„
  2. ๋กœ๊ทธ ๋ทฐ์–ด
  3. ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต
  4. ํฌํŠธ / ์†Œ์ผ“ ๋ทฐ์–ด
  5. SSH ํ„ฐ๋„ ๋งค๋‹ˆ์ €
  6. Docker ์ปจํ…Œ์ด๋„ˆ ํƒ์ƒ‰๊ธฐ
  7. ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ
  8. ๊ธฐ๋Šฅ ํ‹ฐ์–ด
  9. ์Šคํฌ๋ฆฐ์ƒท

์ธ๋ผ์ธ ํ„ฐ๋ฏธ๋„

Unifyl์€ ํŒŒ์ผ ๋งค๋‹ˆ์ €์™€ ๊ธด๋ฐ€ํ•˜๊ฒŒ ํ†ตํ•ฉ๋œ ์ธ๋ผ์ธ ํ„ฐ๋ฏธ๋„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์—์„œ ํ˜„์žฌ ํŒŒ์ผ, ๋””๋ ‰ํ„ฐ๋ฆฌ, ์„ ํƒ ํ•ญ๋ชฉ์„ ์ง์ ‘ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ณ€์ˆ˜ ์‚ฝ์ž… ์‹œ์Šคํ…œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ์‚ฝ์ž…

TerminalVariableExpander๋Š” ์‹คํ–‰ ์ „์— ๋ช…๋ น ์ž…๋ ฅ์˜ ํŠน์ˆ˜ $ ํ† ํฐ์„ ์น˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒฝ๋กœ ๊ฐ’์€ ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ์ž๋™ ์…ธ ์ด์Šค์ผ€์ดํ”„๋˜๋ฉฐ, ๋‚ด๋ถ€ ๋”ฐ์˜ดํ‘œ๋Š” ์ ์ ˆํžˆ ์ด์Šค์ผ€์ดํ”„๋ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ์˜๋ฏธ ์˜ˆ์‹œ ๊ฐ’
$F ํ˜„์žฌ(์ปค์„œ) ํŒŒ์ผ์˜ ์ „์ฒด ๊ฒฝ๋กœ '/Users/me/Documents/report.pdf'
$D ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ '/Users/me/Documents'
$S ์„ ํƒ๋œ ๋ชจ๋“  ํŒŒ์ผ ๊ฒฝ๋กœ์˜ ๊ณต๋ฐฑ ๊ตฌ๋ถ„ ๋ชฉ๋ก '/Users/me/a.txt' '/Users/me/b.txt'
$f ํŒŒ์ผ๋ช…๋งŒ (ํ™•์žฅ์ž ํฌํ•จ) 'report.pdf'
$n ํ™•์žฅ์ž ์ œ์™ธ ํŒŒ์ผ๋ช… 'report'
$e ํŒŒ์ผ ํ™•์žฅ์ž๋งŒ pdf

์‚ฌ์šฉ ์˜ˆ์‹œ

# Open the current file in VS Code
code $F

# Run a script on all selected files
./process.sh $S

# Create a backup of the current file
cp $F $D/$n_backup.$e

# Search for the filename in the current directory
grep -r $f $D

# Convert the current file to a different format
ffmpeg -i $F $D/$n.mp4

๋ณ€์ˆ˜ ํ™•์žฅ์˜ ๋™์ž‘ ๋ฐฉ์‹

ํ™•์žฅ๊ธฐ๋Š” ์ด์ค‘ ํ™•์žฅ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ์ผ ํŒจ์Šค ์น˜ํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  ์น˜ํ™˜ ํ† ํฐ์€ ๊ฐ ๋ฌธ์ž ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๊ธด ๊ฒƒ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์งง์€ ๊ฒƒ ์ˆœ์œผ๋กœ ๊ฒ€์‚ฌ๋ฉ๋‹ˆ๋‹ค
  2. $ ํ† ํฐ์ด ์ผ์น˜ํ•˜๋ฉด ํ™•์žฅ๋œ ๊ฐ’์œผ๋กœ ์น˜ํ™˜๋ฉ๋‹ˆ๋‹ค
  3. ์Šค์บ”์€ ์น˜ํ™˜ ์ดํ›„ ์œ„์น˜๋ถ€ํ„ฐ ๊ณ„์†๋˜๋ฉฐ, ํ™•์žฅ๋œ ๋‚ด์šฉ์„ ์žฌ์Šค์บ”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  4. $F๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์œผ๋‚˜ ์„ ํƒ๋œ ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋นˆ ๋ฌธ์ž์—ด๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค

ํ„ฐ๋ฏธ๋„ ์„ค์ •

ํ„ฐ๋ฏธ๋„์˜ ์™ธ๊ด€๊ณผ ๋™์ž‘์€ Settings > Terminal์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธ€๊ผด๊ณผ ํฌ๊ธฐ
  • ์ƒ‰์ƒ ์Šคํ‚ด
  • ์…ธ ์„ ํƒ (zsh, bash, fish ๋“ฑ)
  • ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ๋™์ž‘ (ํ™œ์„ฑ ํŒจ๋„ ๋”ฐ๋ผ๊ฐ€๊ธฐ ๋˜๋Š” ๊ณ ์ •)

๋กœ๊ทธ ๋ทฐ์–ด

๋กœ๊ทธ ๋ทฐ์–ด๋Š” ์ƒ‰์ƒ ์ฝ”๋“œ ๋กœ๊ทธ ๋ ˆ๋ฒจ, ํ‚ค์›Œ๋“œ ํ•„ํ„ฐ๋ง, ํ…์ŠคํŠธ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ๊ฐ–์ถ˜ ์‹ค์‹œ๊ฐ„ ํŒŒ์ผ ํ…Œ์ผ๋ง(tail -f์™€ ์œ ์‚ฌ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋…๋ฆฝ ํ”Œ๋กœํŒ… ํŒจ๋„๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๋กœ๊ทธ ์—ด๊ธฐ

  1. ๋กœ๊ทธ ํŒŒ์ผ ์šฐํด๋ฆญ (.log, .txt ๋˜๋Š” ์ž„์˜์˜ ํ…์ŠคํŠธ ํŒŒ์ผ) > "Open in Log Viewer"
  2. ๋ฉ”๋‰ด: Developer > Log Viewer ํ›„ ํŒŒ์ผ ์„ ํƒ
  3. Tools ๋ฉ”๋‰ด: Tools > Log Viewer

๋ทฐ์–ด๋Š” ์ตœ์†Œ ํฌ๊ธฐ 700x400 ํ”ฝ์…€์˜ ์œˆ๋„์šฐ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

์ƒ‰์ƒ ์ฝ”๋“œ ๋กœ๊ทธ ๋ ˆ๋ฒจ

๋กœ๊ทธ ๋ทฐ์–ด๋Š” ํ‚ค์›Œ๋“œ ๋งค์นญ(๋Œ€์†Œ๋ฌธ์ž ๋ฌด๊ด€)์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๋กœ๊ทธ ๋ ˆ๋ฒจ์„ ์ž๋™ ๊ฐ์ง€ํ•˜๊ณ  ๊ฐ ๋ผ์ธ์„ ๊ทธ์— ๋งž๊ฒŒ ์ƒ‰์ƒํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ๋ฒจ ๋งค์นญ ํ‚ค์›Œ๋“œ ํ…์ŠคํŠธ ์ƒ‰์ƒ
Error ERROR, FATAL, FAIL ๋นจ๊ฐ•
Warning WARN ์ฃผํ™ฉ
Info INFO ํŒŒ๋ž‘
Normal (๊ทธ ์™ธ ์ „๋ถ€) ๊ธฐ๋ณธ ๋ ˆ์ด๋ธ” ์ƒ‰์ƒ

๊ฐ ๋ผ์ธ์€ ๋˜ํ•œ ์™ผ์ชฝ์— ๊ณ ์ •ํญ ๊ธ€๊ผด๋กœ ๋ผ์ธ ๋ฒˆํ˜ธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค(40pt ํญ ์—ด, ์šฐ์ธก ์ •๋ ฌ, 3์ฐจ ์ƒ‰์ƒ).

ํ‚ค์›Œ๋“œ ํ•„ํ„ฐ๋ง๊ณผ ํ•˜์ด๋ผ์ดํŠธ

ํˆด๋ฐ”์—๋Š” ์‹ค์‹œ๊ฐ„ ํ•„ํ„ฐ๋ง์„ ์ œ๊ณตํ•˜๋Š” ํ•„ํ„ฐ ํ…์ŠคํŠธ ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Filter: ์ž„์˜์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ผ์ธ๋งŒ ํ‘œ์‹œ (๋Œ€์†Œ๋ฌธ์ž ๋ฌด๊ด€)
  • Highlight: ๊ฐ ๋ผ์ธ ๋‚ด ๋งค์นญ ํ…์ŠคํŠธ๋Š” ๋…ธ๋ž€์ƒ‰ ๋ฐฐ๊ฒฝ ํ•˜์ด๋ผ์ดํŠธ(30% ๋ถˆํˆฌ๋ช…๋„)๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค
  • Count: ํ•„ํ„ฐ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์ƒํƒœ ํ‘œ์‹œ์ค„์— ์ „์ฒด ๋ผ์ธ ์ˆ˜์™€ ๋งค์นญ ๋ผ์ธ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค

์˜ˆ์‹œ: ํ•„ํ„ฐ ํ•„๋“œ์— "timeout"์„ ์ž…๋ ฅํ•˜๋ฉด "timeout"์„ ํฌํ•จํ•˜๋Š” ๋ผ์ธ๋งŒ ํ‘œ์‹œ๋˜๊ณ  ๊ฐ ๋“ฑ์žฅ ์œ„์น˜๊ฐ€ ๋…ธ๋ž€์ƒ‰์œผ๋กœ ํ•˜์ด๋ผ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

์ผ์‹œ์ •์ง€, ์žฌ๊ฐœ, ์ž๋™ ์Šคํฌ๋กค

์ปจํŠธ๋กค ๋™์ž‘
Pause/Resume ๋ฒ„ํŠผ ํ…Œ์ผ๋ง์˜ ์ผ์‹œ์ •์ง€/์žฌ๊ฐœ๋ฅผ ํ† ๊ธ€ํ•ฉ๋‹ˆ๋‹ค. ์ผ์‹œ์ •์ง€ ์ƒํƒœ์—์„œ๋Š” ํŒŒ์ผ์˜ ์ƒˆ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ์— ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตต์€ ์ฃผํ™ฉ์ƒ‰ "PAUSED" ํ‘œ์‹œ๊ธฐ๊ฐ€ ์ƒํƒœ ํ‘œ์‹œ์ค„์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
Auto-scroll ์ฒดํฌ๋ฐ•์Šค ํ™œ์„ฑํ™”๋˜๋ฉด ์ƒˆ ๋ผ์ธ์ด ๋„์ฐฉํ•  ๋•Œ ๋ทฐ๊ฐ€ ์ž๋™์œผ๋กœ ๋งจ ์•„๋ž˜๋กœ ์Šคํฌ๋กค๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์Šคํฌ๋กค ์œ„์น˜๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค.
Clear ๋ฒ„ํŠผ ํ‘œ์‹œ์—์„œ ๋ชจ๋“  ๋ผ์ธ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค (ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

ํ…Œ์ผ๋ง์˜ ๋™์ž‘ ๋ฐฉ์‹

  1. ํŒŒ์ผ์„ FileHandle(forReadingFrom:)์œผ๋กœ ์—ฝ๋‹ˆ๋‹ค
  2. ๋ชจ๋“  ๊ธฐ์กด ๋‚ด์šฉ์„ ์ฝ์–ด ๋ผ์ธ์œผ๋กœ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค
  3. DispatchSource.makeFileSystemObjectSource๊ฐ€ ํŒŒ์ผ ๋””์Šคํฌ๋ฆฝํ„ฐ์˜ .write ๋ฐ .extend ์ด๋ฒคํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค
  4. ์ƒˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์˜คํ”„์…‹๋ถ€ํ„ฐ ์ฝ์–ด ๋ผ์ธ ๋ฒ„ํผ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
  5. ๋ผ์ธ ๋ฒ„ํผ๋Š” 50,000๋ผ์ธ์œผ๋กœ ์ œํ•œ๋˜๋ฉฐ, ์ด ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ์˜ค๋ž˜๋œ ๋ผ์ธ์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค
  6. ๋ทฐ๊ฐ€ ์‚ฌ๋ผ์ง€๋ฉด ํŒŒ์ผ ํ•ธ๋“ค๊ณผ ๋””์ŠคํŒจ์น˜ ์†Œ์Šค๊ฐ€ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค

ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต

ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต์€ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋–ค ํŒŒ์ผ ํ•ธ๋“ค์„ ์—ด๊ณ  ์žˆ๋Š”์ง€, ์–ด๋–ค ํŒŒ์ผ์ด ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์‚ฌ์šฉ๋˜๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด lsof๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ธฐ

  • ๋ฉ”๋‰ด: Developer > Process File Map
  • ๋…๋ฆฝ ํ”Œ๋กœํŒ… ํŒจ๋„๋กœ ์—ด๋ฆผ (์ตœ์†Œ 850x500 ํ”ฝ์…€)

ํ”„๋กœ์„ธ์Šค๋ณ„ ๋ณด๊ธฐ

๊ธฐ๋ณธ ๋ณด๊ธฐ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‘ ํŒจ๋„๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค.

์™ผ์ชฝ ํŒจ๋„ - ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก:

  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ด๋ฆ„, PID, ์—ด๋ฆฐ ํŒŒ์ผ ์ˆ˜์˜ ๋ฑƒ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
  • ํ”„๋กœ์„ธ์Šค๋Š” ์ด๋ฆ„ ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค
  • ๊ฒ€์ƒ‰ ํ•„๋“œ๋Š” ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„, PID ๋˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค
  • ์นด์šดํŠธ ๋ฑƒ์ง€๋Š” ๋งค์นญ๋˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ด ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค

์˜ค๋ฅธ์ชฝ ํŒจ๋„ - ์„ ํƒ๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฐ ํŒŒ์ผ๋“ค:

  • Type๊ณผ Path ๋‘ ์—ด์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ” ํ‘œ์‹œ
  • ํŒŒ์ผ ์œ ํ˜•์€ ์ƒ‰์ƒ ์ฝ”๋“œ ๋ฑƒ์ง€๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค:
์œ ํ˜• ์ƒ‰์ƒ ์˜๋ฏธ
REG ํŒŒ๋ž‘ ์ผ๋ฐ˜ ํŒŒ์ผ
DIR ์ดˆ๋ก ๋””๋ ‰ํ„ฐ๋ฆฌ
IPv4 ์ฃผํ™ฉ IPv4 ์†Œ์ผ“
IPv6 ์ฃผํ™ฉ IPv6 ์†Œ์ผ“
unix ๋ณด๋ผ ์œ ๋‹‰์Šค ๋„๋ฉ”์ธ ์†Œ์ผ“
PIPE ๋ถ„ํ™ ํŒŒ์ดํ”„
CHR ๊ฐˆ์ƒ‰ ์บ๋ฆญํ„ฐ ๋””๋ฐ”์ด์Šค
  • ํŒŒ์ผ ๊ฒฝ๋กœ๋Š” ๊ณ ์ •ํญ ์บก์…˜ ๊ธ€๊ผด๋กœ ํ‘œ์‹œ๋˜๋ฉฐ, ๋„ˆ๋ฌด ๊ธธ๋ฉด ์ค‘๊ฐ„์ด ์ž˜๋ฆฝ๋‹ˆ๋‹ค

ํŒŒ์ผ๋ณ„ ๋ณด๊ธฐ

ํˆด๋ฐ”์˜ ์„ธ๊ทธ๋จผํ‹ฐ๋“œ ์ปจํŠธ๋กค๋กœ "By File" ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ทฐ๋Š” ๋‹ค์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • ์ƒ๋‹จ์˜ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ
  • ๊ทธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํ•ธ๋“ค์ด ์—ด๋ฆฐ ํŒŒ์ผ๋“ค์˜ ๋ชฉ๋ก
  • ๊ฐ ํŒŒ์ผ ํ•ญ๋ชฉ์€ ํŽผ์น˜๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋””์Šคํด๋กœ์ € ๊ทธ๋ฃน
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ์ด๋ฆ„๊ณผ PID๋ฅผ ํ‘œ์‹œ
  • ํ—ค๋”๋Š” ํ•ธ๋“ค์ด ์—ด๋ฆฐ ํŒŒ์ผ์˜ ์ด ์ˆ˜๋ฅผ ํ‘œ์‹œ

๋ฐ์ดํ„ฐ ๋กœ๋”ฉ

ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต์€ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋œ ํ”Œ๋ž˜๊ทธ๋กœ lsof๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

lsof -n -l -P -u <current_uid> -Fptnc
ํ”Œ๋ž˜๊ทธ ๋ชฉ์ 
-n DNS/๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ํ•ด์„ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
-l UID-์‚ฌ์šฉ์ž๋ช… ๋ณ€ํ™˜ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
-P ํฌํŠธ ๋ฒˆํ˜ธ-์„œ๋น„์Šค๋ช… ๋ณ€ํ™˜ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
-u ํ˜„์žฌ ์‚ฌ์šฉ์ž๋กœ ์ œํ•œ (์ˆ˜๋ฐฑ ๊ฐœ์˜ ์‹œ์Šคํ…œ ๋ฐ๋ชฌ ์ƒ๋žต)
-F ๊ธฐ๊ณ„ ๊ฐ€๋…์„ฑ ํ•„๋“œ ์ถœ๋ ฅ ํฌ๋งท

ํฌํŠธ / ์†Œ์ผ“ ๋ทฐ์–ด

ํฌํŠธ ๋ทฐ์–ด๋Š” ํ˜„์žฌ ๋จธ์‹ ์—์„œ LISTEN ์ƒํƒœ์ธ ๋ชจ๋“  TCP ํฌํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ, ํ•ด๋‹น ํฌํŠธ์— ๋ฐ”์ธ๋”ฉ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์—ด๊ธฐ

  • ๋ฉ”๋‰ด: Developer > Port / Socket Viewer
  • ๋…๋ฆฝ ํ”Œ๋กœํŒ… ํŒจ๋„๋กœ ์—ด๋ฆผ (์ตœ์†Œ 850x500 ํ”ฝ์…€)

ํฌํŠธ ํ…Œ์ด๋ธ”

๋ฉ”์ธ ์˜์—ญ์€ ๋‹ค์Œ ์—ด์„ ๊ฐ€์ง„ ์ •๋ ฌ ๊ฐ€๋Šฅํ•œ ํ…Œ์ด๋ธ”์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์—ด ๋‚ด์šฉ
Port ๊ณ ์ •ํญ ์„ธ๋ฏธ๋ณผ๋“œ ๊ธ€๊ผด์˜ ํฌํŠธ ๋ฒˆํ˜ธ
Protocol TCP ๋˜๋Š” UDP ๋ฑƒ์ง€ (TCP ํŒŒ๋ž€ ๋ฐฐ๊ฒฝ, UDP ์ฃผํ™ฉ ๋ฐฐ๊ฒฝ)
PID ๊ณ ์ •ํญ ์บก์…˜ ๊ธ€๊ผด์˜ ํ”„๋กœ์„ธ์Šค ID
Process ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„
State ์ดˆ๋ก ์  ํ‘œ์‹œ๊ธฐ๋ฅผ ๋™๋ฐ˜ํ•œ ์ƒํƒœ (์˜ˆ: "LISTEN")
Address ๊ณ ์ •ํญ ๊ธ€๊ผด์˜ ๋ฐ”์ธ๋”ฉ ์ฃผ์†Œ (์˜ˆ: *, 127.0.0.1, ::1)

ํˆด๋ฐ”์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ํฌํŠธ ๋ฒˆํ˜ธ, ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„ ๋˜๋Š” PID๋กœ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒ€์ƒ‰ ํ•„๋“œ
  • ์žฌ์Šค์บ”์„ ์œ„ํ•œ ์ƒˆ๋กœ๊ณ ์นจ ๋ฒ„ํŠผ

์ƒ์„ธ ํŒจ๋„

์˜ค๋ฅธ์ชฝ์—๋Š” ์„ ํƒ๋œ ํฌํŠธ์˜ ์ƒ์„ธ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  • ํฌํŠธ ๋ฒˆํ˜ธ
  • ํ”„๋กœํ† ์ฝœ
  • PID
  • ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„
  • ์ƒํƒœ
  • ์ฃผ์†Œ
  • ๋นจ๊ฐ„์ƒ‰ Kill Process ๋ฒ„ํŠผ

ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ

"Kill Process"๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ™•์ธ ๋Œ€ํ™”์ƒ์ž๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Kill process "<name>" (PID <pid>)?
This will terminate the process listening on port <port>. This action cannot be undone.

"Kill Process"๋กœ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฃŒ๋Š” kill -9 <pid>๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์ธ ์ข…๋ฃŒ ํ›„ ํฌํŠธ ๋ชฉ๋ก์€ ์ž๋™์œผ๋กœ ์ƒˆ๋กœ๊ณ ์นจ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์†Œ์Šค

ํฌํŠธ ๋ทฐ์–ด๋Š” ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

lsof -iTCP -sTCP:LISTEN -n -P -Fn -Fp -Fc

๊ฒฐ๊ณผ๋Š” ํฌํŠธ+PID ์กฐํ•ฉ์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ๋˜๊ณ  ํฌํŠธ ๋ฒˆํ˜ธ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.


SSH ํ„ฐ๋„ ๋งค๋‹ˆ์ €

SSH ํ„ฐ๋„ ๋งค๋‹ˆ์ €๋กœ Unifyl์—์„œ ์ง์ ‘ SSH ํฌํŠธ ํฌ์›Œ๋”ฉ ํ„ฐ๋„์„ ๋งŒ๋“ค๊ณ , ์ €์žฅํ•˜๊ณ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋„ ํ”„๋กœํ•„

๊ฐ ํ„ฐ๋„ ํ”„๋กœํ•„์€ ๋‹ค์Œ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ ์„ค๋ช… ๊ธฐ๋ณธ๊ฐ’
Name ํ„ฐ๋„์˜ ํ‘œ์‹œ ์ด๋ฆ„ "New Tunnel"
Local Port ํฌ์›Œ๋”ฉํ•  ๋กœ์ปฌ ๋จธ์‹ ์˜ ํฌํŠธ 8080
Remote Host ๋Œ€์ƒ ํ˜ธ์ŠคํŠธ (SSH ์„œ๋ฒ„ ๊ด€์ ์—์„œ) "localhost"
Remote Port ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์˜ ๋Œ€์ƒ ํฌํŠธ 3306
SSH Server SSH ์„œ๋ฒ„ ํ˜ธ์ŠคํŠธ๋ช… ๋˜๋Š” IP (๋น„์–ด ์žˆ์Œ)
SSH User SSH ์‚ฌ์šฉ์ž๋ช… (๋น„์–ด ์žˆ์Œ)
Use Key Auth SSH ํ‚ค ์ธ์ฆ ์‚ฌ์šฉ ์—ฌ๋ถ€ true
Key Path SSH ๊ฐœ์ธ ํ‚ค ๊ฒฝ๋กœ ~/.ssh/id_rsa

ํ”„๋กœํ•„์€ unifyl.sshTunnelProfiles ํ‚ค ์•„๋ž˜ UserDefaults์— ์˜์†ํ™”๋ฉ๋‹ˆ๋‹ค.

ํ„ฐ๋„ ์‹œ์ž‘๊ณผ ์ค‘์ง€

  • ํ”„๋กœํ•„ ์˜†์˜ Start ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํ„ฐ๋„์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค
  • ํ„ฐ๋„์€ -L ํ”Œ๋ž˜๊ทธ๋กœ ssh ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ์ž์‹ Process ์ธ์Šคํ„ด์Šค๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค
  • ์ƒํƒœ ๋ฉ”์‹œ์ง€๊ฐ€ ํ„ฐ๋„๋ณ„๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค
  • Stop์„ ํด๋ฆญํ•˜์—ฌ SSH ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค
  • SSH ํ„ฐ๋„ ๋งค๋‹ˆ์ € ์œˆ๋„์šฐ๊ฐ€ ๋‹ซํž ๋•Œ ๋ชจ๋“  ํ„ฐ๋„์ด ์ž๋™์œผ๋กœ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค

ํ”„๋กœํ•„ ๋งŒ๋“ค๊ธฐ์™€ ํŽธ์ง‘

  • + ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ํ”„๋กœํ•„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค
  • ๋ชจ๋“  ํ”„๋กœํ•„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์œ„ํ•œ ํ•„๋“œ๋ฅผ ๊ฐ€์ง„ ์‹œํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค
  • ๊ธฐ์กด ํ”„๋กœํ•„์„ ์„ ํƒํ•˜๊ณ  Edit๋ฅผ ํด๋ฆญํ•˜์—ฌ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • Delete ๋ฒ„ํŠผ์œผ๋กœ ํ”„๋กœํ•„์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค

Docker ์ปจํ…Œ์ด๋„ˆ ํƒ์ƒ‰๊ธฐ

Docker ์ปจํ…Œ์ด๋„ˆ ํƒ์ƒ‰๊ธฐ๋กœ ์‹คํ–‰ ์ค‘์ธ Docker ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํŒŒ์ผ์„ ํƒ์ƒ‰ํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ docker CLI ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก

ํƒ์ƒ‰๊ธฐ๋Š” ๋จผ์ € ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋“  Docker ์ปจํ…Œ์ด๋„ˆ(์‹คํ–‰ ์ค‘ ๋ฐ ์ค‘์ง€)๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

docker ps -a --format "{{.ID}}|{{.Names}}|{{.Image}}|{{.Status}}|{{.Ports}}|{{.CreatedAt}}|{{.State}}"

๊ฐ ์ปจํ…Œ์ด๋„ˆ ํ•ญ๋ชฉ์€ ๋‹ค์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„
  • ์ด๋ฏธ์ง€ ์ด๋ฆ„
  • ์ƒํƒœ (running, exited ๋“ฑ)
  • ํฌํŠธ ๋งคํ•‘
  • ์ƒ์„ฑ ์‹œ๊ฐ

ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ €

์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ ํƒํ•˜๋ฉด Unifyl์€ docker exec๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ํŒŒ์ผ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

docker exec <container_id> ls -la <path>

๊ฐ ํŒŒ์ผ ํ•ญ๋ชฉ์€ ๋‹ค์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ๊ถŒํ•œ
  • ์†Œ์œ ์ž์™€ ๊ทธ๋ฃน
  • ํฌ๊ธฐ
  • ๋‚ ์งœ
  • ์ด๋ฆ„
  • ๋””๋ ‰ํ„ฐ๋ฆฌ ํ‘œ์‹œ๊ธฐ

๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒŒ์ผ์€ docker cp๋ฅผ ์‚ฌ์šฉํ•ด ์ปจํ…Œ์ด๋„ˆ๋กœ/์—์„œ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ

ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ๋Š” macOS FSEvents๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ณ€๊ฒฝ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ์œ ํ˜•

์ด๋ฒคํŠธ ์œ ํ˜• ์ƒ‰์ƒ ์•„์ด์ฝ˜ ์„ค๋ช…
Created ์ดˆ๋ก plus.circle.fill ์ƒˆ ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋จ
Modified ๋…ธ๋ž‘ pencil.circle.fill ๊ธฐ์กด ํŒŒ์ผ์ด ์ˆ˜์ •๋จ
Deleted ๋นจ๊ฐ• minus.circle.fill ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์‚ญ์ œ๋จ
Renamed ํŒŒ๋ž‘ arrow.triangle.swap ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋จ

์ด๋ฒคํŠธ ํ•„ํ„ฐ๋ง

  • ๊ฐ ์ด๋ฒคํŠธ ์œ ํ˜•์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ† ๊ธ€ํ•˜์—ฌ ํŠน์ • ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ํ‘œ์‹œ/์ˆจ๊น€
  • ์ด๋ฒคํŠธ๋Š” ํƒ€์ž„์Šคํƒฌํ”„์™€ ํ•จ๊ป˜ ์Šคํฌ๋กค ๊ฐ€๋Šฅํ•œ ๋ชฉ๋ก์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค
  • ๋ชจ๋‹ˆํ„ฐ๋ง๋˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ํˆด๋ฐ”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค
  • ๋‹จ์ผ ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์ž‘/์ค‘์ง€

๋™์ž‘ ๋ฐฉ์‹

FileMonitorViewModel์€ FSEventStreamRef๋ฅผ ์‚ฌ์šฉํ•ด ์ง€์ •๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ํŒŒ์ผ์˜ ์Šค๋ƒ…์ƒท์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ด์ „ ์Šค๋ƒ…์ƒท๊ณผ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ƒ์„ฑ, ์‚ญ์ œ, ์ด๋ฆ„ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.


๊ธฐ๋Šฅ ํ‹ฐ์–ด

๋„๊ตฌ ํ‹ฐ์–ด
์ธ๋ผ์ธ ํ„ฐ๋ฏธ๋„ Free
๋กœ๊ทธ ๋ทฐ์–ด Pro
ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต Pro
ํฌํŠธ / ์†Œ์ผ“ ๋ทฐ์–ด Pro
SSH ํ„ฐ๋„ ๋งค๋‹ˆ์ € Pro
Docker ์ปจํ…Œ์ด๋„ˆ ํƒ์ƒ‰๊ธฐ Pro
ํŒŒ์ผ ๋ชจ๋‹ˆํ„ฐ Pro

์Šคํฌ๋ฆฐ์ƒท

๋กœ๊ทธ ๋ทฐ์–ด

๋กœ๊ทธ ๋ทฐ์–ด

์ƒ‰์ƒ ์ฝ”๋“œ ๋กœ๊ทธ ๋ ˆ๋ฒจ(์—๋Ÿฌ๋Š” ๋นจ๊ฐ•, ๊ฒฝ๊ณ ๋Š” ์ฃผํ™ฉ, ์ •๋ณด๋Š” ํŒŒ๋ž‘), ํˆด๋ฐ”์˜ ํ•„ํ„ฐ ํ…์ŠคํŠธ ํ•„๋“œ, ์™ผ์ชฝ ์—ฌ๋ฐฑ์˜ ๋ผ์ธ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ํ…Œ์ผ๋ง๋œ ๋กœ๊ทธ ํŒŒ์ผ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋กœ๊ทธ ๋ทฐ์–ด.

ํฌํŠธ / ์†Œ์ผ“ ๋ทฐ์–ด

ํฌํŠธ ๋ทฐ์–ด

๋ฆฌ์Šค๋‹ ์ค‘์ธ TCP ํฌํŠธ์™€ ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค, ํ”„๋กœํ† ์ฝœ ๋ฑƒ์ง€์˜ ํ…Œ์ด๋ธ”์„ ํ‘œ์‹œํ•˜๋Š” ํฌํŠธ ๋ทฐ์–ด. ์˜ค๋ฅธ์ชฝ ์ƒ์„ธ ํŒจ๋„์€ ์„ ํƒ๋œ ํฌํŠธ ์ •๋ณด์™€ Kill Process ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต

ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต

"By Process" ๋ชจ๋“œ์˜ ํ”„๋กœ์„ธ์Šค ํŒŒ์ผ ๋งต. ์™ผ์ชฝ์—๋Š” ํŒŒ์ผ ์ˆ˜ ๋ฑƒ์ง€๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก, ์˜ค๋ฅธ์ชฝ์—๋Š” ์ƒ‰์ƒ ์ฝ”๋“œ ํŒŒ์ผ ์œ ํ˜• ๋ฑƒ์ง€(REG, DIR, IPv4, unix, PIPE)๊ฐ€ ์žˆ๋Š” ์—ด๋ฆฐ ํŒŒ์ผ ํ…Œ์ด๋ธ”์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ‡ฌ๐Ÿ‡ง English ยท ๐Ÿ‡ฐ๐Ÿ‡ท ํ•œ๊ตญ์–ด (Korean)


๐Ÿ‡ฌ๐Ÿ‡ง Getting Started

Core Features

Cloud / Remote

AI

Tools

Customization

Other


๐Ÿ‡ฐ๐Ÿ‡ท ์‹œ์ž‘ํ•˜๊ธฐ

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

ํด๋ผ์šฐ๋“œ / ์›๊ฒฉ

AI

๋„๊ตฌ

์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆ

๊ธฐํƒ€

Clone this wiki locally