Prettier

{
  "tabWidth": 2,
  "semi": true,
  "singleQuote": false,
  "trailingComma": "all",
  "printWidth": 80,
  "useTabs": false,
  "endOfLine": "auto"
}

eslint

{
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:import/recommended",
    "plugin:import/typescript",
    "plugin:react/recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended"
  ],
  "settings": {
    "import/resolver": {
      "typescript": true,
      "node": true
    }
  },
  "overrides": [],
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "ecmaVersion": "latest",
    "sourceType": "module",
    "project": "./tsconfig.json"
  },
  "plugins": ["react", "@typescript-eslint"],
  "rules": {
		// 섀도잉 변수 선언 
    "no-shadow": "warn",
		// 리액트 17버전 이후 React import 안해도 되게
    "react/react-in-jsx-scope": "off",
    "react/jsx-uses-react": "off",
		// 타입 임포트
    "@typescript-eslint/consistent-type-imports": [
      "error",
      {
        "prefer": "type-imports"
      }
    ],
	 // 컴포넌트의 경우 화살표 함수로
    "react/function-component-definition": [
      2,
      { "namedComponents": "arrow-function" }
    ],
		// import 정렬 single line
    "sort-imports": [
      "error",
      {
        "ignoreCase": true,
        "ignoreDeclarationSort": true,
        "ignoreMemberSort": false,
        "allowSeparatedGroups": true
      }
    ],
		// import 순서
    "import/order": [
      "error",
      {
        "groups": [
          ["builtin", "external"],
          "internal",
          "parent",
          "sibling",
          "index"
        ],
        "alphabetize": {
          "order": "asc",
          "caseInsensitive": true
        }
      }
    ],
		"import/default": "off",
    "import/no-named-as-default-member": "off",
    "import/no-unresolved": "off"
  }
}