"협업을 위한 코드 스타일 통일, Prettier로 시작하기"

2026. 1. 19. 20:39·💻 개발/※ 참고 지식
728x90
반응형

| 서론 — 협업하다 보면 반드시 마주치는 문제

안녕하세요, 팡일입니다.

 

이번 포스팅에서는 개발자끼리 협업할 때 반드시 맞춰야 하는 요소 중 하나인 ‘코드 스타일’에 대해 이야기해보려고 합니다.

 

여러 명이 함께 개발하다 보면 이런 경험, 한 번쯤은 있으실 것 같아요.

  • 기능은 동일한데 PR diff가 잔뜩 쌓여 있는 경우
  • 공백, 줄바꿈, 따옴표 차이 때문에 코드 리뷰가 길어지는 상황
  • “이건 누가 고친 거죠?” 싶은 변경 내역들

이런 문제의 상당수는 코드 스타일이 통일되지 않았기 때문입니다.

 

오늘은 이 문제를 가장 간단하게 해결해주는 도구인 Prettier에 대해 정리해보려고 합니다.

 

 

 

| Prettier란? — 코드 스타일을 자동으로 맞춰주는 도구

Prettier는 코드 포맷터(Formatter)입니다.

즉, 코드의 동작에는 관여하지 않고, 코드의 모양(스타일)만 자동으로 정리해주는 도구입니다.

 

Prettier를 사용하면 다음과 같은 것들을 자동으로 맞춰줍니다.

  • 들여쓰기
  • 줄바꿈 위치
  • 세미콜론 여부
  • 따옴표 종류
  • trailing comma 여부

그렇다면, 왜 Prettier를 써야 할까요?

 

바로 “코드 스타일에 대한 논쟁을 없애주기” 때문입니다. 누가 더 잘 썼는지가 아니라, 도구가 정한 규칙을 모두가 따르게 만드는 것이 핵심입니다.

 

 

 

| Prettier는 ‘어떻게’ 구성되어 있을까?

Prettier를 처음 설정하다 보면, 보통 아래 세 가지를 함께 마주하게 됩니다.

  • .prettierrc 파일
  • Prettier VS Code Extension
  • .vscode/settings.json 파일

이 셋은 역할이 서로 다르고, 각각 책임지는 범위도 다릅니다.

 

1) .prettierrc — 코드 스타일 규칙을 정의하는 파일

: .prettierrc는 이 프로젝트에서 코드가 어떤 모습이어야 하는지를 정의하는 파일입니다.

{
  "printWidth": 80,
  "semi": true,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "all"
}
  • 줄 길이는 어디까지 허용할지
  • 세미콜론을 붙일지 말지
  • 따옴표는 무엇을 쓸지

위와 같은 스타일의 기준(Source of Truth)이 모두 이 파일에 담깁니다.

 

중요한 점은, 이 파일은 VS Code뿐 아니라 CLI, CI, 다른 IDE에서도 동일하게 적용된다는 것입니다. 그래서 협업에서는 반드시 프로젝트 루트에 두는 것이 좋습니다.

 

 

 

2) Prettier VS Code Extension — 규칙을 실제로 실행하는 도구

: Prettier VS Code Extension은 .prettierrc에 적힌 규칙을 읽어서 실제로 코드에 적용해주는 실행기입니다.

  • VS Code에서 Format Document 기능 제공
  • 저장 시 자동 포맷 실행
  • .prettierrc 설정을 그대로 반영

즉, 규칙을 정의하지는 않고, 정의된 규칙을 VS Code 안에서 실행해주는 역할만 담당합니다.

 

 

 

3) .vscode/settings.json  — 어떤 도구를 언제 사용할지 정하는 파일

: .vscode/settings.json은 VS Code 전용 설정 파일로, 여러 포맷터 중 어떤 것을 사용할지, 언제 포맷을 실행할지를 결정합니다.

 

예를 들어 아래 설정은, 기본 포맷터로 Prettier를 사용하고 파일 저장 시 자동으로 실행하겠다는 의미입니다.

{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true
}

 

 

즉, 이 파일은 “Prettier를 쓰느냐 마느냐”가 아니라, “VS Code에서 누가, 언제 실행할지”를 정하는 파일이라고 이해하면 됩니다.

 

 

 

이 세 가지를 쉽게 정리하면 아래와 같은 역할 분담 구조를 가집니다.

  • .prettierrc → 무엇이 올바른 스타일인지
  • Prettier Extension → 그 스타일을 실행
  • .vscode/settings.json → VS Code에서 실행 방식 결정

 

 

 

 

| Prettier는 어떻게 사용하는가?

Prettier는 프로젝트 루트에 설정 파일을 하나 두는 방식으로 사용합니다.

 

1) .prettierrc  파일 생성

project-root
 ├─ src/
 ├─ package.json
 └─ .prettierrc

 

2) 설정 파일 작성

{
  "printWidth": 80,
  "semi": true,
  "tabWidth": 2,
  "singleQuote": true,
  "trailingComma": "all"
}

 

이렇게 설정해두면, VS Code에서 저장 시 자동 포맷 또는 Format Document 실행 시 모든 팀원이 동일한 코드 스타일을 유지하게 됩니다.

 

 

 

 

| 주요 옵션 살펴보기 (예시 코드 포함)

이제 위에서 사용한 옵션들이 실제로 어떤 역할을 하는지 하나씩 살펴보겠습니다.

 

1) printWidth: 80

한 줄에 허용할 최대 문자 수를 의미합니다.

