[swift] SwiftLint를 사용하여 네이밍 컨벤션을 어떻게 일관성 있게 유지할 수 있을까요?

SwiftLint는 Swift 코드의 스타일과 컨벤션을 검사하기 위한 뛰어난 도구입니다. 이 도구를 사용하면 프로젝트 내에서 일관된 네이밍 컨벤션을 유지할 수 있습니다. 이번 블로그 포스트에서는 SwiftLint를 사용하여 네이밍 컨벤션을 어떻게 일관성 있게 유지할 수 있는지 알아보겠습니다.

SwiftLint의 설치

SwiftLint를 사용하기 위해서는 먼저 설치가 필요합니다. SwiftLint는 Homebrew를 통해 쉽게 설치할 수 있습니다. 아래의 명령어를 터미널에 입력하여 SwiftLint를 설치해주세요.

brew install swiftlint

네이밍 컨벤션 규칙 설정

SwiftLint는 swiftlint.yml라는 설정 파일을 사용하여 네이밍 컨벤션 규칙을 설정합니다. 프로젝트 루트 디렉토리에 swiftlint.yml 파일을 생성하고, 아래와 같이 원하는 네이밍 컨벤션 규칙을 설정해보겠습니다.

included:
  - Sources
excluded:
  - Carthage
  - Pods

opt_in_rules:
  - leading_whitespace
  - trailing_whitespace
  - trailing_newline
  - indentation
  - force_try
  - discouraged_force_try
  - discouraged_optional_collection
  - empty_count
  - redundant_optional_initialization
  - cyclomatic_complexity
  - trailing_closure
  - file_length
  - function_body_length
  - line_length
  - statement_position
  - conditional_binding_cascade
  - control_statement
  - identifier_name
  - legacy_constant
  - legacy_constructor
  - legacy_multiple
  - missing_docs
  - opening_brace
  - strong_outlets
  - weak_delegate
  - weak_proxies
  - unused_optional_binding
  - vertical_parameter_alignment
  - weak_self

disabled_rules:
  - force_cast
  - force_unwrapping
  - implicitly_unwrapped_optional
  - line_length
  - todo

위 예시에서는 included 속성을 사용하여 검사할 대상 파일들을 설정하고, excluded 속성을 사용하여 제외할 디렉토리를 설정합니다. 그리고 opt_in_rules 속성에서는 특정 규칙들을 적용시킬 수 있습니다. 마지막으로 disabled_rules 속성은 적용하지 않을 규칙들을 설정하는 부분입니다.

커맨드 라인에서 SwiftLint 실행

설정 파일을 만들었다면, SwiftLint를 커맨드 라인에서 실행하여 네이밍 컨벤션을 검사할 수 있습니다. 아래 명령어를 사용하여 SwiftLint를 실행해보세요.

swiftlint lint

위 명령어를 실행하면 SwiftLint가 프로젝트 내의 모든 Swift 파일을 검사하여 네이밍 컨벤션 관련 오류를 찾아줍니다.

Xcode와 연동하기

SwiftLint는 Xcode와도 연동하여 사용할 수 있습니다. 먼저 SwiftLint를 설치하고, Xcode에서 프로젝트를 열어주세요. 그리고 아래의 단계를 따라 Xcode에 SwiftLint를 연동해보세요.

  1. Xcode에서 프로젝트를 선택하고, Target을 선택합니다.
  2. Build Phases로 이동하여, + 버튼을 클릭하고 “New Run Script Phase”를 선택합니다.
  3. Run Script 섹션에서 아래의 스크립트를 추가합니다.
if which swiftlint >/dev/null; then
    swiftlint lint
else
    echo "warning: SwiftLint not installed, download it from https://github.com/realm/SwiftLint"
fi
  1. 스크립트를 추가한 뒤, Build Phase를 실행할 위치를 설정합니다. 이때, “Run script only when installing” 옵션을 선택합니다.

이제 Xcode에서 프로젝트를 빌드할 때마다 SwiftLint가 실행되어 네이밍 컨벤션을 검사해줍니다.

결론

SwiftLint를 사용하여 네이밍 컨벤션을 일관성 있게 유지할 수 있습니다. 설정파일을 통해 원하는 규칙을 정의하고, 커맨드라인이나 Xcode와 연동하여 사용할 수 있습니다. SwiftLint를 통해 개발자들은 코드의 가독성과 품질을 높이는 데 큰 도움을 얻을 수 있습니다.

참고 자료