Juyeon Lee

iOS Engineer

CONTACT

juyeonlee@me.com

Github

SKILLS

Swift

Objective-C

ABOUT ME

Since iPhone OS 3.1.2

EXPERIENCE

Staff Mobile Engineer

23.08 ~

Coupang Corp.

Front Engineering, TW iOS

Staff Mobile Engineer

22.12 ~ 23.08

Coupang Corp.

iOS Discovery

Gateway Owner

Foldio 360 macOS App

22.4 ~ 22.7

오랜지몽키 코리아

Image Editor (Swift, AppKit, SwiftUI)

1인 개발.

이미지를 여러장 입력받아 필터링과 크롭, 워터마크 블랜딩을 거친 후, 순차적으로 재생하는 GIF, MP4로 export를 수행하는 앱

OpenCV와 GPUImage를 기반으로 제작되고있던 앱의 성능개선과 완성을 진행.

기존 필터적용과 크롭 방식이 CGImage를 순차적으로 생성하는 방식으로 실시간으로 변경된 이미지를 확인하기가 어렵고, export task 수행 시간이 32장 기준으로 5분 이상 소요.

기존 코드에서 OpenCV의 용도가 이미지 크롭과 앱 내부 필터 중 1개의 기능만 사용하는것을 확인.

GPUImage는 Obj-C, OpenGL을 활용한 이미지 프로세싱 오픈소스로 활동이 저조하며, 2018년 Apple이 OpenGL을 deprecate하여 Metal기반 오픈소스로 변경하기로 결정.

앱을 사용하는 중 이미지들을 프로젝트 형태로 저장하기 위해서 Document-Based App으로 프로젝트를 신규 생성

해당 Document는 foldio라는 확장자를 갖는 패키지 형태로 정보를 담는 json파일과 임포트한 이미지, 워터마크이미지를 저장하도록 함

변경되는 라이브러리로 인한 문제가 발생할 경우 타 라이브러리나 GPUImage로 회귀할 경우를 고려하여 렌터링 모듈을 DI형태로 전달하여 사용하기 위해 결국 기존 프로젝트를 버리고 새로 구성

라이브러리는 최근에 활동이 있고, 실제 프로덕트 레벨에서 레퍼런스가 존재하는 것으로 하기로하고 MetalPetal을 사용하기로 결정. 기존 OpenCV에서 사용하던 기능 중 필터1개는 Fragment Shader프로그램을 간단히 작성

앱 완성 후 임포트한 이미지에 필터적용 시간은 실시간처리됨.

export는 기존 300s -> 10s로 향상.

AppStore


Foldio 360 macOS App

22.8 ~ 22.9

오랜지몽키 코리아

BLE Device control (Swift, SwiftUI)

1인 개발.

사진촬영용 턴테이블 기기를 Bluetooth로 제어하는 앱.

앱 요구사항은 ble peripheral검색, characteristic read/write, batch operation이었고, DFU는 고려사항이 아님.

macOS앱으로 제작하지만, iOS로 앱을 출시가능성이 있으므로 SwiftUI로 코드작성을 결정.

단일 Window앱이고, 하나의 기기에 대하여 여러디바이스(mac, iphone, ipad, android) 등등이 연결할 수 있으므로 앱 백그라운드 진입시 bt connection을 유지하지 않도록 앱을 Terminate시킴.

BLE전송 커맨드 중에 카메라ir관련 커맨드로 이미지를 자동촬영기능 구현.

촬영 -> 회전(n/360) -> 대기(s) -> 촬영 -> ... n회

해당 요구사항을 충족하도록 BLE Command를 담은 Batch Job을 만들고 Job을 Operation으로 처리하여 구현.

AppStore


모바일 아이들나라

20.4 ~ 22.12

LG U+

Native iOS (Swift, UIKit) LG U+에서 서비스하는 아이들나라(어린이용 OTT) 서비스 중 iOS

신규개발 -> 기능 추가 업데이트 -> UI개편

신규개발

신규개발시 Role은 개발자 6명 정규직4/프리랜서2 중 프리랜서1 - PA로 참여.

파트 중(OTT영상 재생용 플레이어 / 네트워크 클라이언트, 모델링 / 컨텐츠 목록, Logging / 퀴즈 등 인터렉션 화면 / Account Authrization, IAP, Settings, APNs, Custom Controls)

