[swift] Swift Sourcery로 생성할 수 있는 코드 예제

Sourcery는 Swift 코드를 분석하고, 템플릿을 통해 자동으로 코드를 생성해주는 도구입니다. 이를 사용하면 반복적이고 지루한 작업을 자동화하여 개발자들의 생산성을 향상시킬 수 있습니다.

이 예제에서는 Sourcery를 사용하여 기본 CRUD(Create, Read, Update, Delete) 기능을 가진 User 모델을 생성하는 코드를 살펴보겠습니다.

1. 설치

먼저 Sourcery를 설치해야 합니다. Swift Package Manager를 통해 설치하는 것이 가장 간단합니다.

$ swift package init --type executable

Package.swift 파일을 열고 dependencies 섹션에 다음 내용을 추가합니다.

.package(url: "https://github.com/krzysztofzablocki/Sourcery.git", .upToNextMajor(from: "2.0.0"))

그리고 targets 섹션에 다음 내용을 추가합니다.

.target(
    name: "YourTargetName",
    dependencies: [
        .product(name: "SourceryFramework", package: "Sourcery"),
    ]
)

설치를 완료하려면 다음 명령을 실행합니다.

$ swift package update
$ swift build

2. 템플릿 작성

Sourcery를 사용하기 위해 템플릿을 작성해야 합니다. 템플릿은 자동으로 생성할 코드의 구조와 형식을 정의하는 데 사용됩니다.

예제를 위해 User라는 클래스를 사용하고, 다음과 같은 템플릿을 작성해봅시다.

// UserTemplate.swift

// sourcery: AutoMockable
class User {
    let name: String
    let age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    func displayInfo() {
        print("Name: \(name), Age: \(age)")
    }
}

템플릿 파일은 일반적으로 소스 코드와 동일한 디렉터리 내에 저장됩니다.

3. 코드 생성

다음 단계에서는 Sourcery를 사용하여 코드를 생성합니다. 터미널을 열고 다음 명령을 실행해보세요.

$ swift package resolve
$ swift run Sourcery

Sourcery가 실행되면 템플릿 파일을 분석하고, 자동으로 코드를 생성합니다. 기본적으로 생성된 코드는 Generated 디렉터리에 저장됩니다.

4. 생성된 코드

Sourcery가 성공적으로 실행되면, 생성된 코드를 사용할 수 있습니다. 다음은 User 클래스를 사용하는 예제입니다.

// main.swift

import Generated

let user = User(name: "John Doe", age: 30)
user.displayInfo()

위 코드를 실행하면, Name: John Doe, Age: 30이라는 출력이 터미널에 나타날 것입니다. 생성된 코드를 사용하여 CRUD 기능을 구현하는 등 다양하게 활용할 수 있습니다.

결론

Sourcery를 사용하면 반복적이고 번거로운 작업을 자동화하여 개발자들이 보다 효율적으로 코드를 작성할 수 있습니다. 이 예제에서는 간단한 User 모델을 생성하는 방법을 살펴보았지만, Sourcery는 보다 복잡한 코드 생성 작업에도 유용하게 활용될 수 있습니다.

더 많은 정보를 찾으려면 Sourcery 공식 GitHub 저장소를 참조하세요.