---
# System prepended metadata

title: 코딩 컨벤션
tags: [project base]

---

# 코딩 컨벤션

## 백엔드
airbnb-base lint 사용

### eslint 설정
```javascript=
module.exports = {
  env: {
    browser: true,
    node: true,
    es2021: true,
  },
  extends: ["airbnb", "prettier"],
  plugins: ["prettier", "react-hooks"],
  ignorePatterns: ["node_modules/"],
  rules: {
    "no-console": "off",
    camelcase: 0, //db에서 가져온 데이터가 snake case로 되어있어 오류가 나기 때문에 추가
  },
};
```

### prettier 설정
```javascript=
module.exports = {
    // 문자열은 홀따옴표(')로 formatting
    singleQuote: true,
    //코드 마지막에 세미콜른이 있게 formatting
    semi: true,
    //탭의 사용을 금하고 스페이스바 사용으로 대체하게 formatting
    useTabs: false,
    // 들여쓰기 너비는 2칸
    tabWidth: 2,
    // 객체나 배열을 작성 할 때, 원소 혹은 key-valueㅇ의 맨 뒤에 있는 것에도 쉼표를 붙임
    trailingComma: "all",
    // 코드 한줄이 maximum 100칸
    printWidth: 100,
    // 매개변수가 하나라도 괄호 생성
    arrowParens: always
};
```

## 프론트엔드
airbnb lint 사용

### eslint 설정
```javascript=
module.exports = {
  env: {
    browser: true,
    node: true,
    es2021: true,
  },
  extends: ["airbnb", "prettier"],
  plugins: ["prettier", "react-hooks"],
  ignorePatterns: ["node_modules/"],
  rules: {
    "no-console": "off",
    camelcase: 0, //db에서 가져온 데이터가 snake case로 되어있어 오류가 나기 때문에 추가
  },
};
```

### prettier 설정
```javascript=
module.exports = {
  // 문자열은 홀따옴표(')로 formatting
  singleQuote: true,
  //코드 마지막에 세미콜른이 있게 formatting
  semi: true,
  //탭의 사용을 금하고 스페이스바 사용으로 대체하게 formatting
  useTabs: false,
  // 들여쓰기 너비는 2칸
  tabWidth: 2,
  // 객체나 배열을 작성 할 때, 원소 혹은 key-valueㅇ의 맨 뒤에 있는 것에도 쉼표를 붙임
  trailingComma: "all",
  // 코드 한줄이 maximum 80칸
  printWidth: 100,
  // 매개변수가 하나라도 괄호 생성
  arrowParens: always,
};
```


###### tags: `project base`