Skip to content

Team Rules

Bora Kim edited this page Nov 26, 2021 · 8 revisions

작업규칙

Commit 메시지 규칙

작성 방법

  1. 제목과 본문을 한 줄 띄워 분리하여 작성한다.
  2. 제목은 영문 기준 50자 이내로 작성한다.
  3. 제목 첫글자는 대문자로 작성한다.
  4. 제목 끝에 마침표(.)는 생략한다.
  5. 제목은 명령어로 작성한다.
  6. 본문은 50자마다 줄을 바꾸어 작성한다.
  7. 본문은 어떻게 변경했는지 보다 무엇을 변경했는지, 왜 변경했는지 에 맞추어 작성한다.

작성 형식

[client] fix: #0000 커밋 제목 [커밋 본문]

  1. 클라이언트 ・ 서버 여부 : [client] [server]

  2. Commit Type : type

Type Description
feat 새로운 기능을 추가할 경우
fix 버그를 고친 경우
docs 문서를 수정한 경우
style 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
refactor 프로덕션 코드 리팩토링
chore 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
  1. Issue ・ PR Number : #0000

  2. 커밋 내용 : main commit message

Lint 규칙

ESLint

//.eslintrc.json
{
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended",
    "standard",
    "plugin:prettier/recommended"
  ],
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 12,
    "sourceType": "module"
  },
  "plugins": ["react"],
  "rules": {
    "react/react-in-jsx-scope": "off"
  }
}

Prettier

// .prettierrc.json
{
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": false,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "bracketSameLine": false,
  "arrowParens": "always"
}
이름 규칙

브랜치

종류 사용패턴 특징
main main 프로덕션 스냅샷 가장 최신의 배포된 버전
dev dev 릴리즈 계획에 따라서 Github에서 기본 브랜치로 지정
feature feat이슈번호 ex) feat2 dev 구현
hotfix hotfix/이슈번호 hotfix/#911 메인에 병합

변수

  • Camel-case

파일 & 생성자

  • Client

    • Component: Pascal-Case
    • 그 외: Camel-Case
  • Sever

    • Camel-Case
PR 규칙

PR 제목

[Client] / #88 / edit: readme

PR 타입(하나 이상의 PR 타입 선택)

  • 기능 추가
  • 기능 삭제
  • 버그 수정
  • 의존성, 환경 변수, 빌드 관련 코드 업데이트

변경 사항

  • ex) 로그인 시, 구글 소셜 로그인 기능을 추가했습니다.

테스트 결과

  • ex) 베이스 브랜치에 포함되기 위한 코드는 모두 정상적으로 동작해야 합니다. 결과물에 대한 스크린샷, GIF, 혹은 라이브 데모가 가능하도록 샘플API를 첨부할 수도 있습니다.
Issue 규칙

Issue 제목

[Task]Client/Sever_Task ex) [Task]Client_반응형 모바일 버전 레이아웃 CSS [Task]Sever_API_OAuth 구현

Issue 타입(하나 이상의 Issue 타입 선택)

  • 기능 추가
  • 기능 삭제
  • 버그 수정
  • 의존성, 환경 변수, 빌드 관련 코드 업데이트

상세 내용

  • ex) Google 소셜 로그인 기능이 필요합니다.

예상 소요 시간

  • 0.5h
  • 1h
  • 1.5h
  • 2h
  • 2.5h
  • 3h

라벨

  • 예상 소요 시간: 1h
  • 그룹: client, server
  • 긴급도: High, Medium, Low
Node Version
  • Node v16.7.0

  • NPM v7.20.3

추가사항

Routine

  • am 9:00 회의 진행, 코드 리뷰, merge
  • pm 12:00 점심 시간 (1시간)
  • pm 03:00 휴식 시간 (15분)
  • pm 06:00 저녁 시간 (2시간)
  • pm 08:00 KPT 회고 작성, 코드 리뷰

🤗 Communication

  • 질문자에 대한 호응을 잘 해준다.
  • 이해가 가지 않으면 바로 말하여 이해하고 넘어간다.
  • 상대방의 말을 끊지 않는다.
  • 상대방의 말에 불쾌했다면 바로 말하여 해결한다.
  • 회의에 지각할 시 모두 납득할 만한 구체적인 이유를 말한다. 사전에 지각 사유를 디스코드에 남긴다.
  • 의견 대립 시 다수결로 결정한다. 만약 의견이 2:2로 갈릴 시, 사다리타기를 통해 결정한다.
