의존성관리도구로 CocoaPods을 사용 중인 프로젝인 경우 Tuist를 도입을 생각 중이라면 SwiftPM이 작업하기 수월하고 빌드시간단축도 되기 때문에 장점을 고려하면 Migration을 할 수 있다.
일단 CocoaPods에서 SwiftPM으로 전환한다면 프로젝트에서 설치된 Pod과 Product를 정리한다.
그리고 발생하는 몇몇 상황에 대비해야한다.
- Swift Package에 설치되는 의존성버전들이 충돌되는 경우
🔗 socket-cluster 라이브러리는 업데이트가 지속적으로 되지 않아서 내부 Test타겟에서 RxSwift버전이 낮아 라이브러리 설치가 되지않았다.
그래서 🔗 Test타겟을 제거한 Repository로 설치했다. - SwiftPM을 지원하지 않는 라이브러리가 있는 경우
🔗 NaverMap iOS SDK는 SwiftPM을 지원하지 않아서 검색 도중 🔗 지원하는 Repository로 설치했다.
모든 Swift Package를 설치한 후 추후 작업을 위해 Package Collection을 생성했다.
Package Collection
Package Collection을 생성할 때 🔗WWDC에 설명이 잘되어 있었지만 서명을 추가하는 부분이 복잡했다.
- Swift Package Collection Certificate를 발급한다.
- 키체인에 등록 후 개인키 .p12 파일을 .pem으로 openssl로 변환한다. (openssl이 1버전대라면 그대로 사용이가능하지만 3버전대라면 -legacy 옵션을 추가한다.)
- 중간인증서와 루트인증서와 함께 package-collection-sign 명령어를 실행한다.
SwiftPM Migration 작업 순서
- CocoaPods, Pod 관련 파일들을 제거했다.
- 🔗 [R.Swift라이브러리](https://github.com/mac-cain13/R.swift)를 사용하는 경우 SwiftPM에서는 R.generated.swift를 적용하는 Build Script를 제거한 후 Swift Package Build Tool Plugin으로 변경했다.
- Firebase Crashlytics dSym을 업로드하는 빌드스크립트를 SwiftPM에 맞도록 변경했다.
- Objective-C 라이브러리를 사용하지 않는 경우 Bridging-Header.h를 제거했다.
- License Plist 라이브러리를 설치한 SwiftPM으로 업데이트했다.
📃 이력서 피드백
작성한 이력서에 대해 동료에게 피드백을 받았다.
정리
- 간단소개글 및 자기소개는 문장의 느낌으로 작성한다.
- 도메인을 이해한 사람만 아는 용어는 자제한다.
- Udacity - Nano Degree 강의들은 도움이 된다.
개발자기술면접노트
라는 최근 나온 도서가 도움이 된다.
🙋🏻♂️ 기타 사항
- Bitbucket은 Cloud와 DataCenter로 나누어지는데 Cloud는 SaaS 제품이고, DataCenter는 설치형제품이다. 각종 제공되는 기능이 다른 부분들이 있다.
- 상용한글은 2350자로 구성되어있다.
- Github gist 같은 기능을 Bitbucket에도 Snippet이라고 있다. gist는 public으로 전환 후에는 secret으로 변경이 되지 않는다.