Oh My Zsh를 대체하는 빠르고 효율적인 Zsh 설정

You probably don't need Oh My Zsh | Artem Golubin

작성자
jeff
발행일
2026년 01월 09일

핵심 요약

  • 1 Oh My Zsh는 불필요한 기능으로 쉘 시작 시간을 지연시키므로, 최소한의 Zsh 설정으로 성능을 최적화하는 것이 중요합니다.
  • 2 Starship을 활용하여 빠르고 사용자 정의 가능한 프롬프트를 구성하고, fzf로 효율적인 대화형 히스토리 검색을 구현할 수 있습니다.
  • 3 이러한 간결한 Zsh 설정은 쉘 시작 시간을 0.38초에서 0.07초로 단축하며, Vim 모드 등 필요에 따라 기능을 추가할 수 있습니다.

도입

이 글은 널리 추천되는 Oh My Zsh(OMZ)가 불필요한 기능과 스크립트 해석으로 인해 쉘 시작 시간을 현저히 지연시키는 문제점을 지적합니다. 저자는 매일 수백 개의 터미널 탭을 열고 닫는 자신의 워크플로우를 예시로 들며, OMZ의 비효율성이 생산성에 미치는 부정적인 영향을 강조합니다. 이에 따라 OMZ 없이 빠르고 효율적인 Zsh 환경을 구축하는 방법을 제안하며, 단순함과 필요에 따른 기능 추가의 중요성을 역설합니다.

저자는 Oh My Zsh의 대안으로 최소한의 Zsh 설정을 제안하며, 이를 통해 쉘 시작 시간을 획기적으로 단축할 수 있음을 강조합니다.

1. 최소 Zsh 설정

기본적인 Zsh 설정은 다음과 같은 핵심 요소로 구성됩니다:

  • HISTSIZESAVEHIST: 거대한 히스토리 크기(10억 개)를 설정하여 과거 명령어를 보존합니다.

  • EXTENDED_HISTORY: 히스토리 항목에 타임스탬프를 추가하여 기록의 유용성을 높입니다.

  • autocd: cd 명령 없이 디렉토리 이동을 가능하게 하여 편의성을 증대합니다.

  • compinit: Zsh의 강력한 자동 완성 시스템을 초기화하여 효율적인 명령어 입력을 지원합니다.

2. Starship을 이용한 프롬프트 사용자 정의

기존 Oh My Zsh의 플러그인 방식 대신, 빠르고 단일 바이너리로 제공되는 Starship을 프롬프트 도구로 추천합니다.

  • 클라우드 서비스(aws, gcloud, azure), nodejs, package 모듈을 비활성화하여 시각적 노이즈를 줄입니다.

  • 성공 심볼(success_symbol)과 명령어 실행 시간(cmd_duration) 표시를 커스터마이징하여 정보 전달력을 높입니다.

  • .zshrc 파일에 eval "$(starship init zsh)" 한 줄을 추가하여 쉽게 활성화할 수 있습니다.

3. fzf를 활용한 히스토리 검색

zsh-autosuggestions 플러그인의 방해 요소를 지적하며, Ctrl+R에 바인딩된 fzf를 통한 대화형 퍼지 히스토리 검색을 선호합니다. 이는 필요할 때만 검색 기능을 활성화하여 집중도를 높입니다.

4. 성능 개선

이러한 변경을 통해 쉘 시작 시간이 기존 0.38초에서 0.07초로 크게 단축됨을 보여줍니다. 이는 매일 수많은 터미널 탭을 사용하는 사용자에게 상당한 생산성 향상을 의미합니다.

5. 기타 유용한 팁

  • Vim 사용자에게는 Zsh의 Vim 모드(set -o vi) 활성화를 권장하여 명령어 편집 속도를 향상시킬 수 있습니다.

  • 저자는 tmux와 터미널 기반 에디터(helix)를 활용하며, lazygit, yazi 파일 관리자 팝업 및 임시 분할 화면을 자주 사용하여 수많은 쉘 세션을 여는 워크플로우를 설명합니다.

결론

저자는 Oh My Zsh에서 벗어나 최소한으로 커스터마이징된 Zsh 환경으로 전환한 후, 새로운 워크플로우에 적응하는 데 며칠밖에 걸리지 않았다고 결론 내립니다. 쉘 시작 시간이 0.38초에서 0.07초로 크게 단축된 것은 특히 터미널 탭을 자주 여는 사용자에게 엄청난 이점임을 강조합니다. 이 글은 불필요한 기능으로 인해 성능 저하를 감수하기보다는, 필요한 기능만을 선별적으로 추가하여 효율성을 극대화하는 Zsh 설정의 중요성을 시사합니다. 필요한 경우 플러그인을 수동으로 로드하는 유연성 또한 유지됩니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!