- [Feat]: 새로운 기능 추가
- [Fix]: 버그 수정
- [Docs]: 문서 수정
- [Style]: 스타일 수정, 줄 바꿈, 공백, 세미콜론 누락 등
- [Refactor]: 코드 리팩터링
- [Chore]: 기타 변경사항(빌드 프로세스 수정, 패키지 매니저 수정, assets 등)
- [Perf]: 성능 개선
- Ex) [Feat] Home: 로그인 기능 추가
-
들여쓰기 및 띄어 쓰기
- 들여쓰기에는 tab 사용
- 콜론(:)을 쓸 때에는 콜론의 오른쪽에만 공백을 둔다
- 반점(,)을 쓸 때에는 반점의 오른쪽에만 공백을 둔다
-
줄바꿈
- 함수를 호출하는 코드가 최대 길이를 초과하는 경우에는 파라미터 이름을 기준으로 줄바꿈한다
- 단, 파라미터에 클로저가 2개 이상 존재하는 경우에는 무조건 내려쓰기한다
- if let 구문이 길 경우에는 줄바꿈하고 한 칸 들여쓴다
- guard let 구문이 길 경우에는 줄바꿈하고 한 칸 들여쓴다. else는 guard와 같은 들여쓰기를 적용한다
-
빈 줄
- 빈 줄에는 공백이 포함되지 않도록 한다
- 모든 파일은 빈 줄로 끝나도록 한다
-
임포트
- 모듈 임포트는 알파벳 순으로 정렬한다. 내장 프레임워크를 먼저 임포트하고, 빈 줄로 구분하여 서드파티 프레임워크를 임포트한다
-
네이밍
- 클래스, 구조체
- 클래스와 구조체의 이름에는 UpperCamelCase를 사용한다
- 클래스 이름에는 접두사(Prefix)를 붙이지 않는다
- 함수
- 함수 이름은 lowerCamelCase를 사용한다
- 함수 이름 앞에는 되도록이면 get을 붙이지 않는다
- Action 함수의 네이밍은 ‘주어 + 동사 + 목적어’ 형태를 사용한다
- 변수
- 변수 이름은 lowerCamelCase를 사용한다
- 상수
- 상수 이름은 lowerCamelCase를 사용한다
- 열거형
- enum의 이름은 UpperCamelCase를 사용한다
- enum의 각 case에는 lowerCamelCase를 사용한다
- 약어
- 약어로 시작하는 경우 소문자로 표기하고, 그 외의 경우에는 항상 대문자로 표기한다
- 클래스, 구조체
-
클로저
- 파라미터와 리턴 타입이 없는 Closure 정의 시, ( ) → void를 사용한다
- Closure 정의 시, 파라미터에는 괄호를 사용하지 않는다
- Closure 정의 시, 가능한 경우 타입 정의를 생략한다
-
주석
- // : 코드 설명하는 용도
- /// 를 사용해서 문서화에 사용되는 주석을 남긴다
출처: https://velog.io/@tasker_dev/브랜치-규칙
- xcode 최신 버전(26.2)
- iPhone 15 Pro 기준
- Swift 6.2.3
- ios 26 버전 기준
-
라이브러리 · 네트워크 연결: Alamofire, Moya · 이미지 다운로드 및 캐싱: Kingfisher
-
프레임워크 · SwiftUI · AlarmKit
· SwiftData
· Moya
· PhotosUI