MC #1 Team 11 너는내멘토티
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
Meenu | Rookie | Brown | Chemi | Noel | Daon |
with 곰민, 제이슨
Type | Subject |
---|---|
Feat | 새로운 기능 추가 |
Fix | 버그 수정 |
Build | 빌드 관련 파일 수정 |
Design | UI Design 변경 |
Ci | CI관련 설정 수정 |
Docs | 문서 (문서 추가, 수정, 삭제) |
Style | 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없는 경우) |
Refactor | 코드 리팩토링 |
Test | 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없는 경우) |
Chore | 기타 변경사항 (빌드 스크립트 수정 등) |
mentortee
├── System
│ └── mentorteeApp.swift
├── Resource
├── Helper
├── Service
├── Datas
└── Views
├── MainView
├── FeedView
├── QnAView
├── MyPageView
└── LogInView
mentortee
├── mentorteeApp.swift
└── ContentView.swift
│ ├── MainPage.swift
│ ├── Feed페이지
│ ├── 내가한질문/답변
│ └── 마이페이지
└── 리소스
- 모든 이름에는 _(underscore)를 사용하지 않는다
- 모든 이름에는 -(hypen)을 사용하지 않는다
- 의미없는 이름(i, j, k, a, b ...)은 사용하지 않는다
- 이름에는 복수형을 사용하지 않는다
- 이름에 get, set을 포함하지 않는다
-
camelCase를 사용한다
-
명사를 사용한다
-
버튼 등을 표시하는 객체는 Hungarian Notation으로 표기하며, 가독성을 위해 접두의 약어는 모두 소문자로 표시한다
ex)
btnSave
-
Hungarian Notation의 약어는 약속된 축약어만 사용하도록 한다
- button ->
btn
- count ->
cnt
- boolean ->
b
- button ->
-
static
변수의 이름 앞에는 접두로k
를 붙인다 -
bool
타입의 변수는 접두로is
혹은b
를 사용한다
- camelCase를 사용한다
- '동사 + 명사형'으로 사용한다
- 액션함수의 경우 '주어 + 동사 + 목적어' 형태로 작성한다
will
: 특정 행위가 일어나기 직전을 의미did
: 특정 행위가 일어난 직후를 의미
- 클래스(타입, 프로토콜 포함) 이름에는 PascalCase(UpperCamelCase)를 사용한다
- enum의 case에는 모두 소문자를 사용한다
class SpaceFleet: SpaceThing { }
enum Result {
case success
case failure
}
- 리소스 파일(asset 등)은 모두 소문자를 사용한다
- 패키지 이름은 PascalCase(UpperCamelCase)를 사용한다
- import하는 모듈은 알파벳 순으로 정렬한다
- 모듈은 파일이 필요로하는 최소한의 모듈만 import한다
- 빈 줄에는 공백이 포함되지 않도록 한다
- 모든 파일은 빈 줄로 끝나도록 한다
Tab
은Space
4칸으로 한다- 들여쓰기는 Xcode에서 제공하는
^
+i
단축키를 눌렀을 때, 적용되는space
를 사용한다 - 최대 가로 길이는 100 characters로 한다
:
(colon)을 사용할 때는 오른쪽에만 공백을 준다- 단, 삼항연산자에서는 양쪽에 공백을 준다
-
if let
,guard let
구문이 긴 경우에는 줄바꿈하고 한 칸 들여쓴다 -
불필요한 괄호는 생략한다
-
button 형식은 아래와 같이 사용한다
Button(action: {
saveAnswer()
presentation.wrappedValue.dismiss()
}, label: {
Text("작성완료:)").bold()
.frame(width: 310, height: 40, alignment: .center)
})
- 파라미터와 리턴 타입이 없는 클로저 정의시
() -> Void
를 사용한다
- 구조체를 생성할 때는 구조체 생성자를 사용한다
- 문법의 모호함을 제거하기 위해 언어에서 필수로 요구하지 않는 이상
self
는 사용하지 않는다
Array<T>
와Dictionary<T: U>
등 보다는[T]
,[T: U]
를 사용한다