들어가며: 왜 생산성에 집착하게 됐나

2025년 초에 나는 번아웃 직전이었다. 매일 야근하면서 코드를 짰는데, 돌이켜보면 실제로 "가치 있는 코드"를 작성하는 시간은 하루에 2~3시간밖에 안 됐다. 나머지는 뭘 했냐면: PR 리뷰 대기, 로컬 빌드 기다리기, Jira 티켓 정리, 반복적인 보일러플레이트 작성, 디버깅을 위한 로그 뒤지기.

그래서 2025년 3월부터 의식적으로 "개발 시간 어디에 쓰고 있나"를 RescueTime으로 기록하기 시작했다. 한 달 후 데이터를 분석해보니 충격적이었다. 일하는 시간 중 42%가 "도구와 씨름하는 시간"이었다. 그때부터 도구와 워크플로우 최적화에 미친 듯이 매달렸고, 1년이 지난 지금 체감 생산성이 확실히 2배 이상 올랐다.

이 글은 내가 직접 써보고 정착한 도구들의 리스트와, 실제 측정 데이터를 바탕으로 한 효과 분석이다. "이 도구 좋다더라" 수준이 아니라, "3개월 써본 결과 이만큼 시간이 줄었다"는 수치를 함께 공유한다.

나의 개발 워크플로우

최적화된 개발 워크플로우 기획/설계 Notion + Mermaid AI로 PRD 초안 코드 작성 IntelliJ + Claude Live Templates 테스트 Testcontainers AI 테스트 생성 코드 리뷰 GitHub + AI Review 자동 리뷰 봇 배포 GitHub Actions ArgoCD 자동배포 자동화 레이어 pre-commit hooks | lint-staged | commitlint | semantic-release | dependabot 단계별 시간 절감 효과 기획/설계 3시간 → 1시간 코드 작성 8시간 → 3시간 테스트 4시간 → 1.5시간 코드 리뷰 2시간 → 40분 배포 1시간 → 5분

IDE: IntelliJ IDEA 궁극의 셋업

VS Code와 IntelliJ를 둘 다 1년 넘게 쓰다가 결국 IntelliJ로 정착했다. 이유는 간단하다: Java/Kotlin 프로젝트에서는 IntelliJ의 코드 분석 능력이 압도적이다. "이 메서드 어디서 호출되나" 같은 거 찾을 때 VS Code는 텍스트 검색이지만 IntelliJ는 의미론적 분석을 해준다.

내가 필수로 쓰는 IntelliJ 플러그인 목록:

플러그인용도생산성 효과
Key Promoter X단축키 학습2주 만에 마우스 사용 60% 감소
String Manipulation문자열 변환 (camelCase ↔ snake_case)변수명 리팩토링 시간 80% 절약
Rainbow Brackets괄호 색상 구분중첩 코드 가독성 대폭 향상
GitToolBox인라인 blame, 상태 표시git log 확인 시간 50% 절약
.ignore.gitignore 관리ignore 파일 작성 시간 절약
Database NavigatorDB 연결/쿼리별도 DB 클라이언트 불필요

그리고 IntelliJ Live Templates를 적극 활용한다. 예를 들어 stest를 타이핑하면 Spring Boot 테스트 클래스 보일러플레이트가 자동 생성된다. 자주 쓰는 패턴 15개를 등록해뒀는데, 하루에 최소 30분은 아끼는 것 같다.

AI 코딩 도구: 직접 비교한 솔직한 후기

2025년부터 2026년 초까지 GitHub Copilot, Claude Code, Cursor, Codeium을 번갈아가며 써봤다. 처음엔 회의적이었는데, 지금은 AI 도구 없이 코딩하라고 하면 맨손으로 못 박는 기분이 들 것 같다.

