Skip to content

개발 문화

Jang Hyeok-su edited this page Mar 15, 2023 · 5 revisions

깃 커밋 컨벤션

init : 환경 구축 관련 변경
add : 단순한 코드 및 디자인 변경
update : 코드의 수정 및 개선
feat : 유의미한 기능 변화
fix : 완료된 issue에 대한 버그 수정
hotfix : 급하게 처리해야 하는 버그 수정
refactor : 가독성 및 재활용성을 위한 코드 개선
comment : 주석 추가 및 수정
docs : README, Git Wiki 추가 및 수정
remove : 코드의 변경이 없는 단순한 파일 삭제

  • Ex) Feat : #101 - Add next problem button

브랜치 컨벤션

main : deploy를 위한 브랜치
dev : 개발 단계에서 완성된 feature가 병합되는 브랜치
feature : 특정 기능 구현을 위해 만들어진 브랜치

  • Ex) feature/1:complete-main-page-template

PR 컨벤션

공통

  • PR 템플릿을 철저히 준수하여 작성한다.

발신자

  • 변경 사항에 대해 수신자가 명확히 이해할 수 있도록 설명한다.
  • 개발 분야가 다르기 때문에 자신 분야의 전문 용어 사용을 지양한다.

리뷰어

  • 명확한 이해가 되지 않으면 한번 더 확인 질문을 한다.
  • 충돌이 발생한 경우 발신자에게 알리고, 페어 프로그래밍으로 해결한다.
  • PR의 내용이 모호하지 않은 경우에만 병합을 진행한다.

코드 컨벤션

공통

  • 파일명, 변수명은 명사, 함수명은 동사로 작성한다.
  • 직관적인 네이밍을 사용한다.
    • 일회용 변수를 제외한 모든 변수명은 2글자 이상으로 작성한다.
  • 인덴트는 띄워쓰기 4칸으로 사용한다.
  • 스타일시트를 제외한 모든 코드는 인덴트를 2번 이내로 사용한다.
  • 매직 넘버/스트링은 상수화하여 관리한다.
  • 메서드는 최소한의 역할을 지니도록 설계한다.
    • 함수 및 메서드는 단일 첵임 원칙을 준수한다.

FE

  • JS는 camelCase로 작성한다.
  • CSS, SCSS는 BEM 컨벤션을 활용한다.

BE

  • Setter 메서드를 사용하지 않는다.
    • 생성자, 또는 값 변경을 위한 새로운 함수를 사용한다.
  • Java의 네이밍 컨벤션
    • 클래스명은 PascalCase를 사용한다.
    • 변수명, 함수명은 camelCase를 사용한다.
    • 패키지명은 소문자만을 이용한다.
Clone this wiki locally