Vim을 왜 배워야 하나요?
VS Code, Sublime Text, Atom 등 화려한 GUI 에디터가 많은데 왜 하필 터미널 기반의 Vim을 배워야 할까요? 이 글에서는 실제 서버 작업 상황을 통해 Vim이 필요한 순간을 직접 체험해 봅니다.
이 글에서 할 것
- VS Code로는 해결할 수 없는 상황 이해하기
- Vim이 필요한 실제 시나리오 3가지 체험하기
- Vim 학습의 장기적 가치 파악하기
왜 이 도구가 필요한가
실습 1: 서버 접속 시나리오
당신은 회사에서 웹사이트 운영을 담당하고 있습니다. 갑자기 서버에 문제가 생겨 긴급하게 접속해야 하는 상황입니다.
Step 1: iTerm2 열기
Spotlight에서 iterm을 검색해 iTerm2를 엽니다.
Step 2: 원격 서버 접속
아래 터미널에서 SSH 명령으로 서버에 접속하는 과정을 확인해 보세요. 실제 서버 작업 환경과 동일합니다.
Step 3: 설정 파일 확인하기
서버에 접속 후 nginx 설정 디렉토리로 이동해 파일 목록을 확인합니다.
여기서 문제 발생!
이제 설정 파일을 수정해야 하는데, 서버에는 GUI 환경이 없습니다. VS Code 명령어를 실행하면 다음과 같이 오류가 발생합니다.
왜 이런 결과가 나올까요?
- 서버에는 GUI가 없습니다: VS Code는 그래픽 인터페이스가 필요합니다
- 원격 GUI 실행은 느립니다 - X11 포워딩 등은 설정이 복잡하고 느림
- 보안상 제한 - 대부분의 서버는 터미널 접속만 허용합니다
실습 2: 사용 가능한 에디터 확인
서버에 어떤 에디터가 설치되어 있는지 확인해 봅시다. which 명령어로 실행 파일 경로를 찾을 수 있습니다.
왜 Vim이 표준일까요?
| 에디터 |
모든 서버에 설치 |
사용 편의성 |
기능 풍부함 |
| vi |
기본 설치 |
어려움 |
기본 기능만 |
| nano |
대부분 설치 |
쉬움 |
기능 제한적 |
| vim |
대부분 설치 |
학습 필요 |
매우 강력함 |
결론: Vim은 거의 모든 Linux/Unix 서버에 기본적으로 설치되어 있습니다.
실습 3: Vim이 필요한 순간 3가지
순간 1: 긴급 설정 파일 수정
서버에서 바로 Vim으로 설정 파일을 열어 수정할 수 있습니다. 수정 후 저장하고 나가면 웹사이트가 즉시 복구됩니다.
user@server:/etc/nginx$ sudo vim /etc/nginx/nginx.conf
Vim이 열리고 설정 파일을 수정할 수 있습니다. 수정 후 저장하고 나가면:
$ sudo nginx -t && sudo systemctl restart nginx
웹사이트가 다욐을 때 즉시 복구 가능하고, 매번 파일을 다운로드/수정/업로드할 필요 없이 현장에서 바로 문제를 해결할 수 있습니다.
순간 2: 대용량 로그 파일 분석
# 수 GB 로그 파일 실시간 분석
vim /var/log/nginx/access.log
Vim에서:
/error → error 검색
G → 파일 끝으로 (최신 로그)
?timeout → 역방향 검색
VS Code로는 불가능한 이유:
- 10GB 로그 파일을 VS Code로 열기 = 메모리 폭발
- Vim은 부분 로딩으로 순식간에 열림
순간 3: Git 커밋 메시지 작성
Git에서 커밋 명령만 실행하면 기본적으로 Vim 에디터가 열립니다.
Git 기본 에디터가 Vim으로 설정되어 있기 때문입니다. 커밋 메시지를 작성하려면 Vim 사용법을 알아야 합니다.
먼저 한 번 체험해 보기
VS Code vs Vim 비교
| 상황 |
VS Code |
Vim |
| 로컬 개발 |
최적 |
가능 |
| 서버 접속 |
불가 |
기본 |
| 대용량 파일 |
느림/불가 |
순식간 |
| 원격 편집 |
별도 설정 필요 |
바로 가능 |
| 메모리 사용 |
많음 |
적음 |
| 커스터마이징 |
확장 풍부 |
무한한 가능성 |
이 도구를 쓰면 달라지는 점
Vim의 장기적 가치
1) 어디서나 사용 가능
# Raspberry Pi
ssh [email protected]
vim script.py
# Docker 컨테이너
docker exec -it container_name vim config.yml
# AWS EC2
ssh -i key.pem [email protected]
vim app/settings.py
2) 평생 쓰는 도구
- vi는 1976년에 탄생 (50년 역사)
- Vim은 1991년에 탄생 (35년 역사)
- 앞으로도 계속 사용될 것이 확실함
3) 속도의 차원이 다름
키보드에서 손 떼지 않고 커서 이동, 텍스트 편집, 파일 저장, 검색/치환을 모두 할 수 있습니다.
실제 비교:
VS Code: "파일 열기" → 클릭 → 탐색 → 파일 선택 → 클릭 (5초)
Vim: :e filename + Enter (1초)
흔한 오해
- "Vim은 구식이다" → Vim은 지속적으로 업데이트되며, 현대적 기능(구문 강조, 플러그인, LSP 등)을 모두 지원합니다.
- "배우기 너무 어렵다" → 기본 기능만 익히면 즉시 사용 가능합니다. 고급 기능은 필요할 때마다 익히면 됩니다.
- "VS Code가 더 좋다" → 용도가 다릅니다. VS Code는 로컬 개발에, Vim은 서버/터미널 작업에 최적입니다. 둘 다 익히면 상황에 따라 선택할 수 있습니다.
이런 사람에게 특히 추천
- 서버/인프라 작업을 하는 개발자
- Docker, SSH를 자주 쓰는 사람
- 키보드에서 손을 떼지 않고 코딩하고 싶은 사람
- "한 번 배우면 평생 쓰는 도구"를 원하는 사람
AI 코딩 도구와 함께 쓰는 프롬프트
Vim은 모드와 키 입력이 중요해서, AI에게 파일을 직접 고치게 하기보다 연습 순서와 안전한 저장/종료 방법을 먼저 물어보면 좋습니다. 중요: 저장 종료는 :wq, 저장하지 않고 종료는 :q!처럼 구분해서 확인하세요.
Vim에서 이 작업을 하려면 어떤 키를 순서대로 눌러야 하는지 알려줘.
Normal/Insert/Command 모드를 구분해서 설명하고, 저장하지 않고 나가는 방법도 함께 알려줘.
내 .vimrc 설정을 점검해줘.
기존 파일을 먼저 백업하고, 추가할 설정의 의미를 설명한 뒤 변경 diff를 보여줘. 내가 허락하기 전에는 덮어쓰지 마.
플러그인 설치나 Neovim 전환은 기존 설정과 충돌할 수 있으므로, 먼저 현재 Vim 버전과 설정 파일 위치를 확인하게 하세요.
한 번에 정리
| 질문 |
답변 |
| VS Code만으로 충분한가? |
서버 작업 시 불가능 |
| Vim을 꼭 배워야 하나? |
서버/인프라 작업 필수 |
| 어렵지 않은가? |
초기 학습곡선 있음, but worthwhile |
| 대안은 없는가? |
nano는 가능하지만 기능이 제한적 |
다음 편 안내
Vim이 왜 필요한지 이해하셨다면, 이제 직접 설치하고 처음 실행해 봅시다.
Vim 시리즈 2편: 설치하고 처음 실행하기에서는 Vim 설치 확인부터 파일 열기, 저장하고 종료하기까지 실제 명령어로 실습합니다.
실습 완료 체크리스트
💬 댓글
이 글에 대한 의견을 남겨주세요