Oh My Zsh 대신, 쉘 시작 시간을 5배 빠르게!
Oh My Zsh는 쉘 시작 시간을 늦추는 과도한 부하를 유발하며, 불필요한 플러그인으로 인해 성능 저하를 초래함
최소한의 Zsh 설정과 Starship을 활용하여 쉘 시작 시간을 획기적으로 단축하고, Git, 가상 환경, 언어 관련 플러그인을 대체함
fzf를 활용한 히스토리 검색, Vim 모드 활성화 등, 개발 생산성을 높이는 다양한 팁을 제공함
수백 개의 터미널 탭을 사용하는 개발 환경에서 쉘 시작 시간 최적화의 중요성을 강조하며, 쉘 설정 단순화의 필요성을 역설함
Oh My Zsh의 성능 문제점
Oh My Zsh는 다양한 플러그인과 테마를 제공하지만, 쉘 시작 시 모든 스크립트를 해석해야 하므로 쉘 시작 시간(Shell Startup Time)을 늦춘다는 비판을 받는다. 특히, Git, 자동 완성, 가상 환경 관련 플러그인은 쉘 시작 시간을 더욱 증가시키는 요인으로 작용한다. 터미널 탭(Terminal Tab)을 자주 사용하는 개발 환경에서는 이러한 지연이 생산성 저하로 이어진다.
최소 Zsh 설정 및 Starship 활용
저자는 최소한의 Zsh 설정과 Starship을 통해 쉘 시작 시간을 획기적으로 단축하는 방법을 제시한다. Starship은 Git, 가상 환경, 언어 관련 플러그인을 대체하여 시각적인 정보를 제공하며, 쉘 프롬프트(Shell Prompt)를 간결하게 유지한다. 또한, fzf를 활용한 히스토리 검색과 Vim 모드 활성화를 통해 개발 생산성을 향상시킨다.
쉘 시작 시간 최적화의 중요성
수백 개의 터미널 탭을 사용하는 개발 환경에서 쉘 시작 시간 최적화는 매우 중요하다. Oh My Zsh를 사용했을 때 0.38초였던 시작 시간이, 최소 설정을 적용한 후 0.07초로 단축되었다. 이는 쉘을 자주 사용하고, 터미널 기반 에디터(Terminal-based Editor)와 tmux를 활용하는 개발자에게는 상당한 생산성 향상을 가져다준다.
개발 생산성 향상을 위한 팁
저자는 쉘 설정을 단순화하고, 필요한 기능만 추가하는 것을 권장한다. autocd, EXTENDED_HISTORY 설정을 통해 쉘 사용성을 높이고, Vim 모드를 활성화하여 명령 편집 속도를 향상시킬 수 있다. 또한, fzf를 활용한 히스토리 검색은 zsh-autosuggestions 플러그인보다 더 효율적인 히스토리 탐색을 가능하게 한다.