Duke Jeon
Flutter developer who ships.
Flutter를 주력으로 앱의 설계부터 스토어 출시와 운영까지 맡아온 3년 9개월 차 모바일 개발자입니다.
- 물류·헬스케어·무인 점포·공공 교통 등 다양한 도메인 서비스 경험
- 기사·보호자 통학 앱 기획부터 Android·iOS 스토어 출시
- 지오펜스 자동 승하차와 GPS 이상치 보정, 실주행으로 검증
- 예약 WebSocket 전환과 재연결 시 상태 복구
- 성공버스 일평균 크래시 200.2건→3.3건, 98.3% 감소
- 공공버스 앱 8개를 프로젝트 2개로 통합
- 차트 라이브러리 커스텀 및 혈당·인슐린 차트 확대·이동 동기화와 렌더링 최적화
다양한 도메인과 협업 구조 속에서 앱을 만들고 문제를 고치며 운영을 정리해온 개발자입니다.
| 3Y 9M | / Career |
|---|---|
| −98.3% | / Daily crashes |
| ~80% | / Core coverage |
SELECTED WORK
- 온버스
- 무브히
- 큐어스트림
- 히얼위고
- SIDE
온버스
기사용·보호자용 통학 앱 개발과 기존 Android·iOS 앱 16개 유지보수
01 기사용·보호자용 통학 앱
- 기사용·보호자용 통학 앱 설계 및 Android·iOS 출시 기사용·보호자용 앱을 서버 개발자와 함께 기획하고, 설계부터 개발, 실주행 QA, 스토어 출시까지 담당했습니다. 기능별로 코드를 나누어 Clean Architecture를 적용하고 Riverpod으로 상태를 관리했으며, 인증·기기·네트워크·Firebase 코드는 core에 모아 프로젝트 전역에서 관리했습니다.
- 지오펜스 기반 자동 승하차 기능 구현 운행을 시작하면 정류장 진입과 정차를 기록해 구역을 벗어날 때 서버로 전송합니다. 혼잡할 땐 다음 정류장에서 보낼 수 있고, 늦게 탄 승객은 확정 기록을 고쳐 반영할 수 있도록 작업했습니다.
- GPS 이상치 필터링과 위치 보정 개선 실주행에서 화면 경로가 실제와 달라, 좌표를 노선에 맞추던 방식을 바꿨습니다. 부정확하거나 오래된 좌표를 제외하고, 거리·시간·속도·방향과 후속 좌표로 튄 값을 걸러낸 뒤 Kalman Filter를 적용해 실주행과 도보로 검증했습니다.
- 단위·위젯 테스트로 Core 라인 커버리지 약 80% 달성 단위·위젯 테스트로 GPS 이상치 처리, 승하차 동기화, 주요 화면을 검증했고, 두 앱 모두 Core 라인 커버리지 약 80%를 달성했습니다.
- Flutter
- Dart
- Clean Architecture
- Riverpod
- Firebase
02 기존 Android·iOS 앱
- 기존 Android·iOS 앱 16개 유지보수 기사용·보호자용 통학 앱 개발과 별도로, 이미 운영 중이던 Android·iOS 앱 16개를 유지보수했습니다.
- 성공버스 일평균 크래시 98.3% 감소 크래시를 분석하여 고쳐 126(1.24)부터 배포하였고, 개선 전 28일 일평균 200.2건이던 크래시가 이후 4개월간 3.3건으로 줄었습니다. 남은 크래시는 강제 업데이트 적용 전 구버전에서만 발생하는 것으로 확인됐습니다.
- 공공버스 앱 8개를 2개 프로젝트로 통합 성공버스·내편중구버스·노원행복버스·관악강감찬버스를 플랫폼마다 따로 두던 프로젝트 8개를, Android·iOS 각 하나의 프로젝트로 합쳤습니다. 앱마다 다른 부분은 Build Variants와 iOS Target 설정으로만 나눴습니다.
- Java
- Swift
- Android
- iOS
무브히
무인 점포 예약 현황과 점수판을 표시하는 단말 앱 개발·운영
03 탁구발전소24
- WebSocket 도입과 재연결 시 예약 상태 복구 1초마다 폴링하던 예약 조회를 서버 개발자와 함께 WebSocket으로 전환했습니다. 연결이 끊기면 마지막 예약을 보여주고, 재연결 시 최신 데이터를 받아 취소된 건은 지우고 ID가 바뀐 건은 교체하며, 타이머는 시작 시간 기준으로 이어지도록 작업했습니다.
- 오류 로그를 활용한 예약 미표시 문제 해결 계층과 메서드 정보를 담은 오류 로그를 로컬에 남기고 서버가 받은 뒤에만 삭제하도록 했습니다. 네트워크·MDM 기록과 대조한 결과 노후 네트워크 장비가 원인이었고, 교체 후 같은 증상은 재발하지 않았습니다.
- 20개 지점·약 80대 단말 원격 관리 Headwind MDM으로 방문 없이 단말을 재부팅하고 로그를 확인했습니다. 재부팅 후 앱이 자동 실행되도록 설정해, 20개 지점 약 80대를 원격으로 관리했습니다.
- Flutter
- Dart
- BLoC
- WebSocket
- Firebase
큐어스트림
혈당·인슐린 데이터를 표시하는 헬스케어 앱 차트 개발과 코드 리팩토링
04 모두스트림
- 혈당·인슐린 차트 구현과 확대·이동 동기화 인슐린 막대 차트와 혈당 선 차트를 위아래로 배치하고 함께 확대·이동되도록 MIT 차트 라이브러리를 수정했습니다. InteractiveViewer로 제스처를 하나로 묶고, 차트를 뒤집을 때 바뀐 좌표에 맞춰 툴팁도 함께 수정했습니다.
- 차트 데이터 클러스터링과 렌더링 최적화 24시간 데이터를 표시할 때 차트가 느려져, 확대 수준에 따라 데이터를 5분·30분·1시간·3시간 단위로 묶고 화면 밖 데이터는 그리지 않도록 했습니다.
- 펌프 BLE 통신 코드의 가독성 개선 펌프 BLE 코드값이 배터리·주입·용량 중 무엇을 뜻하는지 정리하고, 각 메서드가 처리하는 상황을 주석으로 남겼습니다.
- 코드 리뷰를 통한 안내 화면의 중복 코드 개선 단계마다 반복되던 AppBar와 여백을 공통 레이아웃으로 분리하자고 코드 리뷰에서 제안했고, 담당 개발자가 그 구조로 코드를 수정했습니다.
차트 예시
- Flutter
- Dart
- BLoC
- BLE
- Firebase
히얼위고
배송 라이더 앱의 모바일 개발을 전담해 UI·로직·API 구현부터 Android·iOS 스토어 배포·심사까지 맡았습니다.
05 탱고앤고
- 오프라인 스캔 데이터 동기화와 중복 전송 처리 물류창고 네트워크가 불안정해 스캔 데이터를 로컬에 먼저 저장한 뒤 네트워크가 연결되면 서버로 전송하도록 오프라인 우선으로 로직을 수정했습니다.
- 송장 분할 전송과 실패 건 재시도 구현 회사 환경 내부에서가 아니라 외부 서버와도 통신하며 송장을 등록하기에 200건을 한 번에 보내면 타임아웃이 나서 30건 단위로 나눠 전송했습니다. 재시도는 실패한 송장만 다시 보내며, 서버 개선과 함께 200~300건 처리가 약 5초 안에 끝나도록 개선했습니다.
- 행정동 경계 데이터를 활용한 배송 현황 지도 구현 시·구·동 선택 옆에 지도 보기를 추가해, QGIS로 단순화한 행정동 경계 위에서 배송 현황을 확인할 수 있게 했습니다. 표와 지도 중 선택한 보기는 SharedPreferences에 저장됩니다.