도구강점약점나의 활용법월 비용
Claude Code 복잡한 리팩토링, 아키텍처 상담, 긴 맥락 이해 IDE 통합이 Copilot보단 약함 설계 상담, 복잡한 버그 분석, 코드 리뷰 $20
GitHub Copilot 자동완성 속도, IDE 통합 최고 복잡한 로직에서 헛소리 빈도 높음 보일러플레이트 자동 생성, 단순 구현 $19
Cursor 코드베이스 이해도, 멀티파일 수정 IntelliJ 대비 Java 지원 약함 프론트엔드 작업, 빠른 프로토타이핑 $20
Codeium 무료, 가벼움 정확도가 유료 도구 대비 떨어짐 개인 사이드 프로젝트용 무료

내 현재 셋업은 IntelliJ + GitHub Copilot(자동완성) + Claude Code(설계/리뷰) 조합이다. 단순 반복은 Copilot이, 머리 아픈 설계 결정은 Claude가 해결해준다. 이 조합으로 보일러플레이트 코드 작성 시간을 약 70% 줄였다.

다만 AI 도구를 쓸 때 주의할 점: 생성된 코드를 반드시 이해한 후 커밋하라. 처음엔 AI가 만든 코드를 대충 훑고 넘겼다가, 프로덕션에서 N+1 쿼리 문제가 터진 적이 있다. AI가 만든 JPA 쿼리가 LAZY 로딩을 제대로 처리 안 했던 거다. 그 이후로는 AI 생성 코드는 무조건 한 줄 한 줄 읽는다.

도구 도입 전후 시간 측정 결과

주요 작업별 소요시간 비교 (분) 2025년 초 (도구 최적화 전) 2026년 현재 120분 90분 60분 30분 0 CRUD API 구현 120분 40분 테스트 작성 100분 30분 PR 리뷰 (500줄) 60분 20분 디버깅 (일반 버그) 90분 40분 배포 (프로덕션) 40분 5분 API 문서 작성 80분 10분

CLI 도구: 터미널 생산성의 비밀 무기들

GUI를 싫어하는 건 아닌데, 반복 작업은 CLI가 압도적으로 빠르다. 내가 매일 쓰는 CLI 도구들:

lazygit - Git을 터미널에서 쾌적하게

이걸 발견하고 나서 SourceTree를 삭제했다. TUI(Terminal UI)로 깔끔하게 staging, commit, push, rebase를 할 수 있다. 특히 interactive rebase가 직관적이라서, 커밋 히스토리 정리할 때 최고다. brew install lazygit 하나로 설치 끝.

fzf - 퍼지 파인더의 끝판왕

파일 찾기, 명령어 히스토리 검색, Git 브랜치 전환... 뭐든 fzf를 붙이면 된다. Ctrl+R에 fzf를 연결하면 명령어 히스토리 검색이 혁명적으로 바뀐다. 이전에 쳤던 긴 Docker 명령어? 기억 안 나도 fzf로 몇 글자만 치면 바로 나온다.

bat - cat의 상위 호환

cat 대신 bat를 쓰면 문법 하이라이팅, 줄 번호, Git diff 표시가 자동으로 된다. 사소해 보이지만 코드 파일을 터미널에서 확인할 때 가독성 차이가 크다.

ripgrep (rg) - grep보다 10배 빠른 검색

대규모 코드베이스에서 문자열 검색할 때 grep -r은 너무 느리다. ripgrep은 .gitignore를 자동으로 존중하고, 속도가 미친 듯이 빠르다. 68만 줄 코드베이스에서 검색 결과가 0.3초 안에 나온다.

나의 .zshrc 핵심 alias 목록

# Git 관련
alias gs='git status'
alias gc='git commit'
alias gp='git push'
alias gl='lazygit'
alias gco='git checkout $(git branch | fzf)'

# Docker
alias dps='docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dlog='docker logs -f $(docker ps --format "{{.Names}}" | fzf)'

# Kubernetes
alias k='kubectl'
alias kgp='kubectl get pods'
alias klogs='kubectl logs -f $(kubectl get pods -o name | fzf)'

# 자주 쓰는 디렉토리
alias proj='cd ~/projects/$(ls ~/projects | fzf)'

자동화 파이프라인: 사람이 안 해도 되는 건 기계에게

