좋아하는 개발자 도구는 무엇인가요?
18 hours ago
2
- 에디터 영역에서는 Helix, Emacs, Neovim, Sublime Text, Zed, JetBrains IDE가 반복적으로 언급되며, 각자의 trade-off가 명확히 드러남
- 버전 관리 분야에서 jujutsu(jj)가 git CLI를 대체하는 흐름이 두드러지고, Magit·lazygit·Sublime Merge 같은 GUI 보조 도구도 다수 거론
- 셸·터미널·환경 관리에서는 Fish, WezTerm, Ghostty, kitty, tmux, Nix, mise, atuin, fzf 등이 핵심 스택으로 등장
- 반복되는 키 메시지는 "기본값이 좋은 도구를 골라 끝없는 설정을 피하자" 와 "나이 들수록 도구를 내게 맞추기보다 좋은 기본값에 적응" 이라는 합의 (반대 의견도 함께 존재)
토론 배경
- Lobsters에 올라온 "개발자가 가장 좋아하는 도구는?" 질문 스레드 "개발자들은 의견이 강해서 단 하나의 도구를 꼽기 어렵다"
- 19시간 만에 130개 이상의 댓글이 달림
- 반복적으로 등장한 철학: "나이 들수록 도구를 내게 맞추기보다 좋은 기본값을 가진 도구에 내 선호를 맞춤", "가장 잘 테스트된 경로에 있게 되어 버그도 적게 만남"
- 반대 의견: "나이 들수록 나쁜 기본값에 대한 인내심이 줄어듦. 몇 분 안에 사용 가능한 상태로 못 만들면 다른 도구로 교체"
텍스트 에디터 / IDE
-
Helix
- "커스터마이즈 가능성과 우수한 기본 경험의 적절한 균형점"
- jujutsu와 함께 사용 시 커밋 전환 후 열린 파일 수동 reload 필요 — 임시 대응으로 :reload-all 키바인드 사용
- 파일 감시 기능 PR(#14544)이 maintainer에 의해 진행 중
- selection-first 모델에 적응 못해 vim으로 회귀하는 사례도 다수
- vim 키바인딩 일부 지원 포크: evil-helix
-
Emacs
- 단순히 "Emacs"라고만 답한 사용자가 다수
- Magit은 별도 언급될 만큼 호평
- 영역별 이전 흐름: Git → Magit, Email → mu4e, RSS → elfeed, Notes/TODO/Calendar → org-mode, Finder → dired
-
Neovim
- "10년 이상 사용한 .vimrc를 은퇴시키고 Neovim으로 완전 이전함"
- 플러그인 디스트리뷰션 흐름:
- LazyVim: 가장 완성도 높음, flash.nvim 키바인드는 비활성화 권장
- AstroNvim: 더 슬림한 대안
- Kickstart.nvim: 커스터마이즈 기반 단순 시작점
- MiniMax: mini.nvim 팀이 만든 시작 config
-
JetBrains IDE
- PyCharm의 디버거 강력 추천 — Django REPL 내부에서도 동작, 템플릿 HTML/CSS/JS 지원, cherry-pick hunk 가능
- 2개 이상 JetBrains 제품 사용 시 All Products 라이선스가 더 저렴
-
Sublime Text / Zed
- "Sublime Text는 과소평가받음", 20년 이상 매일 사용한다는 응답
- 코딩은 다른 곳에서 하더라도 빠른 성능, 영속 unsaved buffer가 매일 쓰는 이유
- VSCode가 비대해져 Zed로 이전 시도 흐름도 등장
-
Kate / Notepad++
- Linux 진영의 Kate, Windows 진영의 Notepad++도 단답으로 언급
버전 관리
-
jujutsu (jj) — 올해 가장 많이 호명된 도구
- "git CLI를 버릴 줄은 몰랐는데 결국 그렇게 됨"
- "더 쉬우면서 동시에 더 강력한 도구는 드문데, jujutsu는 둘 다 해냄"
- rebase와 commit amend가 즐거워진다는 평
- 단점: 기본값이 다듬어지지 않아 color/template 조정 필요 — "고대비 무지개 유니콘 토사물 텍스트"가 기본
-
Git 보조 도구
- tig: "git log 개선판", 인터랙티브 staging에 활용
- Magit: Emacs 사용자의 핵심
- Sublime Merge: "git의 GUI 레이어지만 매우 잘 만들어짐", jj와도 merge-editor = "smerge"로 통합 가능
- lazygit: rebase, revert, stash, 다중 remote 같은 복잡한 작업을 적극 시도하게 만듦
- delta: git pager로 설정 시 syntax-highlighted diff, lazygit과 결합하면 side-by-side / inline 토글 가능
- difftastic: 줄 단위가 아닌 syntax 기반 diff
- git revise: "git에 기본 포함되어야 함"
- Beyond Compare: 20년간 사용된 diff/merge/folder 동기화 도구
셸 / 터미널
-
Fish
- "bash·zsh가 하는 일을 모두 처리하면서 별다른 설정 없이 훌륭한 경험"
- 필요 시 bash 스크립트도 그대로 실행 가능
- 새 단축키를 지속적으로 발견하게 되는 도구로 평가 (예: alt+<left|right> 디렉토리 히스토리)
-
터미널 에뮬레이터
- WezTerm: 키보드만으로 복사/붙여넣기(ctrl+shift+space), ctrl+shift+t로 동일 시스템에 탭 복제, 내장 SSH 클라이언트와 멀티플렉서
- Ghostty: macOS 네이티브 통합 — Cmd+Ctrl+D 사전 팝오버, 드래그앤드롭, 네이티브 탭, 폰트 렌더링 품질
- kitty: "기본값이 그냥 작동하면서 동시에 설정 여지가 많은 좋은 도구의 표본"
-
tmux
- 터미널 세션을 열면 가장 먼저 실행하는 명령
- SSH 종료/실수로 닫힌 터미널 대비 — Mac과 NixOS 환경을 오가도 동일 패턴 유지 가능
-
Starship
- 어떤 셸에도 플러그인 가능, 단점은 대형 repo에서 git status·branch 명령이 느림
환경 / 의존성 관리
-
Nix / NixOS
- "Stockholm syndrome일 수도 있지만 다른 Linux 배포판과 빌드 시스템을 못 쓰게 만듦"
- 프로젝트별 nix shell로 시스템 패키지를 최소화, 글로벌 PATH 오염 없이 정확한 버전 고정 가능
- "1년 후, 5년 후에도 동일하게 동작할 거라는 높은 확신"
- "학습곡선만 넘으면 마법 같음. OS 구성이 원래 이래야 했음"
-
mise
- direnv를 대체하는 도구 버전 매니저, 가벼운 CI에도 통합
- "asdf의 strictly better한 대체재"
- mise activate 기능 발견 시 direnv를 완전 제거 가능
- mise watch와 task 시스템으로 프로젝트별 액션, 파일 변경 시 작업 실행
-
Dev Containers
- docker/container 배포 환경과 dev 환경 공유 가능이 장점
- 단점: tooling이 미성숙 (reference CLI에 stop 명령조차 미구현)
-
chezmoi
- 작업·개인 머신 전반에서 일관된 개발 환경 유지, git alias·Neovim config·access token·기타 도구 설치를 함께 관리
디버깅 / 프로파일링
-
rr — record/replay 디버거
- "C/C++ 디버깅의 주력 도구, 한 번 기록하면 결정론적으로 무한히 재생"
- 메모리 주소 watch 후 마지막 쓰기 시점까지 되감기 가능
- "temporal debugging bisection" — watchpoint와 함께 메모리 손상 발생 지점을 앞뒤로 탐색
-
Pernosco
- time-travel + 데이터 흐름 분석 디버거
- Firefox의 멀티 콘텐츠 프로세스 focus handling, about:blank Chrome 호환성 작업에 결정적 도움
-
RenderDoc / Tracy / RemedyBG
- RenderDoc: 그래픽 디버깅의 만능 도구, XCode Metal 디버거보다 기본 기능 우수
- Tracy: "무제한 리소스로 프로파일러를 만든다면 결국 Tracy가 됨"
- RemedyBG: 작업 편의성이 좋은 디버거
-
XCode Instruments
- 3D/GPU 셰이더 프로파일링에서 per-line runtime cost 주석 제공
- stall 원인 분석 — 메모리 페치 대기, 동기화 대기, 제어 흐름 발산 구분
- "하드웨어·드라이버·Metal 셰이딩 언어·툴링까지 모두 통제하는 생태계의 이점"
-
기타
- strace, extrace, perf — 디버깅 필수 조합
- gdb — 여전히 단답으로 다수 언급
검색 / 텍스트 처리
- fzf: shell 역방향 검색 통합, "fuzzy 정도가 적절"
- rg '' | fzf 패턴으로 전체 repo 텍스트 검색, 매칭 선택 시 즉시 vim foo.rs +123 형태로 셸 프롬프트에 반환
- ripgrep: "out of the box로 올바른 동작, 설정 시도조차 한 적 없음"
- septum: 상호작용 코드 검색 — "7줄 이내에 triangle·vertex·mesh를 모두 포함하되 physics는 제외" 같은 조건부 검색
- fastmod / spacemod: 대량 치환
- autojump: j whatevs로 과거 작업 디렉토리 히스토리에 fuzzy 매칭하여 이동
- zoxide: autojump 유사, 더 부드러운 네비게이션
- awk: "약간만 추출해서 약간만 손보는 작업"에 여전히 강력
- entr: "이 파일들을 감시해서 이걸 실행해" — 코드베이스 테스트 자동 실행에 적합
JSON / 데이터 / 변환 도구
- jq: JSON 처리 사실상 표준, manual을 끝까지 읽기를 추천, Exercism의 jq track도 권장
- gojq: native jq보다 에러 메시지가 압도적으로 우수, yaml 입력 지원으로 muscle memory 그대로 활용 가능
- fx: 큰 JSON 출력 드릴다운
- hexdump: 특히 hexdump -C가 임베디드 디버깅에 유용 — picocom --baud 115200 /dev/ttyUSB | hexdump -C 패턴
- hexyl: 컬러 hex 뷰어
- bat: cat의 syntax-highlighted 대체
- choose, fd: 각각 cut, find의 대체
셸 히스토리 / 클립보드 / 노트
- Atuin: shell history 동기화, 디렉토리·git repo 컨텍스트 기반 히스토리 검색
- CopyQ: 약 2000개 항목의 클립보드 매니저, 메모를 놓쳤을 때 과거 작업 복원 가능
- histprune: fzf의 Ctrl+R 커스텀 — alt+D로 히스토리 항목 즉시 삭제
- Obsidian: Logseq에서 이전, 순수 Markdown 보관이 LLM/agent 협업에 유리
- Joplin: AGPLv3, 데스크탑·모바일·웹 앱 모두 지원, WebDAV/OneDrive/S3 backend, .md 파일 그대로 저장
빌드 / 작업 자동화
- just: make 대체 — 빌드가 아닌 task에 초점, 언어 무관 just lint 같은 일관된 인터페이스
- "make의 줄 단위 모드와 shell/python/node 풀스크립트 모드를 target별로 토글 가능"
- 단점: 임베디드 스크립트를 $TMPDIR에 쓴 뒤 실행, 자체 템플릿 언어 사용 (uncanny valley)
- Task (go-task): yaml 기반 대안, batteries-included 성향
- universal-test-runner: repo의 테스트 방식 자동 감지 후 실행, 추가 args pass-through
- chezmoi: 머신 간 dotfile·도구 설치까지 일관 관리
HTTP / 네트워크 / 시크릿
- Hurl: "정보를 수집하려 드는 GUI HTTP 앱을 잊자" — 단순 텍스트 포맷으로 curl 요청, 통합 테스트에 적합
- curl: 단답으로 다수 언급
- SOPS: age/SSH key로 시크릿 암호화, sops exec-env secrets.yaml -- some command 패턴
- Mutagen: SSH 위에서 양방향 실시간 파일 동기화 — 원격 머신 작업에 유용
- forge: GitHub CLI 대체, Codeberg 지원, 더 빠르고 정돈됨
기타 / 워크플로
- Quarto: markdown으로 빠른 프레젠테이션
- Nushell: PowerShell 영향을 받은 셸, GeoPackage → PostGIS, PostGIS view → PMTiles 같은 대규모 변환 스크립트를 신뢰성 있게 작성. 단점: 1.0 이전이라 업데이트마다 깨짐
- Typst: LaTeX 대체로 언급, call-by-value 기반 문법 선호
- Topiary: 다국어 포매터
- Hunk: agentic coder를 위한 review-first terminal diff 뷰어, --watch 모드를 코딩 에이전트 옆에 띄워두는 패턴
- Raycast / Alfred: macOS 런처, snippet·클립보드·파라미터화된 웹 검색
- Ergodox EZ: 10년 사용한 키보드, 커스터마이즈·전력 모두 만족
- Joplin / Fossil: 노트와 위키 자가호스팅
- AeroSpace / Sway: 타일링 윈도우 매니저
반복되는 메타 메시지
- "기본값이 좋은 도구를 골라 끝없는 설정을 피하자" — Helix, Fish, ripgrep, mise가 이 철학의 대표 사례로 호명
- 반대 관점: 끝없이 tweak한 결과 자기만의 도구 체계를 완성한 사례도 있음 — "지금은 1년에 몇 번만 손봄"
- AI 에이전트 시대의 부산물: jq·Markdown·structured text 도구가 LLM과의 협업에 유리하다는 인식 확산 — Obsidian의 순수 Markdown, hunk의 watch 모드, jq의 manual 학습 권장 등이 같은 흐름
- macOS의 그래픽 디버깅 우위: XCode Instruments의 GPU 프로파일링이 Linux/Windows 대비 압도적이라는 평가
- CLI 르네상스 vs 타이포그래피: 터미널 도구가 풍요로워지는 동시에, 긴 LLM/agent 출력은 결국 브라우저나 전용 앱의 타이포그래피가 더 읽기 좋다는 양가 관찰
-
Homepage
-
개발자
- 좋아하는 개발자 도구는 무엇인가요?