- 시스템 오버레이를 통한 배송 위치 추적 제어 flutter_overlay_window로 내비게이션 앱 사용 중에도 위치 추적을 켜고 끌 수 있게 했고, 배송 완료 시 사진 업로드로 이어지며 위치는 FusedLocationProviderClient로 받습니다.
- 배송 완료 사진의 업로드 용량 절감 4~5MB 사진을 업로드 전 압축하되, 배송 호수를 읽을 수 있는 화질은 유지했습니다.
- BLE 바코드 스캐너 연동 BLE 기기명 접두어로 스캐너를 필터링해 연결하고, Characteristic으로 받은 값을 송장번호로 저장해 서버 데이터와 맞췄습니다.
- Flutter
- Dart
- GetX
- BLE
SIDE
06 픽어라운드
- 횟감 추천과 어종 안내부터 주문·결제까지 되는 웹 MVP로, bubble.io·TossPayments·웹훅·Amplitude를 활용했습니다.
- bubble.io
- TossPayments
- Amplitude
07 제일스폰지
- 스폰지·스포츠 용품 업체 홈페이지를 Flutter 웹으로 새로 구축하며 기획·디자인·개발·배포를 전담했습니다.
- Flutter
- Dart
- Supabase
- Firebase
SKILLS
- Flutter
- Dart
- Android
- iOS
- Java
- Swift
- Kotlin
- Clean Architecture
- Riverpod
- BLoC
- GetX
- REST API
- WebSocket
- Firebase
- BLE
- GitHub
- Jira
- Slack
EDUCATION
- 2024.07–2025.02 학점은행제 컴퓨터공학 학사
- 2020.03–2023.02 영진전문대학 컴퓨터정보계열, 학점 4.14/4.5
- 2015.03–2018.02 경북기계공업고등학교 공업전자과
정보처리산업기사, 2022.06, 한국산업인력공단
육군 병장 만기전역, 2018.05–2020.01
