[swift] SwiftLint를 사용하여 커밋 전 코드 검사를 자동화하는 방법은 무엇인가요?

SwiftLint는 Swift 코드 스타일과 관련된 문제를 식별하여 개발자에게 알려주는 도구입니다. 이는 코드의 일관성과 가독성을 향상시키고, 팀 내에서 일관된 코딩 스타일을 유지하기 위해 매우 유용합니다.

커밋 전에 SwiftLint를 사용하여 코드를 자동으로 검사하려면 다음 단계를 수행해야 합니다:

  1. SwiftLint 설치하기:
    • SwiftLint를 사용하기 위해 우선 Swift Package Manager(SPM)를 사용하여 SwiftLint를 프로젝트에 추가해야 합니다.
    • Package.swift 파일을 열고, dependencies 배열에 다음 코드를 추가합니다:
      .package(url: "https://github.com/realm/SwiftLint.git", from: "0.43.1")
      
    • 그런 다음, 프로젝트의 targets 배열 안에 있는 target에 다음 코드를 추가합니다:
      .target(
          name: "YourTarget",
          dependencies: ["SwiftLint"],
          ...
      ),
      
    • 터미널에서 프로젝트 디렉토리로 이동한 다음 다음 명령어를 실행하여 SwiftLint를 설치합니다:
      swift run swiftlint
      
  2. SwiftLint 설정하기:
    • 프로젝트의 루트 디렉토리에 .swiftlint.yml 파일을 생성합니다.
    • 이 파일에서 SwiftLint 규칙을 수정하여 프로젝트에 맞게 설정할 수 있습니다.
    • .swiftlint.yml 파일 예시: ```yml disabled_rules:
      • line_length included:
      • Sources/** # SwiftLint로 검사할 대상 소스 코드 경로 ```
  3. 커밋 전에 SwiftLint 실행 설정하기:
    • Git 훅(pre-commit 훅 등)을 사용하여 커밋이 이루어지기 전에 SwiftLint를 실행하도록 설정할 수 있습니다.

    • 프로젝트의 .git/hooks 디렉토리로 이동합니다:
      cd .git/hooks
      
    • pre-commit 파일을 생성하고, 다음 스크립트를 추가합니다:
      #!/bin/sh
           
      # Pre-commit hook to run SwiftLint before every commit.
           
      # Get the path to the SwiftLint executable.
      SWIFTLINT=/usr/local/bin/swiftlint
           
      # Run SwiftLint.
      $SWIFTLINT
      
    • 스크립트 파일을 저장하고 실행 가능하게 만듭니다:
      chmod +x pre-commit
      

이제, 코드를 수정하고 커밋할 때마다 pre-commit 훅이 실행되어 SwiftLint가 코드를 검사하게 됩니다. 검사가 완료되면 발견된 문제점에 대한 경고 및 에러를 확인할 수 있습니다. 이렇게 자동화된 코드 검사로 프로젝트의 코드 품질을 유지할 수 있습니다.

추가적으로, SwiftLint를 Xcode 빌드 단계에 통합하여 개발 중에도 실시간으로 코드를 검사하고 싶다면, Xcode 설정에서 Build Phases를 엽니다. New Run Script Phase를 추가하고 다음 코드를 입력합니다:

if which swiftlint >/dev/null; then
    swiftlint
else
    echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

이렇게 하면 Xcode 빌드 시마다 SwiftLint가 실행되어 코드를 자동으로 검사하게 됩니다.