☎️ Contact

📮 [email protected]

🔗 LinkedIn

🔗 Github

🔗 KO Resume / EN Resume


👋 Introduce

2008년에 아이폰3Gs 시절 아이폰이 막 뜨기시작할때 iOS 앱개발에 입문을 했습니다.

처음에는 바코드를 사운드로 변환시키는 QR to SoundCode 라는 졸업작품을 하기 위해 입문했으나 Objective-C에 매력을 느끼고 그 이후 프리랜서 팀에 들어가 외주 앱들의 일부 기능들을 짜면서 앱개발을 본격적으로 시작하게 되었습니다. 이후 프리랜서 및 SI회사를 다니면서 이것저것 많은 프로젝트를 하게 되었습니다.

아무래도 초반에는 오픈소스 라이브러리도 많지 않을뿐더러 Cocoapods도 없었기때문에 다양한 라이브러리를 직접 만들어 사용했던게 재미있었던것 같습니다. Objective-C같은 경우 C언어와 비슷해서 define되어있는 매크로를 많이 짜게 되었고 이때는 생산성에 치중되어있는 코드들을 많이 짰습니다.

2012년 처음 스타트업에 뛰어들었습니다. iOS앱에 C언어 OpenCV 라이브러리를 이용해 테이블위에 AR을 띄우는 앱이나 GPUImage를 사용해 이미지 필터링을 하는 앱을 제작했습니다. 소개팅앱 서비스에 Ruby 서버 개발자로 일해보기도 하고. 혼자 NodeJS 서버, SQLite, MongoDB 등을 간단히 구축해 하이브리드 앱을 만들기도 하였습니다. 아무래도 스타트업을 하다보니 웹도 짜야되고 하다보니 프론트엔드 백엔드 이것저것 조금씩은 다해본것같습니다.

Bitfinder 에서는 공기질 측정기인 Awair(IOT 디바이스)와 BLE 연동 및 MQTT 를 이용해 실시간 데이터 핸들링을 했습니다. 아무래도 디바이스로 할 수 있는게 많다보니 많은 피쳐를 만들었습니다. 앱이 커지다보니 자동 배포 시스템(Jenkins, Fastlane)이나 Binary를 이용한 빌드시간 개선 등 다양한 경험을 해봤습니다. iOS 13까지는 Carthage를 이용하다가 14넘어가면서 Carthage 업데이트 속도가 iOS 업데이트 속도를 많이 못따라 오는바람에 Grab에서 관리하는 cocoapods-binary-cache 를 사용하기도했습니다. 중간중간 다른 회사와 협업을 진행 하면서 Framework를 만들어 제공하거나 Homekit Device와 연동도 해보고 다양한 경험을 했습니다. 프론트엔드 리드이기도 했기 때문에 프로젝트 관리나 개발자 매니징을 하기도했으며 Agile, Kanban 방식을 둘다 사용하여 유연하게 프로젝트를 진행하였습니다. Jira, Confluence, Bitbucket, Slack을 주로 사용했으며 서브로 Asana, Grafana, Rclone, Zappier 등 다양한 툴을 사용했습니다. 오래 다니다보니 CS dashboard를 기획 및 개발하거나 자동 이미지 업데이트 툴을 개발하는 등 앱 외적인 것들도 개발하였습니다. 본사가 샌프란시스코에 있다보니 오고가며 실리콘벨리의 문화와 미국의 정서를 배울 수 있었습니다.

Credi 에서는 Flutter를 쓰기 좋은 기회라고 생각해서 Flutter 로 iOS, Android 앱을 개발했습니다. 유저와 어드민을 위한 앱을 만들었고 따로 백엔드 개발자가 없었기때문에 Firestore 이벤트 핸들러와 NodeJS를 이용해 백엔드를 대체 했습니다.

이후 Riiid 에서 SwiftUI 와 pointfree 에서 제공하는 TCA(The Composable Architecutre) 를 사용하며 더 탄탄하고 팀으로서 운영하기 좋은 코드를 경험 해 볼 수 있었습니다. Quick & Nimble 을 통해 테스트를 작성하고 Snapshot(swift-snapshot-testing) 을 자동화 하여 UI 변경에 대한 slack 을 받을 수 있게했습니다. Maestro 를 통해 e2e QA 자동화와 slack 에서 누구든 테스트를 돌릴 수 있게 slack bot을 작성하고 다양한 자동화를 통해 더 좋은 개발 환경을 만들어 나갔습니다. Stencil 을 활용해 Swift 에 Macro 가 나오기전부터 이미 protocol 이나 mock 등을 자동으로 생성해주는 일을 진행하고 프로덕트에도 기여하며 SPM 을 통한 모듈화 등 다양한 경험을 쌓았습니다. 팀으로 일하면서 워낙 뛰어난 분들도 많고 성향도 다 달라서 많은것들을 배울 수 있었습니다.

일 외적으로는 Flutter & Dart 를 공부하고 있습니다. 개인적으로 One source multi platform이 앞으로 많은 부분을 차지 할것이라고 생각해서 이전에 Sencha Touch도 했었습니다. Sencha는 결국 흥하지는 못했지만 Flutter를 직접 개발을 해봤을때 느낀점은 진입장벽도 낮고 개발 트렌드도 잘 따라가고 있고 생산성도 높기 때문에 관심을 갖고 보고있습니다.