Client 초기 설정

  1. [client] chore: Initialize project using Create React App

    • npx create-react-app client --use-npm
  2. [client] chore: Initialize public folder

  3. [client] chore: Initialize file structure

  4. [client] chore: Set up eslint & prettier

    • npm install --save-dev eslint
      • CRA 설치할 때 함께 설치되어 생략
    • npx eslint --init
      • How would you like to use ESLint? · problems
      • What type of modules does your project use? · esm
      • Which framework does your project use? · react
      • Does your project use TypeScript? · No
      • Where does your code run? · browser
      • What format do you want your config file to be in? · JSON
      • Would you like to install them now with npm? · Yes
  • npm install --save-dev eslint-config-standard
// .eslintrc.json
{
  "extends": ["standard"]
}
npm install --save-dev --save-exact prettier

npm install --save-dev eslint-config-prettier

npm install --save-dev eslint-plugin-prettier
// .eslintrc.json
{
  "extends": ["plugin:prettier/recommended"]
}
// .prettierrc
{
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": false,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "bracketSameLine": false,
  "arrowParens": "always"
}
  1. [client] chore: Add react-app-polyfill

    • npm install react-app-polyfill
  2. [client] chore: Set up react-app-polyfill

  3. [client] chore: Add prop-types

    • npm install prop-types
  4. [client] chore: Add react-router-dom

    • npm install react-router-dom
  5. [client] chore: Add axios

    • npm install axios
  6. [client] chore: Add styled-components

    • npm install styled-components
  7. [client] chore: Add styled-normalize

    • npm install styled-normalize
  8. [client] chore: Set up styled-normalize

  9. [client] chore: Add redux & react-redux

    • npm install redux react-redux
  10. [client] chore: Set up redux & react-redux

  11. [client] chore: Set up module system

  12. [client] chore: Update gitignore

  13. docs: Initialize README.md

Server 초기 설정

  1. [server] chore: Initialize project

    • npm init
  2. [server] chore: Set up eslint & prettier

    • npm install --save-dev eslint
    • npx eslint --init
      • How would you like to use ESLint? · problems
      • What type of modules does your project use? · commonjs
      • Which framework does your project use? · none
      • Does your project use TypeScript? · No
      • Where does your code run? · node
      • What format do you want your config file to be in? · JSON
      • npx install --save-dev eslint-config-standard
// .eslintrc.json
{
	"extends": "standard"
}
npm install --save-dev --save-exact prettier

npm install --save-dev eslint-config-prettier

npm install --save-dev eslint-plugin-prettier
// .eslintrc.json
{
  "extends": ["plugin:prettier/recommended"]
}
// .prettierrc
{
  "printWidth": 100,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": false,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "bracketSameLine": false,
  "arrowParens": "always"
}
  1. [server] chore: Add nodemon

    • npm install --save-dev nodemon
  2. [server] chore: Add express

    • npm install express
  3. [server] chore: Add cors

    • npm install cors
  4. [server] chore: Add cookie-parser

    • npm install cookie-parser
  5. [server] chore: Add helmet

    • npm install helmet
  6. [server] chore: Add morgan

    • npm install morgan
  7. [server] chore: Add multer

    • npm install multer
  8. [server] chore: Add axios

    • npm install axios
  9. [server] chore: Add bcrypt

    • npm install bcrypt
  10. [server] chore: Add dotenv

    • npm install dotenv
  11. [server] chore: Add jsonwebtoken

    • npm install jsonwebtoken
  12. [server] chore: Add mysql2

    • npm install mysql2
  13. [server] chore: Add sequelize

    • npm install sequelize
  14. [server] chore: Add sequelize-cli

    • npm install --save-dev sequelize-cli
  15. [server] chore: Add rule to eslint

  16. [server] chore: Add env example

  17. [server] chore: Add config for env

  18. [server] chore: Initialize sequelize

  19. [server] chore: Initialize app

Clone this wiki locally