Woody
About
iOS Software Engineer in Seoul, Korea
Work Experience
채널 X
· 이커머스 서비스 앱
채널톡
· 채팅 고객상담, CRM 서비스 앱
채널톡 SDK
· 채팅 고객상담, CRM iOS SDK
Projects
신규 이커머스 앱 MVP 개발 및 출시
개발 환경
· SwiftUI/TCA/Swift Concurrency/Tuist
담당 기능
· 피드, 포스트 상세 및 작성, 쇼핑 및 좋아요 탭, 온보딩 기능
· SwiftUI 애니메이션 구현
프로젝트 기여
· Swift Concurrency 를 활용해 네트워크 레이어 설계
· Tuist 를 활용해 프로젝트 모듈화 구조 설계
· Combine 을 활용해 공유 모델 MVI 구조 설계
· TCA Action 컨벤션 도입 및 구조 설계
· SwiftUI & TCA 프로젝트 앱 성능 병목 개선
성능 개선
· Texture NodeBlock 패턴 도입하여 레이아웃 성능 개선
· Wysiwyg Parser 병목 지점 수정하여 메인 스레드 부하 개선
버그 수정
· CATransaction commit 누락 지점 파악하여 프리징 수정
· UICollectionViewLayout offset 버그 수정
· 중복 메시지 버그 수정
· 메모리 릭, 지연 해제 수정
리팩토링
· 소켓 재연결 경험을 모든 플랫폼에서 동일하게 통합
유저에 따라 세분화된 권한을 부여할 수 있는 기능 개발
· 프러덕션에서 사용되는 모든 API 를 정리하고 권한을 논의
· 권한 제한되었을 때 보여주는 공용 컴포넌트 개발
· ISMS 인증의 기반이 된 기능
· 회원가입 플로우 개선
· 튜토리얼 페이지 개발
· 프로그레스 디자인 컴포넌트 개발
· 모바일 앱 설치와 접속률 개선
Side Projects
MediaPicker
Delete unused columns merged
· github.com/exyte/MediaPic…
TCACoordinators
Use StoreOf instead of Store<State, Action>
· github.com/johnpatrickmor…
Restore removeDuplicates and Fix observing stale state
· github.com/johnpatrickmor…
SwiftPrettyPrint
Add UIKit component support
· github.com/YusukeHosonuma…
swift
Remove whitespace in markup
· github.com/apple/swift/pu…
Add whitespace to markup
· github.com/apple/swift/pu…
RxSwift
Remove new line
· github.com/ReactiveX/RxSw…
PryntTrimmerView
Change type casting CMTime to NSValue using NSValue constructor
· github.com/HHK1/PryntTrim…
UIKit 기반 프로젝트에서 XCode Preview 를 쉽게 사용하도록 도와주는 라이브러리
Combine 에서 Assign 구독자를 지원하도록 확장하는 라이브러리
Speaking
· Remote Config 으로 A/B 테스트하기
· VIPER 아키텍처 메모리 릭 해결하기
· Swift Concurrency 톺아보기
· SwiftUI 레이아웃과 데이터 플로우 이해하기
Volunteering
· Swift, iOS 강의 및 코드 리뷰
· 애플 캘린더 앱 클론 코딩
Education
로봇기능반
· 전국학생로봇경진대회 동상