Account Authrization, IAP, Settings, APNs, Custom Controls를 담당

LG U+의 타 서비스에서 사용했던 코드 일부를 사용하자라는 의견과, 개발자들의 경험상의 이유로 MVC로 개발을 진행.

Singleton Pattern으로 각각의 매니저를 작성하고, property observer를 사용하여 Account의 타입과 auth상태에 따라서 상태를 유지해줄 수 있도록함

기능 추가 업데이트

PL로 프로젝트 진행.

컨텐츠 서버 통합으로 생각했으나, 서버 추가의 건이 되어버림.

신규개발시 진행했던 업무 외에 기존 컨텐츠 목록 진행했던 프리랜스2 - PA의 롤을 인계받음..

Swift Lint적용

네트워크 Codable모델들을 CodingKey를 정리하여 naming 규칙을 따르도록 수정.

기존 서버의 모델과 신규 서버의 모델struct가 상이하여 동일하게 사용할 수 있도록 POP형태로 리펙토링.

기존 컨텐츠 목록의 화면 구성인 다중 상속구조에서 POP형태로 리펙토링

portrait orientation을 지원하도록 UI가 변경되나, 강제 회전옵션 및 landscape를 강제하는 화면이 존재하여 회전상태를 관리하는 매니저 작성.

UI개편

PL로 프로젝트 진행.

전체 컨텐츠를 1차원 목록에서 2차원 목록으로 변경 건.

기존 MVC에서 MVVM패턴으로 변경

RxSwift 사용제안하여 도입

각 메뉴의 화면과 별개로 각각의 화면은 서버의 편성에 따라 지정된 UI로 노출할 수 있도록 전체 구조변경.

화면별로 비즈니스 로직을 처리하는 ViewModel을 만들고, 필요한 컨텐츠를 가져올 수 있는 Repository와 Service를 만듦.

16개의 목록타입과 10종의 서버에서 수신되는 모델을 종속되지 않게 노출 할 수 있도록 진행.

AppStore


낭만여행 고성

20.11 ~ 21.3

위고온

Hybrid iOS (Swift, UIKit), Android (Kotlin)

WebView패키징, 자바스크립트 인젝션 일부.

Google Play


코오롱 통합결재

20.2 ~ 20.4

코오롱 베니트

Native iOS (Swift, UIKit)

결재라인 관리 사내 서비스 앱 개발.


코오롱 의사소통채널통합

19.4 ~ 20.2

코오롱 베니트 개발

Native iOS (Swift, UIKit)

사내 메선저 메시지, 스티커, 이모티콘 대화링크 등을 전달하는 업무용 메신저


Mobile OCR iOS

19.3 ~ 19.3

영남대학교

Native iOS Framework (Objective-C, Swift)

C++로 되어있는 OCR라이브러리를 static library로 포함하고, 카메라 스트림을 받아 라이브러리로 전달하여 신분증을 인식하는 화면을 제공하는 UI bundle을 포함한 프레임워크


인스타페이 iOS 개발

18.12 ~ 19.2

(주)인스타페이

Native iOS Framework (Swift, Objective-C, UIKit)

은행연동하여 QR코드 인식 후 원화 혹은 암호화폐로 결제를 하도록 하는 앱. 발주사 자체 토큰을 이용한 결제기능이 있으나 지갑앱을 만든것은 아님


하나멤버스

17.12 ~ 18.01

(주)하나INS

Native iOS 추가 개발 (Objective-C, UIKit)

하나멤버스 내 하나톡 채팅 기능 버그 수정


커리어넷 앱 개편

17.09 ~ 18.02

18.03 ~ 18.11 (9개월)

커리어넷

Hybrid iOS (Swift, UIKit), Android (Kotlin)

WebView패키징, 자바스크립트 인젝션 일부.


연예인 굿즈 판매 플랫폼

17.04 ~ 17.11

스윗튠

Hybrid iOS (Objective-C, UIKit), Android (Java)

WebView패키징, 자바스크립트 인젝션 일부, 유지보수


하나멤버스

16.11 ~ 17.03

(주)하나INS

Native iOS (Objective-C, UIKit)

개발자 4인 PA 하나멤버스 내 하나톡 채팅 기능 구현


Foldio 360

16.07 ~ 16.09

