Skip to content

⚙️ Development Rule

Janghun Lee edited this page Nov 14, 2022 · 1 revision

branch 전략

  • gitflow

https://i0.wp.com/lanziani.com/slides/gitflow/images/gitflow_1.png

  • feature 단위로 branch 생성
  • feature에 대한 설명을 issue로 발행 후 development 탭을 활용해서 branch 생성

commit convention

[header]: [subject]
  • Header List

    • feat: 새로운 기능 추가
    • fix: 버그 수정
    • docs: 문서
    • style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
    • refactor: 코드 리팩토링
    • test: 테스트 코드, 리팩토링 테스트 코드 추가
    • chore: 빌드 업무 수정, 패키지 매니저 수정, 기타 잡무
  • 본문에 대한 작성은 자유롭게

  • subject는 명령어로 작성하면 좋겠지만 한국어로 작성할거라 그닥 중요하진 않음.

PR convention

  • 작업단위가 완료되면 PR을 올린다

  • (권장) 1issue 1branch 1PR

    • 최대한 쪼개면 좋다.
  • 코드리뷰 필수

    • 분업 시 같은 분야 캠퍼는 필수로 리뷰어로 등록한다.
      • 같은 분야 리뷰어의 최종 승인을 통해 Merge 할 수 있다.
    • 로직적인 부분에 대해서 pr 날리는 사람 판단하에 다른 인원도 리뷰어로 추가 하는걸로..
  • PR은 최대한 상세히 적는다

    • #issue 태그 달아주기
      • Comment로 특정 단어와 함께 이슈 번호를 작성하면 이슈가 닫힌다.
    • 내가 무슨 작업을 했는지
    • 어떻게 했는지

Issue convention

Feat

  • 구현 기능 : 구현해야하는 기능 설명
  • 참조 소스 : 설계 기록, 참조 소스 등 첨부

Bug, Refactor

  • As-Is : 현재 어떤 상태인지
  • To-Be : 어떻게 되길 바라는지

Etc

  • 이슈 내용 : 이슈 내용 작성

Code Convention

  • ESLint

    {
        "env": {
          "browser": true,
          "es2021": true
        },
        "extends": [
          "eslint:",
          "plugin:react/recommended",
          "plugin:@typescript-eslint/recommended",
          "prettier"
        ],
        "overrides": [],
        "parser": "@typescript-eslint/parser",
        "parserOptions": {
          "ecmaVersion": "latest",
          "sourceType": "module"
        },
        "plugins": ["react", "@typescript-eslint"],
        "rules": {
          "prefer-arrow-callback": "error",
    			//하단은 프론트엔드 emotionjs용 lint 설정
          "react/no-unknown-property": ["error", { "ignore": ["css"] }]
        }
      }
  • Prettier

    {
        "singleQuote": true,
        "parser": "typescript",
        "semi": true,
        "useTabs": true,
        "printWidth": 100,
        "tabWidth": 4
    }
  • JSDoc

  • Naming Convention

    • Common
      • variables: **camelCase**
      • class: PascalCase
      • URL: kebab-case
      • Event: snake_case
      • type: interface로 통일, PascalCase + **“Type”**
    • BE naming convention
      • nest file: do-main.feature.ts
    • FE naming convention
      • component: PascalCase
Clone this wiki locally