자동화 파이프라인 전체 구성 git push (개발자 액션) Pre-push Hooks lint-staged + commitlint + 단위테스트 GitHub Actions CI Pipeline 빌드 Gradle Build ~2분 테스트 Unit + Integration ~4분 보안 스캔 Trivy + SAST ~1분 Docker 빌드 Multi-stage ~3분 AI 리뷰 자동 코멘트 ~30초 ArgoCD - GitOps 배포 자동 sync | 카나리 배포 | 롤백 Slack 알림: 배포 완료! 총 소요: ~10분 개발자 개입: 0분

Git 워크플로우 최적화

우리 팀이 쓰는 Git 워크플로우는 GitHub Flow를 약간 변형한 것이다:

  1. main 브랜치는 항상 배포 가능 상태 유지
  2. 기능 브랜치는 feat/JIRA-123-description 형식
  3. PR 생성 시 자동으로 AI 리뷰 + 린트 체크 실행
  4. Approve 2개 받으면 자동 merge (squash merge)
  5. merge 되면 자동으로 스테이징 배포
  6. 스테이징에서 1시간 이상 문제 없으면 프로덕션 자동 배포

이전에는 release 브랜치를 따로 관리했는데, 그때는 merge conflict 해결에 하루의 30%를 썼다. 지금은 conflict가 거의 안 생긴다. 브랜치 수명을 최대 2일로 제한한 게 핵심이었다.

코드 리뷰 효율화: AI + 사람 하이브리드

코드 리뷰에 가장 많은 시간 최적화를 적용했다. 이전에는 500줄짜리 PR 리뷰에 1시간이 걸렸는데, 지금은 20분이면 된다.

비결은 단계적 리뷰:

  1. 1단계 (자동): PR 올리면 AI 봇이 코드 스타일, 잠재적 버그, 성능 이슈를 코멘트 (2분 소요)
  2. 2단계 (자동): CI에서 테스트 + 커버리지 체크 + 보안 스캔 (5분 소요)
  3. 3단계 (사람): 리뷰어는 비즈니스 로직과 설계에만 집중 (13분 소요)

AI가 "이 변수 null 체크 안 했네요" 같은 기계적인 리뷰를 다 해주니까, 사람은 "이 설계 방향이 맞나?"에 집중할 수 있게 됐다. 리뷰 품질도 오히려 올라갔다.

시간 측정 결과: 진짜 200% 올랐나?

RescueTime + WakaTime 데이터 기준으로 비교해본다:

지표2025년 3월2026년 3월변화
일일 코딩 시간2.5시간5.2시간+108%
주당 완료 티켓 수3.2개7.5개+134%
PR 머지까지 평균 시간18시간4시간-78%
빌드 대기 시간 (일)45분8분-82%
야근 일수 (월)12일3일-75%

"생산성 200%"라는 제목이 과장이 아님을 데이터가 보여준다. 핵심은 "코딩 실력이 올라서"가 아니라 "코딩 외의 시간을 극적으로 줄여서"이다. 도구에 투자하는 시간은 한 번이지만, 그 효과는 매일 누적된다.

마무리: 도구보다 중요한 것

도구 이야기를 잔뜩 했지만, 마지막으로 하고 싶은 말은 이거다: 가장 큰 생산성 향상은 "뭘 하지 않을지 결정하는 것"에서 왔다.

불필요한 미팅 거절하기, 완벽주의 포기하고 80% 수준에서 출시하기, "나중에 리팩토링하자"를 진짜 나중에 하기. 이런 결정들이 도구 최적화보다 더 큰 영향을 줬다.

여기서 공유한 도구와 워크플로우가 정답은 아니다. 각자의 환경과 성향에 맞게 커스터마이징해서 써야 한다. 중요한 건 "지금 내 시간이 어디에 쓰이고 있나"를 먼저 측정하고, 가장 낭비가 큰 곳부터 최적화하는 것이다.

← 목록으로 다음 글 →
Jaeseong
Jaeseong

10년차 풀스택 개발자. Spring Boot, Flutter, AI 등 실무 경험을 기록합니다.

GitHub →

💬 댓글