메인 칼럼 개발일지 작업물 연락처

파이썬 가상환경·포트 지옥에서 벗어나기 — uvws를 만든 이유

터미널 여러 개를 띄워 venv를 켜고, 의존성을 깔고, 점유된 포트를 찾아 헤매는 일상. 그 반복을 GUI 하나로 끝내려고 uvws를 만들었습니다.

파이썬 가상환경·포트 지옥에서 벗어나기 — uvws를 만든 이유

매일 새 파이썬 프로젝트를 띄울 때마다 반복하는 동작이 있습니다. 폴더로 들어가서, 가상환경을 만들고, 활성화하고, 의존성을 설치하고, 서버를 띄우고 — 그러다 “어, 이 포트 누가 쓰고 있지?”를 검색합니다. 터미널 창은 어느새 네다섯 개. 이 반복이 지겨워서 직접 도구를 만들었습니다. uvws입니다.

지금 바로 둘러보기 → uvws.site

무엇이 불편했나

문제는 작업 하나하나가 어려워서가 아니라, 사소한 일이 너무 자주 반복된다는 점이었습니다.

  • python -m venvsource .venv/bin/activatepip install ... 의 무한 반복
  • 로그를 보려고 터미널 창을 계속 늘려가는 일
  • Address already in use 를 만날 때마다 점유 프로세스를 찾아 죽이는 일

각각은 별것 아니지만, 하루에 열 번씩 하면 집중을 갉아먹습니다.

uvws가 푸는 방식

uvws는 빠른 파이썬 패키지 매니저 uv를 코어 엔진으로 삼아, 명령어 입력 없이 GUI에서 프로젝트를 제어하게 해줍니다.

1. 원클릭 실행 · 가상환경 자동 관리

폴더를 등록만 하면 uv run 으로 자동 실행되고, .venv 생성부터 의존성 관리까지 한 번에 끝납니다. activate를 잊어서 글로벌에 깔리는 사고가 없어집니다.

2. 실시간 내장 터미널

xterm.js 기반 내장 터미널로 stdout/stderr 로그가 실시간 스트리밍됩니다. 로그 하나 보겠다고 창을 새로 띄우지 않습니다.

3. 포트 충돌 해결사

실행 중인 포트를 자동으로 감지하고, Kill Port 버튼으로 점유된 포트를 원클릭으로 정리합니다. 더 이상 lsof -i :3000 을 외우지 않아도 됩니다.

4. 크로스플랫폼 · 자동 업데이트

Windows와 macOS 양쪽에서 네이티브로 실행되며 자동 업데이트를 지원합니다. React와 Tauri(Rust) 기반이라 가볍고 빠릅니다.

한 줄 요약

“터미널을 덜 만지고, 코드에 더 집중하기.”

만드는 과정과 기술적 결정은 작업물 페이지의 개발 일지에 따로 정리해 뒀습니다. 이 글이 “써볼 이유”라면, 그쪽은 “어떻게 만들었나”의 기록입니다.

직접 써보고 싶다면 → uvws.site · 소스는 GitHub에서 볼 수 있습니다. 피드백은 언제든 환영합니다.

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.