Extends (규칙 확장)
airbnb
: JavaScript, React 기본 규칙airbnb/hooks
: React Hooks 사용 규칙airbnb-typescript
: TypeScript 지원next/core-web-vitals
: Next.js 최적화 규칙prettier
: Prettier와 충돌 방지규칙 설정
'import/order': [
'error',
{
groups: ['builtin', 'external', 'internal'],
'newlines-between': 'always',
alphabetize: { order: 'asc' }
}
]
TypeScript 설정
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json'
}
코드 스타일
printWidth: 80, // 한 줄 최대 길이
tabWidth: 2, // 들여쓰기 간격
singleQuote: true, // 작은따옴표 사용
공백과 괄호
bracketSpacing: true, // { foo: bar }
arrowParens: 'always' // (x) => x
줄바꿈 설정
endOfLine: 'auto', // OS에 따른 줄바꿈
trailingComma: 'all' // 후행 쉼표 항상 사용
// .vscode/settings.json
{
// 저장 시 포맷팅
"editor.formatOnSave": true,
// Prettier를 기본 포맷터로 설정
"editor.defaultFormatter": "esbenp.prettier-vscode",
// 저장 시 ESLint 자동 수정
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
// 특정 언어별 포맷터 설정 (선택사항)
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
Cmd + Shift + P
(Mac) / Ctrl + Shift + P
(Windows)Shift + Alt + F
)