본문 바로가기
ⓢⓣⓤⓓⓨ

Git/Naming Convention

by heaven00 2022. 1. 7.
728x90

 

이번에 동아리 앱잼이 시작되면서 Convention 정리를 했는데 나중에 계속계속 쓰고싶어서 끌고왔다 !

 


 

Git Convention

📌 Branch

  • branch 이름은 snake_case 표기법 사용
  • 타입/이슈번호_이슈명 으로 통일ex) refactor/3_login
  • ex) feat/1_detail_view

default branch : develop

개발이 완료되면 develop 브랜치로 merge합니다!

 

📌 Commit

Base Structure

#{issue_number} [TYPE] : subject

body(선택사항)

footer(선택사항)

 

예시

  1. 하나의 이슈를 처리하고 커밋할 때
  2. #1 [FEAT] : 로그인 버튼 클릭 이벤트 처리
  3. 여러개의 이슈를 처리하고 커밋할 때
  4. [REFACTOR] : ReFactor Code From OtherPage - OtherPage : 답변하지 않은 답변도 볼 수 있도록 수정 - OtherPage : 답변하지 않은 답변도 스크랩할 수 있도록 수정 - modified file : OtherPageAdapter, OtherPageActivity, OtherPageViewModel, item_other_page issue track : #610, #612

 

Issue Number

  • 이슈 단위 커밋으로 기능 개발을 관리합니다
  • GitHub에서 이슈를 트래킹을 할 수 있게 Issue Number를 커밋 메시지에 넣어줍니다

 

Type

  • FEAT: 새로운 기능 개발(kotlin 작업)
  • FIX: 버그 수정
  • UI: 스타일(xml file) 코드 변경
  • MODIFY: kotlin 코드 수정
  • TEST: 테스트 코드 추가
  • CHORE: Gradle이나 설정 세팅할 때
  • ADD: File (xml, kt, png ..) 추가
  • DOCS: 문서 수정 (README.md)

issue 안에 labels에 Type을 등록해서 보기 좋게 만듭니다

 

Subject

  • Subject는 50글자를 넘기지 않습니다
  • 첫 시작은 대문자로 합니다
  • 마지막에 마침표(.)를 찍지 않습니다
  • 작업한 내용을 명시해주세요
  • 명령조를 사용합니다(ex: Fix(o), Fixed(x), Modify(o), Modified(x))

 

Body

  • Subject(커밋제목) 이외에 부연 설명이 필요하거나, 여러 이슈를 한꺼번에 커밋할 때 적어주면 좋아요
  • 아래와 같이 Subject를 작성하고 엔터를 치면 다음 줄로 넘어가고 추가로 설명을 적을 수 있어요 git commit -m "[타입] : 제목 (엔터) Body(부연설명)"

 

Footer

  • 처리한 이슈 번호를 적을 때 사용
  • 여러 이슈를 한꺼번에 커밋할 때
    • Subject : 여러 이슈를 통틀어 말할 수 있는 작업 제목
    • Body : 작업 세부 내용
    • Footer : 처리한 이슈 번호들
    subject
    
    - body(이슈1)
    - body(이슈2)
    - body(이슈3)
    
    issue track : #이슈1번호, #이슈2번호, #이슈3번호
    

 

 

 

 

Naming Convention

  • 클래스명, 함수명, 변수명 등 모든 이름은 어떤 역할을 하는지 한눈에 알 수 있도록 하기
  • id명은 겹치지 않게 하기 위해 어떤 액티비티(프래그먼트)에서 쓰고 있는지 명시

 

1. Class file - UpperCamelCase 사용

  • 클래스 파일 이름은 UpperCamelCase(aka 파스칼 케이스(PascalCase)) 로 작성
  • 쌍봉낙타 표기법이라고도 한다.
  • 전체 이름의 첫 문자를 포함한 각 단어의 첫 문자를 대문자로 표시한다.
  • ex) SignInActivity, SiginInFragment, ImageUploaderService, ChangePasswordDialog

 

2. Resources file - snake_case

  • 리소스 파일 이름은 snake_case로 작성
  • 모든 단어는 소문자로, 각 단어의 사이를 언더바 _ 로 구분해주는 표기법
  • Action bar -> ab_xxx.png / Button -> btn_xxx.png / Dialog -> dialog_xxx.png / Divider -> divider_xxx.png /   Icon -> ic_xxx.png / Menu -> menu_xxx.png / Notification -> notification_xxx.png / Tabs -> tab_xxx.png
  • ex) image_logo.png, ic_back.xml, menu_main.xml
  • ex) image_logo.png, ic_back.xml, menu_main.xml

 

3. Layout file - snake_case

  • 레이아웃 파일 이름 또한 마찬가지로 snake_case로 작성
  • [what]_ [where]
    • UserProfileActivity.kt -> activity_user_profile.xml / SignUpFragment.kt -> fragment_sign_up.xml ChangePasswordDialog.kt -> dialog_change_password.xml
  • ex) activity_main.xml, fragment_login.xml, dialog_change_password.xml, item_
  • xml파일의 id명은 [what]_ [where]_ [] → home에서 쓰는 TextView라고 치면 text_home_user
  • TextView : text / EditText : et / ImageView : img / Button : btn / LinearLayout : ll / RelativeLayout : rl / ConstraintLayout : cl / Recyclerview : recyclerview

 

4. Method - lowerCamelCase

  • 메소드 이름은 lowerCamelCase로 작성
    • 단봉낙타 표기법이라고도 한다.
    • 보통 카멜 케이스라고 하면 lower 카멜 케이스를 의미한다.
    • 각 단어의 첫 문자를 대문자로 표시하되, 이름의 첫 문자는 소문자로 적는다.
  • "동사"로 시작하는 "동사구" 형태를 사용하되, 동사 원형만을 사용한다.
  • ex) showList, updateContacts
  • 한 단어 내에서는 대소문자 변경 없이 사용
  • ex) InVisible ▶️ Invisible
  • 약어 사전에 있는 단어는 되도록 약어를 사용
  • ex) UserInterface ▶️ UI 또는 Ui
  • 자주 사용하는 동사는 용법에 맞게 사용
    • show: Invisible한 것을 Visible하게 바꾸는 동작
    • check: 어떤 것을 확인한 후 boolean 또는 값으로 반환하는 동작
    • is: 어떤 것인지 확인한 후 boolean으로 반환하는 동작
    • has: 어떤것을가지고 있는 확인 후 boolean으로 반환하는 동작

 

5. 변수

  • 변수 이름 또한 마찬가지로 lowerCamelCase로 작성
  • ex) isEnd, viewPagerAdapter

 

 

 

 

728x90

댓글