📌 문서 개요


🧩 핵심 요약

기존 Rush Stack 설정이 최신 ESLint 9(Flat Config) 환경에서 발생하는 구조적 오류(순환 참조 등)를 해결하고, Next.js 15와의 호환성을 확보하기 위해 Native Flat Config 기반의 typescript-eslint v8을 도입한다. Rush Stack 수준의 엄격한 Type-Safety를 유지하면서도, 설정의 복잡도를 낮추고 유지보수성을 높이는 것을 목표로 한다.


📚 상세 내용

<aside>

1. 제목 (Title)

Rush Stack 기반 린트 설정을 Native ESLint 9 (Flat Config)로 마이그레이션

2. 상태 (Status)

Accepted

3. 배경 (Context)

이 결정을 하게 된 상황, 문제, 요구사항

4. 결정 (Decision)

최종적으로 어떤 선택을 했는지

프로젝트의 린팅 시스템을 ESLint 9 Native Flat Config (eslint.config.mjs) 방식으로 전면 전환하고, 다음 구성을 확정한다.

  1. Core Config: typescript-eslint v8의 strictTypeCheckedstylisticTypeChecked 프리셋을 사용하여 Rush Stack 수준의 엄격함 유지.
  2. Plugin: eslint-plugin-next, react, react-hooks를 직접 구성하여 Next.js 최적화 규칙 적용.
  3. Custom Rules: no-floating-promises(비동기 처리 강제), explicit-module-boundary-types(함수 반환 타입 명시) 등 핵심 품질 규칙 커스텀 적용.

5. 근거 (Rationale)

왜 이 선택이 최선인지, 어떤 장단점이 있었는지

이 선택이 최선인 이유는 다음과 같음:

6. 대안(Alternatives)

고려했지만 선택하지 않은 다른 옵션들, 그걸 선택하지 않은 이유

7. 결과(Consequences)

이 결정이 가져올 영향, 장기적 고려사항

긍정적 영향:

주의해야 할 점: