90DaysOfDevOps (Day 86)

고태규·2026년 2월 7일

DevOps

목록 보기
81/87
post-thumbnail

해당 스터디는 90DaysOfDevOps
https://github.com/MichaelCade/90DaysOfDevOps
를 기반으로 진행한 내용입니다.

Day 86 - Tools To Make Your Terminal DevOps and Kubernetes Friendly

프레젠테이션에서는 엔지니어에게 터미널은 하루의 대부분을 보내는 집과 같은 곳이기때문에, 이 공간을 더 효율적이고 예쁘게 만드는 것은 생산성과 직결된다고 한다.

따라서, Zsh, Terraform, Git, 그리고 Kubernetes 환경에서 사용할 수 있는 유용한 오픈 소스 및 상용 도구들을 제시한다.


1. Zsh (Z Shell) 관련 도구


Zsh는 유닉스 기반의 쉘로, Bash와 유사하지만 훨씬 강력한 기능과 생산성 향상 도구를 제공하여 최근 개발자들 사이에서 인기가 높다.

  • Oh My Zsh

    • Zsh 구성을 관리하기 위한 커뮤니티 기반 오픈 소스 프레임워크

    • 특징: 수많은 테마와 플러그인을 제공하여 사용자 경험을 극대화

    • 설치: Zsh, curl, git이 사전에 설치되어 있어야 하며 curl, wget, fetch 등을 통해 설치 가능

    • 사용법: 홈 디렉토리의 .zshrc 파일을 수정하여 플러그인(예: git)을 추가하거나 테마를 변경할 수 있다. 다양한 테마의 스크린샷과 색상 정보를 확인하고 선택하는 것을 추천한다.

  • zsh-syntax-highlighting

    • 명령어를 입력하는 동안 실시간으로 구문을 강조해 주는 플러그인

    • 기능: 명령어, 옵션, 인수, 변수 등을 시각적으로 구분해 준다.

    • 장점: 오타나 문법 오류를 입력 단계에서 즉시 파악할 수 있어 명령어 구조를 이해하는 데 도움을 준다.

  • zsh-autosuggestions

    • 사용자의 명령어 히스토리를 기반으로 지능적인 자동 완성을 제안하는 플러그인

    • 기능: 이전에 사용했던 명령어를 기억하여, 앞부분만 입력해도 회색 텍스트로 전체 명령어를 제안한다.

    • 장점: 긴 명령어를 반복적으로 입력해야 할 때 Tab 키만 누르면 완성되므로 작업 속도가 빨라진다.


2. Terraform 관련 도구


