Blog

XCode 코딩 컨벤션 걱정 끝. BBUncrustify

December 15, 2013

XCode 코딩 컨벤션 걱정 끝. BBUncrustify

대부분의 프로젝트에는 코드 컨벤션이 있습니다. 코드 컨벤션이 없다면 참여자의 수 만큼 코드가 읽기 어려워집니다. 나는 80컬럼에 8칸 하드 탭을 사용했는데 다른 친구는 120컬럼에 2칸 소프트 탭을 쓰고 또 다른 친구는 분기 문 정도는 모두 한줄로 쓴다고 생각해봅시다. 이 코드를 읽을 바에 지옥을 가는 분들이 나타날겁니다.

코드의 포매팅을 맞추는 일은 매우 고통스러운 일입니다. 사람 마다의 의견도 다르기도 합니다. 하지만 합의한 이후가 사실은 고통의 시작입니다. 그것을 지키기 위해 참여자들이 신경을 써야 하는 점이 더 고통스럽습니다. 많은 인원이 투여되는 대규모의 프로젝트나 자유롭게 사람들이 참여하는 오픈 소스 프로젝트에서 코드 포매팅을 유지하는 일은 더 힘들죠.

포매터가 있다면 이야기는 조금 달라집니다. 컨벤션을 맞추는 일이 훨씬 더 쉬워집니다. 포매터는 여러 사람이 작업을 할때 코드컨벤션을 통일 시킬 수 있고 잘못된 코드를 수정할 수 있습니다. 자신의 코드를 고치는 과정에 타인의 코드를 가져오는 과정에 빌드하기 전에 커밋하기 전에 언제든지 마우스 몇번이나 키보드 몇번 움직여 코드를 정돈할 수 있습니다.

그럼 각 통합 개발 환경에 맞는 포매터 사용법을 알려주면 되는 것이 아니냐고 물어보는 개발자들도 있을 겁니다. 네. 여러 IDE들은 포매터가 있고 포매팅 설정 파일을 등록해서 손쉽게 모두가 같은 코드 컨벤션을 쓸 수가 있어요. 어느 정도 사용자가 있는 IDE 중에서는 제 생각에는 XCode 정도만 없는 것 같네요. 이 글을 읽는 iOS, Mac 개발자들은 순간 놀랬을 겁니다. 아니 XCode에 포매터가 없다고!? 그런데 이 글을 쓴 저자는 제목에 XCode를 적어서 낚시를 했어!

흥분하시지 마시고 잠시 제 글을 마저 읽어주십시오. 해결책은 있습니다. 많은 사람들이 XCode를 사용하고 있고 조금 더 나은 방법을 찾기 위해 노력해왔습니다. 벨기에의 Benoit Bourdon도 그런 사람 중 한 사람이죠. Benoit는 XCode를 위한 플러그인 BBUncrustify를 만들었습니다. 이 플러그인 만 있으면 코드의 컨벤션을 조금 더 쉽게 맞출 수 있습니다.

설치는 간단합니다. 어려우면 제가 소개하지도 않았어요. 여기에서 압축 파일을 받으신 다음에 본인의 맥에서 압축을 푸세요. 파일이 하나 나오는데 아마 이름이 UncrustifyPlugin.xcplugin 정도일겁니다. 이 파일을 복사해서 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 에 복사하세요. 그리고 XCode를 재부팅하세요.

이제 당신의 XCode에도 포매터 하나 까신 겁니다. 즐겁게 해킹하세요.