Skip to content

그라운드 룰

won jong bin edited this page Nov 15, 2022 · 7 revisions

개발 문화

  • 매일 10~15분 정도의 짧은 스크럼 수행하기
  • 주기적인 오프라인 작업 및 회의하기
  • 코드 리뷰하며 서로 피드백하기
  • FE, BE 함께 작업하기
  • 15분 이상 고민했는데 해결 안 되면 이슈 작성하기
  • 활발한 커뮤니케이션과 재밌게 개발하기
  • "어?" 금지 / 함부로 외치지 않기
  • PR은 다른 사람이 merge 해주기

회의

  • 매일 아침 짧은 스크럼
  • 주 2~3회의 오프라인 회의 (월, 목 / 지각비 있음!)
  • 필수 모각코 타임 예정
  • 다른 사람 코드 리뷰 시간 (월, 목 / 1시간씩)

커밋 컨벤션

[convention 명] #이슈번호 커밋 내역
내용
  • 제목과 본문은 한 줄 띄기
  • 제목 끝에 . 붙이지 말 것
  • 한글로 작성

convention 종류

태그이름 설명
feat 새로운 기능 추가
fix 버그 수정
design css 등 사용자 UI 수정
style 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
refactor 코드 리팩토링
comment 필요한 주석 추가 및 변경
docs 문서 수정
chore 패키지 매니저 설정
rename 파일 혹은 폴더명 수정하거나 옮기는 작업
remove 파일을 삭제하는 작업만 하는 경우
asset asset 추가하는 경우
structure 폴더 및 파일 구조 작업

코드 컨벤션

.eslintrc.json
// frontend eslint
module.exports = {
  parser: '@typescript-eslint/parser',
  plugins: ['@typescript-eslint', 'prettier'],
  extends: [
    'airbnb',
    'plugin:import/errors',
    'plugin:import/warnings',
    'plugin:prettier/recommended',
    'plugin:@typescript-eslint/recommended',
    'prettier/@typescript-eslint',
  ],
  rules: {
    'linebreak-style': 0,
    'import/prefer-default-export': 0,
    'prettier/prettier': 0,
    'import/extensions': 0,
    'no-use-before-define': 0,
    'import/no-unresolved': 0,
    'import/no-extraneous-dependencies': 0, // 테스트 또는 개발환경을 구성하는 파일에서는 devDependency 사용을 허용
    'no-shadow': 0,
    'react/prop-types': 0,
    'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }],
    'jsx-a11y/no-noninteractive-element-interactions': 0,
  },
};
// backend eslint
module.exports = {
  parser: '@typescript-eslint/parser',
  parserOptions: {
    project: 'tsconfig.json',
    tsconfigRootDir : __dirname, 
    sourceType: 'module',
  },
  plugins: ['@typescript-eslint/eslint-plugin'],
  extends: [
    'plugin:@typescript-eslint/recommended',
    'plugin:prettier/recommended',
  ],
  root: true,
  env: {
    node: true,
    jest: true,
  },
  ignorePatterns: ['.eslintrc.js'],
  rules: {
    '@typescript-eslint/interface-name-prefix': 'off',
    '@typescript-eslint/explicit-function-return-type': 'off',
    '@typescript-eslint/explicit-module-boundary-types': 'off',
    '@typescript-eslint/no-explicit-any': 'off',
  },
};
.prettierrc
{
  "singleQuote": true,
  "bracketSpacing": true,
  "bracketSameLine": true,
  "arrowParens": "avoid",
  "printWidth": 80,
  "tabWidth": 2,
  "endOfLine": "auto",
  "useTabs": false,
  "semi": true
}

브렌치 전략

git flow 사용

브렌치 명 설명
main 사용자에게 배포되는 Stable 브랜치
develop 다음 릴리즈를 위해 기능들을 모으는 최신 브랜치
feature 특정 기능 개발을 위한 브랜치
release 릴리즈를 위해 버그 픽스(Bug fix)를 모으는 브랜치
hotfix 긴급 버그 픽스를 위한 브랜치
support 버전 호환성 문제를 위한 브랜치