피드로 돌아가기
Dev.toDevOps
원문 읽기
Zero-dep TUI 구현을 통한 EADDRINUSE 해결 프로세스 단축
When a port is already in use, there is no interactive way to find it — so I built `port-peek`
AI 요약
Context
특정 Port 점유 시 lsof, grep, kill 명령어를 순차적으로 실행해야 하는 비효율적인 Shell 리추얼 존재. 기존 CLI 도구들이 Port 번호를 사전에 알아야 하는 One-shot 방식으로 설계되어 전체 Listening Port를 탐색하며 제어하는 인터랙티브한 경험 결여.
Technical Solution
- child_process.execSync를 활용하여 OS별 네트워크 상태 조회 명령어를 실행하는 추상화 레이어 구축
- macOS의 lsof -iTCP -sTCP:LISTEN 명령어를 우선 적용하고 Linux 환경을 위한 ss 및 netstat Fallback 메커니즘 구현
- 외부 라이브러리 의존성을 완전히 배제한 Zero-dependency 설계를 통해 런타임 오버헤드 최소화
- raw mode stdin 설정을 통한 실시간 키보드 입력 처리로 Arrow-key 네비게이션 및 Enter-to-kill 인터랙션 구현
- ANSI escape 코드를 이용한 Full-screen TUI 렌더링으로 터미널 내 시각적 포트 매니지먼트 환경 제공
실천 포인트
- 반복적인 Shell 파이프라인 작업을 단일 인터페이스로 통합하는 TUI 도구 검토 - OS별 상이한 CLI 명령어의 Fallback 전략 수립을 통한 크로스 플랫폼 호환성 확보 - 가벼운 개발 도구 제작 시 의존성 최소화를 통해 배포 속도와 안정성 향상