Skip to content

convention

hojun.lee edited this page May 3, 2024 · 2 revisions

GitHub Blog 프로젝트 컨벤션

이 문서는 GitHub Blog 프로젝트에서 사용되는 컨벤션을 설명합니다. 프로젝트에 참여하는 모든 개발자는 이 컨벤션을 준수해야 합니다.

1. 코드 스타일

  • 들여쓰기는 2개의 공백을 사용합니다.
  • 세미콜론(;)을 사용하여 문장을 종료합니다.
  • 함수와 제어문 뒤에는 한 칸의 공백을 둡니다.
  • 중괄호({})는 같은 줄에 작성합니다.
  • 변수와 함수 이름은 카멜 케이스(camelCase)를 사용합니다.
  • 상수는 대문자와 언더스코어(_)를 사용하여 작성합니다.

예시:

const MAX_COUNT = 10;

function getUserName(userId) {
  // 코드 작성
}

2. 주석

  • 함수와 메서드에는 JSDoc 스타일의 주석을 사용합니다.
  • 코드 블록 위에 설명 주석을 작성합니다.
  • 한 줄 주석은 //를 사용합니다.

예시:

/**
 * 사용자 이름을 가져오는 함수
 * @param {string} userId - 사용자 ID
 * @returns {string} 사용자 이름
 */
function getUserName(userId) {
  // 사용자 이름 가져오기
  // ...
}

3. 파일 및 디렉토리 구조

  • 소스 코드 파일은 src 디렉토리에 위치합니다.
  • 테스트 코드 파일은 tests 디렉토리에 위치합니다.
  • 파일 이름은 소문자와 하이픈(-)을 사용하여 작성합니다.

예시:

src/
  ├── main.js
  ├── utils/
  │   ├── date-helper.js
  │   └── string-helper.js
tests/
  ├── utils/
  │   ├── date-helper.test.js
  │   └── string-helper.test.js

4. 커밋 메시지

  • 커밋 메시지는 영어로 작성합니다.
  • 커밋 메시지의 첫 줄은 50자 이내로 작성합니다.
  • 커밋 메시지의 첫 줄 다음에는 빈 줄을 추가하고, 그 다음에 상세 설명을 작성합니다.
  • 커밋 메시지의 첫 글자는 대문자로 작성합니다.
  • 커밋 메시지의 끝에는 마침표(.)를 사용하지 않습니다.

예시:

Add user authentication feature

- Implement user login and registration
- Add user authentication middleware
- Update user profile page

5. 깃모지(Gitmoji) 컨벤션

커밋 메시지에 이모지를 사용하여 커밋의 목적을 시각적으로 표현합니다. 다음은 자주 사용되는 깃모지 목록입니다.

  • ✨ (:sparkles:) 새로운 기능 추가
  • 🐛 (:bug:) 버그 수정
  • 📝 (:memo:) 문서 수정
  • 💄 (:lipstick:) UI/스타일 파일 수정
  • 🎨 (:art:) 코드 구조 개선
  • ⚡️ (:zap:) 성능 개선
  • 🔥 (:fire:) 코드 또는 파일 삭제
  • 🚑 (:ambulance:) 크리티컬한 버그 수정
  • 🚀 (:rocket:) 배포
  • 💚 (:green_heart:) CI 빌드 수정
  • ✅ (:white_check_mark:) 테스트 추가/수정
  • 🔒 (:lock:) 보안 이슈 수정
  • 🍎 (:apple:) iOS 관련 수정
  • 🤖 (:robot:) Android 관련 수정
  • 🌐 (:globe_with_meridians:) 국제화/현지화
  • 📦 (:package:) 패키지 관련 수정
  • ⬆️ (:arrow_up:) 디펜던시 업그레이드
  • ⬇️ (:arrow_down:) 디펜던시 다운그레이드
  • 🔀 (:twisted_rightwards_arrows:) 브랜치 병합
  • 📸 (:camera_flash:) 스냅샷 추가/수정

예시:

✨ Add user authentication feature

위의 컨벤션을 따라 프로젝트를 진행하면 일관성 있고 가독성 높은 코드를 작성할 수 있습니다. 프로젝트에 참여하는 모든 개발자는 이 컨벤션을 준수하도록 합니다.