IDE 없이 개발하기

VSCode나 WebStorm 같은 IDE 없이, 터미널만으로 개발하고 있습니다. 코드 편집, Git 관리, 파일 탐색, Docker 관리까지 모든 작업을 터미널 안에서 처리합니다. 키보드에서 손이 떠나는 순간을 최소화하는 것이 목표이며, 이 글에서는 그 환경을 구성하는 도구들을 소개합니다.

터미널 환경

Kitty

터미널 에뮬레이터로 Kitty를 사용하고 있습니다. GPU 기반 렌더링으로 빠르고, 설정 파일 기반으로 커스터마이징이 간편합니다.

tmux

터미널 멀티플렉서로 tmux를 사용합니다.
하나의 터미널 창 안에서 여러 세션과 패널을 관리할 수 있어, 프로젝트별로 작업 환경을 분리하기 좋습니다.

프로젝트당 하나의 tmux session을 열고, 그 안에 두 개의 window를 기본으로 구성합니다.

  • Window
    • ide — LazyVim과 Claude Code를 vsplit으로 나란히 배치하여 코드 편집과 AI 어시스턴트를 동시에 사용. 별도의 셸 스크립트를 작성해두어 alias 하나로 바로 세팅할 수 있도록 구성
    • zsh — 개발 서버 실행, 빌드, 기타 CLI 작업용

zsh 플러그인

  • zsh-autosuggestions — 이전 입력 기록을 기반으로 명령어를 자동 추천
  • zsh-syntax-highlighting — 명령어 입력 시 실시간 구문 강조
  • zsh-vi-mode — zsh에서 Vim 키바인딩 사용
  • fzf — 검색을 활용한 명령어 히스토리, 파일, 디렉토리 탐색

에디터

LazyVim

에디터는 LazyVim을 사용하고 있습니다. LazyExtra를 통해 다양한 플러그인을 쉽게 적용할 수 있고, 커뮤니티가 크기 때문에 선택했습니다.

사용 중인 Extras

Coding

  • coding.mini-surround — 괄호/따옴표 등 감싸기 편집
  • coding.yanky — 향상된 Yank/Paste

Editor

  • editor.harpoon2 — 자주 사용하는 파일 빠른 전환
  • editor.mini-diff — 인라인 diff 표시
  • editor.outline — 코드 아웃라인 사이드바
  • editor.overseer — 태스크 러너
  • editor.telescope — 퍼지 파인더

Formatting & Linting

  • formatting.prettier — Prettier 포맷팅
  • linting.eslint — ESLint 린팅

Util

  • util.dot — dotfile 언어 지원
  • util.mini-hipatterns — 코드 내 색상 하이라이트, Tailwind CSS 지원
  • util.octo — GitHub Issue/PR 관리
  • util.rest — REST API 클라이언트

CLI 도구

yazi

터미널 파일 매니저로 yazi를 사용합니다. 빠른 파일 탐색과 미리보기를 지원합니다.

lazygit

Git 작업은 lazygit으로 처리합니다. 터미널에서 직관적인 UI로 커밋, 브랜치, 리베이스 등을 쉽게 할 수 있습니다.

lazygit 예제

lazydocker

Docker 관리는 lazydocker를 사용합니다. 컨테이너, 이미지, 볼륨 등을 터미널에서 한눈에 확인하고 관리할 수 있습니다.

lazydocker 예제

키보드 커스터마이징

Karabiner Elements

Karabiner Elements를 활용하여 CapsLock 키를 커스텀하고 있습니다.

  • 길게 누르면: Ctrl로 동작
  • 짧게 눌렀다 떼면: ESC로 동작

Vim 사용 시 ESC 키를 자주 누르게 되는데, CapsLock 위치가 훨씬 접근성이 좋습니다. 동시에 Ctrl 역할도 겸하기 때문에 tmux prefix 등 다양한 단축키에도 활용됩니다.

한/영 전환은 Ctrl + Spacebar 조합을 사용하고 있습니다.

테마

터미널 환경에서 사용하는 대부분의 도구에 Catppuccin 테마를 적용하고 있습니다. Kitty, LazyVim, tmux, yazi, lazygit 등 전반적으로 통일된 색상을 사용하여 일관된 개발 환경을 유지하고 있습니다.

Dotfiles

위에서 소개한 도구들의 설정 파일은 dotfiles 저장소에서 관리하고 있습니다.

마무리

도구는 계속 바뀔 수 있지만, 키보드 중심의 워크플로우를 한번 익혀두면 어떤 환경에서든 빠르게 적응할 수 있습니다.