Terraform은 HashiCorp의 IaC(Infrastructure as Code) 도구이며, Terragrunt는 Terraform 모듈을 DRY(Don't Repeat Yourself)하게 관리해 주는 래퍼 도구다.

  • tfswitch & tgswitch

    • 다양한 프로젝트나 환경에 따라 서로 다른 버전의 Terraform이나 Terragrunt를 사용해야 할 때 유용

    • 기능: 시스템에 설치된 여러 버전 중 원하는 버전을 손쉽게 전환할 수 있게 해준다.

  • Infracost

    • IaC 코드의 비용을 추정하고 추적하는 도구

    • 기능: 구성 파일을 분석하여 실시간 클라우드 비용 견적을 제공한다.

    • 활용: VS Code 확장 프로그램으로도 제공되며, 코드 작성 단계에서 예산을 고려한 의사결정을 돕는다.

  • Trivy (구 tfsec 통합)

    • 보안 스캔 도구로, 기존의 tfsec이 Trivy로 통합
    • 변화: tfsec 제작사는 도구 통합으로 인해 Trivy로의 마이그레이션을 권장한다.

    • 기능: OS 패키지, 소프트웨어 의존성, CVE(알려진 취약점), IaC(기존 tfsec 기능), 민감 정보(Secret), 라이선스 등을 포괄적으로 스캔한다.

    • 장점: 코드의 잠재적 취약점과 모범 사례 위반을 식별하고 개선 방안을 제안한다.

  • terraform-docs

    • Terraform 코드를 기반으로 문서 생성을 자동화해 주는 CLI 유틸리티

    • 기능: 구성 파일에서 정보(Requirements, Providers, Inputs, Outputs)를 추출하여 마크다운 테이블 등 다양한 형식의 깔끔한 문서를 만들어준다.


3. git 관련 도구


버전 관리를 위한 Git 사용 시 생산성을 높여주는 도구들이다.

  • Git Aliases (별칭)

    • 자주 사용하는 긴 명령어를 짧은 단축어로 정의하여 사용

    • 예시: git status 대신 gs를 입력하도록 설정하여 타이핑 수고를 덜고 속도를 높인다.

  • GitLens

    • VS Code용 확장 프로그램으로 코드의 히스토리를 추적하는 데 최적화

    • 기능: 코드 에디터 내에서 각 라인을 누가, 언제 수정했는지(Blame 기능) 바로 보여준다.

    • 상세: 커밋 메시지와 작성자 정보를 시각적으로 표시하며, 마우스 오버 시 해당 히스토리 링크로 연결되어 변경 이력을 쉽게 파악할 수 있다.

  • Git Graph

    • VS Code용 확장 프로그램으로, Git 히스토리를 그래프 형태로 시각화

    • 기능: 복잡한 브랜치 구조와 커밋 흐름을 시각적으로 표현해 준다.

    • 장점: CLI만으로는 히스토리 파악이 어려운 초심자에게 현재 브랜치 위치와 흐름을 이해하는 데 큰 도움을 준다.


4. Kubernetes 관련 도구


복잡한 쿠버네티스 시스템을 효율적으로 관리하기 위해 개발된 다양한 도구들이다.

  • Kubernetes Aliases

    • kubectl 명령어를 매번 입력하는 번거로움을 줄이기 위해 사용

    • alias k='kubectl'
       alias kpod='kubectl get pods -A'
       alias knode='kubectl get nodes'
       alias kdesp='kubectl describe pod'
       alias kdp='kubectl delete pod'
       alias='kubectl get deployments'
    • 활용: kubectl을 k와 같은 한 글자 별칭으로 설정하여 명령어 입력 속도를 비약적으로 높인다.

  • kube-ps1

    • 현재 사용 중인 클러스터 컨텍스트와 네임스페이스를 프롬프트에 시각적으로 표시

    • 필요성: 여러 클러스터를 관리할 때, 실수로 엉뚱한 클러스터(예: 프로덕션)에 명령을 내리는 치명적인 실수를 방지해 준다.

    • 기능: 터미널 프롬프트에 현재 컨텍스트와 - 네임스페이스 정보를 색상과 함께 보여주어 직관적인 확인이 가능하다.

  • kubecolor

    • kubectl 명령어의 출력 결과에 색상을 입혀 가독성을 높인다.

    • 기능: 밋밋한 텍스트 출력 대신 중요 정보를 색상으로 구분하여, 원하는 정보를 빠르게 식별할 수 있게 돕는다.

  • kubectx & kubens

    • 컨텍스트와 네임스페이스 전환을 획기적으로 간편하게 만들어주는 도구

    • kubectx: 복잡한 명령어 없이 kubectx <컨텍스트명> 입력만으로 클러스터 간 전환이 가능하다.

    • kubens: kubens <네임스페이스명> 입력만으로 네임스페이스를 즉시 변경할 수 있다.

  • K9s

    • 터미널 기반의 UI(TUI)를 제공하는 쿠버네티스 관리 대시보드다.

    • 기능: CLI 환경에서도 시각적인 인터페이스를 통해 클러스터 상태를 모니터링하고 리소스를 관리할 수 있다.

  • Lens

    • 쿠버네티스 관리를 위한 데스크톱 GUI 애플리케이션

    • 기능: 노드, 파드 등 모든 리소스를 그래픽 인터페이스로 보여주며, 마우스 클릭만으로 상세 정보를 확인하고 관리할 수 있는 강력한 도구다.

  • Popeye

    • 쿠버네티스 클러스터 분석 및 살균(Sanitizer) 도구

    • 기능: 클러스터 전체를 스캔하여 구성 오류, 리소스 비효율성, 보안 위협, 모범 사례 위반 사항 등을 찾아내고 보고한다.

  • kube-capacity

    • 클러스터 리소스 사용량과 용량을 분석하는 도구

    • 기능: CPU와 메모리의 요청(Requests) 및 제한(Limits) 설정값과 실제 사용량을 비교하여 보여주며, 노드 및 파드 단위의 용량 정보를 제공한다.

  • kube-shell

    • 쿠버네티스 CLI를 위한 통합 쉘

    • 기능: 명령어 자동 완성 및 제안 기능을 제공하여, 사용 가능한 명령어를 쉽게 찾고 실행할 수 있도록 돕는다.


5. 결론


이미 시중에는 데브옵스 여정을 돕고 생산성을 높여줄 수 있는 수많은 도구가 존재한다.

이러한 도구들을 적극적으로 활용하여 불필요한 반복 작업을 줄이고, 더 중요하고 가치 있는 일에 집중하며, 결과적으로 엔지니어로서의 삶을 더 편안하게 만드는 것이 중요하다.


0개의 댓글