-
Combine 도입
- 기존의 레거시 코드를 제거하며, 뷰를 반응형에 맞도록 제작하였으며 추후 전환될 SwiftUI에 유연하게 대응할 수 있도록 코드를 작성했습니다.
-
Keyboard Extension에 Pin&Flex Layout 도입
- Keyboard Extension에 Pin&Flex Layout 도입하여 키보드의 성능을 개선했으며, 안정성을 60% 초반에서 98~99%로 끌어올리는데 성공했습니다.
- 이 과정에서 FlexLayout 오픈소스에 기여할 수 있었습니다.

-
Multi Thread 운용능력
- iOS 키보드 Extension 내에서 한정된 자원을 효율적으로 활용 및 성능을 개선하기 위해 Modern Cuncurrency 및 GCD를 활용한 Thread 운용과 Thread Safe하게 코드를 작성한 경험이 있습니다.
-
Swift Concurrency & OneWay 도입
- Swift Concurrency를 Alamofire와 함께 도입하며, 이를 유연하게 사용하게 해줄 네트워킹 추상화를 사용했습니다.
- Concurrency를 보다 깔끔하게 사용하기 위해 MVI 아키텍쳐인 OneWay를 같이 도입하여 View와 ViewModel의 역할을 나누었으며, PureDI를 같이 사용함으로써 테스트 가능한 환경을 구축하는데 기여했습니다.
-
PureDI 도입 & Storyboard 코드 제거
- TDD를 도입하기 위해 테스트환경을 유연하게 구축하기 위해서 protocol을 이용한 PureDI 서비스 컨테이너를 설계하고, 이를 도입하기 위해 Storyboard 코드들을 제거하는 작업을 진행하였습니다.
-
키보드 자동완성 기능 제공
- UITextChecker를 통한 키보드 자동완성 기능 제작 및 배포에 기여하였습니다.
-
BaseViewController 도입
- BaseViewController를 도입하여 뷰 간의 클래스 규격화를 진행하고, 코드 스타일을 전반적으로 점검했습니다.
-
AirBridge 도입 & 딥링크 로직 정리
- 기존의 이슈가 많던 Firebase dynamic link를 대체할 Airbridge를 도입하였으며, 링크 스키마를 통한 딥링크 & 디퍼드 딥링크 로직을 정리하였습니다.
-
키보드 아스키아트 기능
- 키보드에서 아스키아트를 보낼 수 있는 기능 제작 및 배포에 기여하였습니다.
-
CI/CD 파이프라인 유지보수
- 도입했었던 CI/CD의 파이프라인을 유지보수 및 환경 최신화 & 최적화를 진행하였습니다.
- 빌드 캐싱 적용을 통해 빌드 속도를 20% 개선하였습니다.
-
Realm 의존성 제거
- 키보드에서 사용하기에 너무 무거운 Realm 라이브러리 의존성을 제거하여 앱 용량을 줄이고 및 키보드 퍼포먼스 개선을 하였습니다.
-
SPM으로 라이브러리 이관 작업
- 추후 Tuist를 도입하기 위해 라이브러리들을 SPM으로 이관하는 작업을 진행하였습니다.
-
그 외 버그 수정 및 유지보수