Claude와 함께 MIT Missing Semester 강의를 실습하며 정리한 내용입니다.
들어가며
이번 강의는 개발 환경을 이루는 핵심 도구들을 다룬다.
핵심 개념
IDE vs 터미널
- IDE (VS Code, IntelliJ) - GUI 기반, 올인원, 확장으로 기능 추가
- 터미널 (Vim + tmux) - 텍스트 기반, 가볍고 빠름, 서버에서도 동일 환경
둘을 조합해서 쓸 수도 있다 (VS Code + Vim 모드).
Vim: 모달 편집
대부분의 에디터는 타이핑하면 바로 글자가 입력되지만, Vim은 모드에 따라 같은 키가 다른 동작을 한다.
| 모드 | 진입 키 | 역할 |
|---|---|---|
| Normal | Esc | 이동, 삭제, 복사 (기본 모드) |
| Insert | i | 텍스트 입력 |
| Visual | v | 텍스트 선택 |
| Command | : | 저장, 종료, 검색 등 |
대부분의 시간을 Normal 모드에서 보내고, Insert는 타이핑할 때만 잠깐 진입한다.
이동 (명사)
| 키 | 이동 |
|---|---|
h j k l | ← ↓ ↑ → |
w / b | 다음/이전 단어 |
0 / $ | 줄 처음/끝 |
gg / G | 파일 처음/끝 |
f{문자} | 해당 문자로 점프 |
/{패턴} | 검색 (n으로 다음 결과) |
편집 (동사)
| 키 | 동작 |
|---|---|
d | 삭제 |
c | 삭제 + Insert 모드 |
y | 복사 |
p | 붙여넣기 |
u | 실행 취소 |
. | 마지막 동작 반복 |
Composability (조합)
동사 + 명사를 조합해서 쓰는 게 Vim의 핵심:
dw- 단어 삭제 (delete + word)ci"- 따옴표 안 내용 바꾸기 (change inside ")ci(,ci{- 괄호/중괄호 안 바꾸기y3j- 아래 3줄 복사dd- 줄 삭제yy→p- 줄 복사 후 붙여넣기
몇 개 동사와 명사만 외우면 수십 가지 동작이 가능하다.
기본 명령어
:w 저장, :q 종료, :wq 저장 후 종료, :q! 저장 안 하고 종료.
LSP (Language Server Protocol)
에디터와 언어 분석 엔진 사이의 표준 프로토콜. 예전에는 에디터마다 별도 플러그인이 필요했지만, LSP 덕에 어떤 에디터든 같은 언어 지원을 받을 수 있게 됐다.
- jump-to-definition - 함수 정의로 이동 (
Cmd + 클릭) - autocomplete - 자동완성
- diagnostics - 에러/경고 표시
- hover - 타입 정보 표시
VS Code에서 매일 쓰는 이 기능들이 전부 LSP 기반이다.
실습 기록
Vim 조합 연습
.txt 파일에서 ci", dw, yy+p, . 등 조합을 실습. 특히 ci"는 프론트엔드에서 문자열 안 내용을 바꿀 때 유용하다.
.vimrc 설정
vim
set number " 줄 번호
set relativenumber " 상대 줄 번호
set tabstop=2 " 탭 = 2칸
set shiftwidth=2 " 들여쓰기 = 2칸
set expandtab " 탭을 스페이스로
set incsearch " 검색 시 실시간 하이라이트
set hlsearch " 검색 결과 하이라이트블로그 파일을 Vim으로 탐색
vim content/til/missing-semester-01-shell.mdx로 실제 파일을 Vim에서 열어보고, / 검색과 gg/G 이동을 실습.