Prettier 코드 포매터 설치·설정

Prettier는 저장만 하면 코드를 일관된 스타일로 자동 정렬해 주는 표준 포매터예요. 들여쓰기·따옴표·줄바꿈을 손으로 맞출 필요가 없어지고, 팀이 써도 스타일 싸움이 사라져요. 설치부터 저장 시 자동 포맷까지 정리했어요.

한 줄 요약 — 확장 Prettier(esbenp) 설치 → 기본 포매터로 지정 → format on save 켜기. 규칙은 .prettierrc 한 파일로 팀과 공유.

Prettier가 맡는 것 / 아닌 것

Prettier는 웹·설정 파일에 강해요. 언어별로 전용 포매터가 있는 경우엔 그쪽을 써요.

JavaScriptTypeScriptCSS/SCSSHTMLJSONMarkdownYAMLGraphQL
GoPythonRustJava
Go는 Prettier가 아니에요 — Go는 gofmt/goimports가 표준이라 Go 확장이 알아서 포맷해요(저장 시). Python은 Black, Rust는 rustfmt. Prettier는 그 외 웹·설정 파일용으로 쓰면 딱 맞아요.

1. 설치

  1. Ctrl/Cmd+Shift+X 로 확장 패널 열기
  2. Prettier - Code formatter 검색 (게시자 Prettier, ID esbenp.prettier-vscode)
  3. 설치 클릭

명령으로 한 번에:

ext install esbenp.prettier-vscode

2. 기본 포매터 지정 + 저장 시 자동 포맷

Ctrl/Cmd+Shift+PPreferences: Open User Settings (JSON) 에 아래를 넣어요.

settings.json
{
  // 저장할 때 자동 포맷
  "editor.formatOnSave": true,
  // 기본 포매터를 Prettier로
  "editor.defaultFormatter": "esbenp.prettier-vscode",

  // 언어별로 따로 지정도 가능 (Go는 Go 확장이 담당)
  "[go]": {
    "editor.defaultFormatter": "golang.go"
  },
  "[json][jsonc][javascript][typescript][css][html][markdown][yaml]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

언어별 블록으로 지정하면 “어떤 파일은 Prettier, Go는 gofmt”처럼 충돌 없이 나눌 수 있어요. 수동 포맷은 Shift+Alt+F.

3. 규칙 파일 .prettierrc (팀 공유용)

프로젝트 루트.prettierrc(또는 .prettierrc.json)를 두면, 그 저장소를 여는 모두가 같은 규칙으로 포맷돼요. 에디터 설정보다 이 파일이 우선이라 협업에 이걸 권장해요.

.prettierrc.json
{
  "printWidth": 100,        // 한 줄 최대 폭
  "tabWidth": 2,            // 들여쓰기 칸
  "semi": true,             // 세미콜론
  "singleQuote": true,      // 작은따옴표
  "trailingComma": "all",   // 끝 콤마
  "endOfLine": "lf"         // 개행 통일(윈도우 CRLF 방지)
}

포맷에서 빼고 싶은 경로는 .prettierignore에 (gitignore 문법):

.prettierignore
node_modules
dist
build
*.min.js

주요 옵션 빠른 참고

옵션기본값
printWidth줄 바꿈 기준 폭80
tabWidth들여쓰기 칸 수2
useTabs탭 vs 스페이스false(스페이스)
semi문장 끝 세미콜론true
singleQuote작은따옴표 사용false
trailingComma끝 콤마"all"
알아두면 좋은 것
• 저장했는데 포맷이 안 되면 → 우하단 상태바나 출력 패널 → Prettier 로그 확인. 다른 포매터가 기본으로 잡혀 있을 때가 많아요(위 언어별 블록으로 해결).
• ESLint도 쓰면 규칙이 충돌할 수 있어요 → Prettier ESLint 확장이나 eslint-config-prettier로 정렬 규칙을 Prettier에 양보.
포맷은 색을 안 바꿔요. 가독성(하이라이팅)은 테마·시맨틱 하이라이트가 담당 — 라이트 테마 색상 커스텀 참고.