(주)오렌지몽키

Native iOS (Swift, UIKit)

카메라 이미지 필터, BLE를 이용한 기기(턴테이블) 제어


W Balance

15.09 ~ 16.06

(주)프로스펙스, (주)LG전자

Native iOS (Objective-C, UIKit)

BLE를 이용하여 신발내에 삽입된 기기 정보 수집, 표현하는 앱


휴맥스 캐스트

15.07 ~ 15.08

휴맥스 디지털

Native iOS (Objective-C, UIKit)

네트워크 내부 host중 셋톱박스를 찾아서 연결하여 리모콘 기능을 수행하는 앱


판다린 중국어 회화

15.06 ~ 15.06

판다린 차이나

Hybrid iOS (Objective-C, UIKit)

WebRTC용 WebView패키징, 자바스크립트 인젝션 일부, 유지보수


U+ Webhard iOS

15.04 ~ 15.05

(주)LG U+

Native iOS (Objective-C, UIKit)

LG U+ 웹하드. 파일 다운로드, 업로드


아라뱃길 미디어파사드 솔루션

15.01 ~ 15.03

한국수자원공사

Native iOS (Objective-C, UIKit)

정서진 아라뱃길 여객터미널 옆 미디어파사드에 이미지 게시 요청 앱


SNUH 원격진료

14.12 ~ 15.1

서울대학교 병원

Native iOS (Objective-C, UIKit)

의료진, 구급대간의 호출과 위치확인을 제공하는 앱 2종


U+Box iOS8 추가 개발

14.07 ~ 14.11

(주)LG U+

Native iOS (Objective-C, UIKit)

LG U+ 클라우드 스토리지 서비스. 파일 다운로드, 업로드


Keyss - 커스텀 키보드 iOS8

13.09 ~ 13.09

TIMEIRT

Native iOS (Objective-C, UIKit)

iOS 8 Custom Keyboard Extension


Bigture 리뉴얼

13.11 ~ 14.10

(주)더클락웍스

Native iOS (Objective-C, UIKit)

iPhone, iPad App 2종을 Universal App으로 통합


U+Box 고도화 신규개발 3.x

13.09 ~ 14.01

(주)LG U+

Native iOS (Objective-C, UIKit)

LG U+ 클라우드 스토리지 서비스. 파일 다운로드, 업로드


KDB 전통장터 & 학생공모전 앱개발

13.04 ~ 13.08

(주)더클락웍스

Native iOS (Objective-C, UIKit), Android (JAVA)

기업은행 주체 전통공예 미술품 카다로그 앱


Final Cut Pro 사용자용 Plug-in

12.11 ~ 13.03

(주)캐스트웨어

Mac App Export Plug-in 개발 (Objective-C, Cocoa, SOAP)

Batch Exporter 플로그인 개발


Bigture 기능 수정

12.11 ~ 12.12

(주)더클락웍스

Native iPhone, iPad 앱 기능 추가 iOS (Objective-C, UIKit)

어린이용 drawing앱, SNS


한국산업기술대 앱창업 지원사업

12.07 ~ 12.12

중소기업청

Native iOS (Objective-C, UIKit)

시간표 공유 서비스


동아채널A용 Edius Plugin 개발

12.02 ~ 12.02

(주)캐스트웨어

Edius Plug-in (C++, MFC)

Exporter 플러그인


DogTogether for iOS

12.01 ~ 13.02

(주)바운다우코

Native iOS (Objective-C, UIKit)

애견인 SNS


Edius Plug-in 개발

10.10 ~ 10.10

(주)캐스트웨어 개발 Edius Plug-in 버전 업

Edius Plug-in (C++, MFC)

Exporter 플러그인


모바일 트레이드 시스템 개발

10.04 ~ 12.12

(주)이데일리

Native iPhone OS 3.1.2 ~ (Objective-C, UIKit)

MP트래블러 주식거래 앱


OpenAPI 기반의 차세대 CMS 중 NLE-Plugin 구성요소 모듈 개발

10.01 ~ 10.02

(주)캐스트웨어

Edius Plug-in (C++, MFC)

Exporter 플러그인


Nova II (Netmarble)

09.04 ~ 10.02

(주)아라마루 UI개발 CEGUI 커스터마이징

Windows (C++, Direct 3D)

게임 개발