TestForge | Aidevops | 📊 Plogger ✍️ Blog 📚 Docs
plogger

AI DevOps Korea

AI 서비스 개발, 운영, 성능개선을 하나의 루프로 연결합니다

aidevops.kr에서 LLMOps, RAG, AI Agent, 관측성, 평가, 비용-성능 최적화를 실전 운영 관점으로 정리합니다.

ESLint + Prettier 설정 가이드: 실전 운영 기준

· 수정 4월 21일
ESLint + Prettier 설정 가이드: 실전 운영 기준 다이어그램
이 글에서 다루는 핵심 흐름, 아키텍처 구조, 주요 판단 포인트를 한눈에 이해할 수 있도록 정리한 그림입니다.
많은 팀이 ESLint와 Prettier를 함께 쓴다고 말하지만, 여전히 코드 리뷰에서 스타일 소음이 많고, 규칙 충돌이 나고, 로컬과 CI 결과도 다르게 나옵니다. 문제는 대개 도구가 아니라 역할 구분이 불명확하다는 데 있습니다.

좋은 설정은 먼저 “기계적으로 맞출 것”과 “의미적으로 검증할 것”을 분리하는 데서 시작합니다.

ESLint와 Prettier는 해결하는 문제가 다르다

Prettier는 사람이 더 이상 토론하지 않아도 되는 형식 문제에 강합니다.

  • 따옴표 스타일
  • 공백
  • 줄바꿈
  • trailing comma

ESLint는 아래 같은 문제에 더 적합합니다.

  • 버그를 만들기 쉬운 패턴
  • 사용되지 않는 변수
  • 위험한 async 사용
  • 프레임워크/언어 차원의 잘못된 사용

둘의 책임이 섞이면 도구끼리 싸우고, 책임이 분리되면 리뷰가 훨씬 조용해집니다.

목표는 예쁜 설정이 아니라 예측 가능한 팀 흐름이다

좋은 설정은 아래를 보장해야 합니다.

  • 누가 저장해도 파일 모양이 같다
  • 로컬 autofix는 빠르고 지루할 정도로 자연스럽다
  • CI가 같은 기준을 강제한다
  • 예외가 암묵지가 아니라 명시된 규칙으로 남는다

즉 도구 선택보다 “형식과 안전성을 기본값으로 만들 수 있는가”가 더 중요합니다.

규칙 세트는 생각보다 작아야 오래 간다

많은 저장소가 추천 규칙 팩을 크게 들여오고, 몇 달 뒤부터 그 후폭풍과 싸웁니다. 규칙이 많다고 품질이 바로 좋아지지는 않습니다.

더 건강한 방식은 보통 이렇습니다.

  • 스타일은 Prettier에 맡길 것
  • ESLint는 correctness와 maintainability에 집중할 것
  • 프레임워크별 규칙은 실제 반복 문제를 해결할 때만 추가할 것
  • 노이즈가 큰 규칙은 과감히 정리할 것

예를 들면:

{
  "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"]
}

좋은 규칙은 6개월 뒤에도 팀이 이해하고 존중하는 규칙입니다.

로컬 autofix와 CI enforcement는 예산이 달라야 한다

로컬은 속도를, CI는 신뢰를 우선해야 합니다.

실무적으로는 보통 이렇게 나눕니다.

  • 로컬 save 또는 pre-commit: 포맷과 가벼운 자동 수정
  • PR CI: full lint, typecheck, 기타 품질 게이트

로컬이 무거우면 우회가 생기고, CI가 약하면 품질이 조용히 무너집니다.

모노레포에서는 규칙 소유권이 더 중요하다

큰 저장소에서는 전역 설정 하나만으로 끝나기 어렵습니다. 보통 필요해지는 것은:

  • 공용 base config
  • 정말 필요한 경우에만 package override
  • lint rule 변경 책임자
  • 생성 파일, 테스트 유틸리티에 대한 일관된 예외 처리

소유권이 없으면 lint 설정은 품질 기준이 아니라 예외 협상장이 됩니다.

자주 보이는 실패 패턴

  • formatting과 linting이 서로 충돌하는 경우
  • 로컬 버전과 CI 버전이 다른 경우
  • 이해하지 못하는 대형 rule pack을 그대로 들여오는 경우
  • pre-commit이 너무 느려서 사람들이 건너뛰는 경우
  • warning이 너무 많아져서 아무도 신호로 받아들이지 않는 경우

도구는 팀이 실제로 믿고 따를 수 있을 때만 힘을 가집니다.

체크리스트

  1. formatting은 Prettier, 품질 규칙은 ESLint가 분명히 맡고 있는가
  2. 로컬과 CI 결과가 고정 버전과 공용 설정으로 일치하는가
  3. 규칙 세트가 설명 가능한 크기인가
  4. autofix와 enforcement가 맞는 층에 배치되어 있는가
  5. lint warning이 아직 운영적으로 의미 있는 신호인가

마무리

ESLint와 Prettier는 설정을 많이 할수록 강해지는 도구가 아닙니다. 책임을 선명하게 나누고 일관되게 운영할 때 강해집니다. 진짜 성과는 rule 개수가 아니라, 리뷰 소음이 줄고 피할 수 있는 실수가 줄어드는 데서 나옵니다.

Continue Reading

다음으로 읽기 좋은 글

다음 탐색

이 주제를 시스템 관점으로 더 이어서 보기