Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Stacking Fire

SwiftLint 사용하기 (18.1.23. 업데이트) 본문

개발/Swift

SwiftLint 사용하기 (18.1.23. 업데이트)

라우비 2018. 1. 23. 21:22

(2018년 1월 23일, 내용 업데이트)

소개

Lint

lint는 컴퓨터 프로그래밍에서 의심스럽거나, 에러를 발생하기 쉬운 코드에 표시(flag)를 달아 놓는 것을 말한다. 원래는 C 언어에서 사용하던 용어였으나 지금은 다른 언어에서도 일반적으로 사용된다.

위키백과, 우리 모두의 백과사전.

이름에서도 짐작하실 수 있는 것처럼, Swift용의 Lint를 SwiftLint라고 합니다. Xcode는 그 자체로도 어느 정도는 걸러내 줍니다만, 스타일까지는 터치하지 않습니다. SwiftLint는 거기서 한 걸음 더 나가서 빡세게 스타일까지 검사합니다. 심지어 공백을 한 칸 이상 띄우는 행동이나 한 파일이 500줄이 넘어가면 다시 생각해보라는 식입니다.

적용례

아래와 같은, 여기저기 조금 어색하지만 굳이 XCode까지 나서서 경고하지는 않는 코드가 있습니다.

    {...}


    func someFunc(name varLabel:String){
        print(varLabel)
    }
    

SwiftLint를 설치하면 저 코드에만 경고가 4개 뜹니다.

이렇게 말이죠. 이유를 정리하면 아래와 같습니다.

{...}

! 두 칸 이상 여백을 띄웠습니다. 
func someFunc(name varLabel:String){ ! 중괄호 열 때 앞에 여백이 있어야 합니다.
                     ! 콜론에는 우측에 여백이 무조건 있어야 합니다.
    print(varLabel)
}
! 코드 끝에 공백이 있습니다.

고치면 아래처럼 되죠.

{...}

func someFunc(name varLabel: String) {
    print(varLabel)
}

...많이 다른 거 같지 않다면 기분탓...!

사용법

SwiftLint를 사용하는 방법은 여러 가지가 있는데요. 일단 최대한 작업 위치에 따른 의존도가 적은 방식인 CocoaPods으로 설명하겠습니다.

설치

pod 'SwiftLint'

적용

설치 후에는 Build Phase에 Run Script Phase 를 만들고 위와 같이 설정해주면 됩니다.

"${PODS_ROOT}/SwiftLint/swiftlint"

설정하기

그런데 이걸 적용해 놓으면 내 코드 뿐 아니라 워크스페이스 전체 코드, 그러니까 Pods 폴더 안에 있는 남의 코드까지(!!) 막 시비를 겁니다. 심지어 빌드를 안 해주기까지 하죠. (옵셔널을 강제 추출하면 강제 빌드 실패입니다.) 그래서 설정이 필요한데, Git의 .gitignore와 비슷한 방식으로 설정이 가능합니다.

  • 우선 설정 파일인 .swiftlint.yml를 만들어줍니다.

    $ vi .swiftlint.yml
  • 그리고 이런 식으로 설정하면 됩니다. (이렇게 쓰면 끝에 공백이 있는 줄을 무시하고, Pods 폴더 안을 건드리지 않습니다.)

    disabled_rules:
      - trailing_whitespace
      - line_length
    
    excluded:
      - Pods
  • 내용에 대한 참고는 여기


'개발 > Swift' 카테고리의 다른 글

Swift Closure 안에서 상호참조 피하기  (0) 2017.12.27
Comments