소개
Swift Sourcery는 Swift에 기반한 코드 생성 도구입니다. 이 도구를 사용하면 컴파일 타임에 소스 코드를 분석하고, 사용자가 정의한 템플릿을 통해 자동으로 코드를 생성할 수 있습니다.
이번에는 Swift Sourcery와 가벼운 프레임워크 개발을 함께 사용하는 방법에 대해 알아보겠습니다.
프레임워크 개발과 코드 생성
-
프레임워크 개발을 시작하기 위해, 새로운 프로젝트를 생성합니다.
- Swift Sourcery를 프로젝트에 추가하기 위해,
Package.swift
파일을 열고dependencies
섹션에 다음과 같이 Sourcery를 추가합니다.dependencies: [ .package(url: "https://github.com/krzysztofzablocki/Sourcery.git", from: "1.0.0") ]
이후 터미널에서
swift package update
명령어를 실행하여 Sourcery를 설치합니다. - 활용하고자 하는 프레임워크에 소스 코드 생성을 위한 주석과 템플릿 파일을 작성합니다. 예를 들어,
MyFramework.swift
에 다음과 같은 주석을 추가합니다.// sourcery: AutoGenerateMockable protocol MyProtocol { func doSomething() }
-
템플릿 파일을 생성하기 위해, 프로젝트 루트 디렉토리에
.sourcery
폴더를 생성한 후,MyProtocolMockable.stencil
이라는 이름의 파일을 생성합니다. MyProtocolMockable.stencil
파일에 다음과 같은 내용을 추가합니다.// sourcery: AutoMockable class {{ name }}Mock: {{ name }} { {% for method in methods %} func {{ method.name }}() { // Implement mock behavior } {% endfor %} }
-
터미널에서
sourcery --sources MyFramework --templates .sourcery --output Generated
명령어를 실행하여 코드를 생성합니다.MyFramework
는 프로젝트의 소스 코드 디렉토리를 의미하며,Generated
는 코드 생성 결과가 저장될 폴더입니다. -
코드 생성 결과를 프로젝트에 적용하려면,
Generated
폴더 내의 파일들을 프로젝트에 추가해야 합니다. Xcode에서File
->Add Files to "YourProject"
를 선택하고,Generated
폴더 내의 파일들을 추가합니다. - 이제 코드에서 생성된 모형 클래스를 사용할 수 있습니다. 예를 들어,
MyProtocolMock
클래스를 사용하여 단위 테스트를 작성할 수 있습니다.
결론
Swift Sourcery는 가벼운 프레임워크 개발에 대한 매우 유용한 도구입니다. 코드 생성을 통해 반복적인 작업을 자동화하고, 유지보수성을 개선할 수 있습니다. 프레임워크 개발과 코드 생성을 연동하여 효율적인 소프트웨어 개발을 진행해보세요.