// Before
const user = { id: 1, name: 'Kwangil', role: 'admin', isActive: true };

// After
const user = {
  id: 1,
  name: 'Kwangil',
  role: 'admin',
  isActive: true,
};
  • 코드 가로 스크롤 최소화
  • PR diff 가독성 향상

2) semi: true

문장 끝에 세미콜론(;)을 붙이도록 설정합니다.

const count = 0;
setCount(count + 1);
  • ASI로 인한 예외적인 버그 예방
  • 팀 차원의 안정성 확보

3) tabWidth: 2

들여쓰기 한 단계당 공백 수를 의미합니다.

function App() {
  return (
    <div>
      <span>Hello</span>
    </div>
  );
}
  • React / TypeScript 생태계의 표준
  • JSX 중첩 구조에서 가독성 향상

4) singleQuote: true

JavaScript / TypeScript 문자열에 작은따옴표(')를 사용합니다.

const title = 'Dashboard';
const message = 'He said "hello"';
  • JSX의 "와 시각적 구분
  • escape 빈도 감소
  • ※ JSX의 className 같은 attribute에는 적용되지 않습니다.

5) trailingComma: "all"

마지막 요소 뒤에도 쉼표를 추가합니다.

const config = {
  apiKey: 'xxx',
  timeout: 3000,
};

function fetchData(
  url: string,
  options: Options,
) {}
  • diff 최소화
  • 리뷰 시 변경점 명확

 

 

 

 

| 결론 — 협업을 위한 가장 쉬운 첫 단계

결론적으로, Prettier는 코드 실력을 판단하는 도구가 아닙니다. 오히려 팀의 에너지를 더 중요한 문제에 쓰게 해주는 도구에 가깝습니다.

 

스타일 논쟁도 없고, 의미 없는 diff 사항도 업속, 리뷰 피로도 줄어줍니다. 또한, 통일된 코드 스타일과 깔끔한 PR, 빠른 리뷰와 협업을 가져다주는 참 듬직한 존재라고 볼 수 있습니다.

 

협업을 시작한다면, 가장 먼저 맞춰야 할 것은 코드 스타일이고, 그 시작은 Prettier 설정 파일 하나라고 생각합니다.

 

728x90
반응형

'💻 개발 > ※ 참고 지식' 카테고리의 다른 글

mockapi.io 사용법  (1) 2026.01.28
MVC 패턴 완전 정복: 왜, 어떻게, 그리고 어디까지 나눠야 하는가  (1) 2025.10.26
[10분 테코톡] 타미의 CSR과 SSR  (0) 2025.10.09
"린트, 테스트, 배포까지 자동화: CI/CD 개념부터 구성까지"  (1) 2025.08.01
"환경 변수 관리 완벽 가이드: .env 파일의 모든 것"  (0) 2025.03.26
'💻 개발/※ 참고 지식' 카테고리의 다른 글
  • mockapi.io 사용법
  • MVC 패턴 완전 정복: 왜, 어떻게, 그리고 어디까지 나눠야 하는가
  • [10분 테코톡] 타미의 CSR과 SSR
  • "린트, 테스트, 배포까지 자동화: CI/CD 개념부터 구성까지"
pangil_kim
pangil_kim
기록을 통해 지속적인 성장을 추구합니다.
  • pangil_kim
    멈추지 않는 기록
    pangil_kim
  • 전체
    오늘
    어제
  • 📝 글쓰기
      ⚙️ 관리

    • 분류 전체보기 (405) N
      • 💻 개발 (176) N
        • ※ 참고 지식 (9)
        • 🦕 React (13)
        • 🎩 Next.js (25)
        • 📘 TypeScript (4)
        • 📒 JavaScript (8)
        • 🟩 Node.js (7)
        • 📀 MySQL (24)
        • 🌸 Spring Boot (5)
        • 👷 SveleteKit (24)
        • 🩵 Flutter (11)
        • 🌀 Dart (2)
        • 🌈 CSS (5)
        • 🔸Git (1)
        • 🔥 Firebase (4)
        • 🧑🏻‍💻 코테 (29) N
        • 🕸️ 알고리즘 (4)
        • 🌤️ AWS (1) N
      • 📋 프로젝트 (4) N
        • ☄️ 트러블 슈팅 (2) N
        • 🧑🏻‍💻 서비스 소개 (2)
      • ✍🏻 회고 (52) N
        • ☀️ 취준일지 (6) N
        • 🍀 우테코 (32)
        • 👋 주간회고 (1) N
      • 📰 정보 공유 (12)
      • 🧑🏻‍💻 개발자라면? (1)
      • 🏫 한동대학교 (153)
        • Database (15)
        • Software Engineering (18)
        • EAP (22)
        • 일반화학 (26)
        • 25-1 수업 정리 (19)
        • Computer Networking (36)
        • OPIc (2)
        • 미술의 이해 (15)
  • 최근 글

  • 인기 글

  • 태그

    GLS
    찬양
    typeScript
    날솟샘
    우테코
    글로벌리더십학부
    QT
    프론트엔드
    예배
    데이터베이스
    csee
    네트워킹
    주일
    전산전자공학부
    CCM
    어노인팅
    고윤민교수님
    computer networks and the internet
    한동대학교
    묵상
    컴네
    부트캠프
    설교
    FE
    우아한테크코스
    프리코스
    우테코 8기
    날마다 솟는 샘물
    웹 프론트엔드 8기
    웹개발
  • 최근 댓글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
pangil_kim
"협업을 위한 코드 스타일 통일, Prettier로 시작하기"
상단으로

티스토리툴바