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 저장소를 참조하세요.