[Xcode] #pragma MARK, TODO, FIXME 주석 사용법
- 모바일/아이폰
- 2021. 7. 18.
Objective-C로 아이폰 앱을 만들 때는 #pragma mark - 주석 내용을 포함해서 주석을 나타내던 것이 Swift로 넘어오면서 MARK로 변경되었습니다. 기존의 #pragma라는 부분을 더 이상 쓰지 않아도 됩니다. 또한 TODO, FIXME와 같은 구문도 추가할 수 있습니다. 다른 언어 C++, C에서는 보통 전처리 구문으로 인식하는 #pragma는 define이나 include와 같이 사용됩니다. 하지만 Xcode에서는 이를 전처리 구문으로 쓰기보다는 메서드의 구역을 나눌 때 보통 사용합니다. 스위프트 같은 경우에는 extension이라는 문법이 추가돼서 메서드의 구분을 줄 때 extension을 사용하기도 합니다.
영역 구분관련 주석의 종류
- // MARK : 설명
- // TODO : 할 일
- // FIXME : 고쳐야 할 부분
- // !!!: 경고
- // ???: 의문점
▼ 메서드 리스트를 보면 주석 처리한 부분과 메서드들이 구분된 모습을 볼 수 있습니다. 특히 아이콘 모양이 조금 틀린데요. MARK의 경우 그냥 설명 모양의 아이콘이 표시되고 TODO의 경우 TODO 리스트 모양의 아이콘 Fixme의 경우 반창고 모양의 아이콘이 표시됩니다. 재밌네요. 그리고 Ex 같은 경우는 Extension, M의 경우는 메서드, E는 Enum, P는 Property를 나타냅니다.
▼ 코드에서는 다음과 같이 주석에 TODO, MARK 등을 포함시킬 수 있습니다.
▼ 만약 다음과 같이 // MARK: 에 - (대쉬) 기호를 추가한 뒤에 설명을 적게 되면 줄이 에디터에 희미한 줄이 생기는 것을 볼 수 있습니다. 구분선이 생기는 것이죠. 메서드 내비게이션에서도 구분선이 추가된 것을 볼 수 있습니다.
Pragma의 의미가 Action 또는 만능정도의 사전적 의미를 가지고 있는 것 같습니다. 하지만 제 생각에는 추측이긴 합니다만, 이게 주석과 관련이 있고 다른 언어에서는 컴파일러의 전처리명령이라는 점에서 아마도 실용주의를 의미하는 프래그머티즘 (Pragmatism)이랑 관련이 있는 것 같습니다.
저는 개인적으로 extension을 많이 활용하는 편입니다. 특히 델리게이터를 구분하거나 특정 기능들을 구분 지을 때 extension으로 그룹을 만듭니다. 그리고 그것을 설명하는 주석을 // MARK: 로 추가합니다. 생각보다 TODO나 FIXME는 잘 쓰지 않게 되네요. 특히 구분선을 잘 쓰지는 않았는데 이번에 이 주석을 정리하면서 새롭게 알았습니다. 매우 유용합니다.
'모바일 > 아이폰' 카테고리의 다른 글
[iOS] 아이폰 시뮬레이터 다크모드 설정 (Dark Appearance) (0) | 2022.09.06 |
---|---|
[Swift] RxSwift 스크롤 뷰 무한 스크롤링(Infinite Scroll) (0) | 2022.08.30 |
[Swift] Autolayout Multiplier 비율 동적으로 적용하기 (2) | 2022.08.30 |
[Xcode] Code Snippet 코드 스니펫 사용법 및 iCloud 동기화 (0) | 2022.07.07 |
[UIKit] iOS Swift - CollectionView 컬렉션 뷰 만들기 기본 (0) | 2022.05.25 |