
🧑💻GitHub
TeddKo - Overview
📞 +82 1040503520
✉️ tddy.ko**@**kakao.com
Newdots | SeeU

Flutter Developer
2025.12 ~ 2026.01
프로젝트 구성원
Flutter 1명
BackEnd 2명
<aside>
Newdosts Corp.의 여행객과 가이드의 매칭 O2O 서비스 ‘SeeU’의 Flutter 앱개발 프로젝트 입니다.
</aside>
앱의 아키텍처와 디자인패턴, 사용할 라이브러리 선택까지 전부 처음부터 기획하고 개발하여 이용자가 불편함 없이 사용할 수 있는것에 초점을 맞추고 개발하였습니다.
CleanArchitecture, MVI 패턴 기반 MonoRepo 구조로 설계하였습니다.
- Melos를 활용해 프로젝트를 core, domain, data, feature 계층으로 분리한 MonoRepo 환경을 구축하고 Riverpod과 Freezed를 결합한 Intent 기반 MVI 패턴을 도입하였습니다.
- 비즈니스 로직과 UI의 의존성을 분리하여 코드 재사용성을 높였으며 대규모 프로젝트에서도 유지보수가 용이한 Architecture 표준을 수립하였습니다.
SOLID 원칙을 준수하여 위젯이 도메인 객체나 비즈니스 로직에 직접 의존하지 않도록 하였습니다.
- 위젯 재사용성과 테스트 용이성을 확보하고 파라미터만으로 데이터 흐름을 파악할 수 있는 직관적인 코드 베이스를 구축했습니다.
- Domain Entity 대신 Primitive Type을 위젯에 주입하고 의존성 역전을 통해 레이어 간 결합도를 낮췄습니다.
토큰 자동 갱신 및 Keychain 데이터 관리로 인증 시스템의 신뢰성을 확보했습니다.
- 401에러 발생 시 자동으로 토큰을 갱신하는 인터셉터와 iOS 앱 재설치 시 잔류 데이터를 정리하는 FirstLaunchService를 구현했습니다.
- 사용자 로그인 상태를 안정적으로 유지하고 플랫폼 특유의 보안 저장소 이슈를 해결해 비정상 동작을 사전에 차단했습니다.
탭별 독립 로딩 상태 관리로 끊김 없고 쾌적한 사용자 인터페이스를 구현했습니다.
- 전역 로딩 대신 각 탭별로 독립적인 isLoading 상태를 부여하고 Pull to Refresh와 연동하여 세밀하게 제어했습니다.
- 특정 탭의 데이터 로딩이 전체 화면에 영향을 주지 않도록 하여 사용자가 느끼는 앱의 반응속도와 사용성을 높였습니다.
SeeU 아키텍처 다이어그램


- Melos를 사용하여 MonoRepo를 구축해 관심사를 분리하고 코드재사용성을 높여 유지보수성을 향상
- CleanArchitecture 패턴을 따라 관심사를 분리하고 추상화에 의존하는 의존성 역전의 원칙을 준수

- MVI 디자인 패턴을 사용하여 UDF(단방향 흐름)를 적용
- 데이터가 항상 Intent → ViewModel → State → View의 순서로 한 방향으로만 흐르게 처리
- Freezed를 사용하여 상태를 Immutable(불변)하게 관리
- 비즈니스 로직과 UI 렌더링 로직을 엄격하게 분리
넷마블F&C-메타버스랩스 | 넷마블F&C Fncy Coin FncyWallet

Android Developer
2023.08 ~ 2025.03
프로젝트 구성원
Android 2명
iOS 2명
BackEnd 6명
<aside>
넷마블 F&C의 FNCY 코인을 비롯하여 비트코인, 이더리움 등 주요 가상자산을 안전하게 관리하고 WEB3 오픈마켓 거래를 할 수 있는 멀티코인 블록체인 지갑 'FncyWallet' 안드로이드 앱 개발 프로젝트입니다.
</aside>
인수 당시 앱은 Java와 Kotlin, XML과 Compose가 혼재된 레거시 코드베이스로 인해 성능 저하 및 유지보수 비효율 문제를 겪고 있었습니다. 이에 저는 전면적인 기술 리팩토링을 주도하여 앱의 안정성, 성능, 보안을 현대적인 수준으로 끌어올렸습니다.
기존의 Java 코드를 100% Kotlin으로 전환하고, 레거시 XML 레이아웃을 Jetpack Compose로 전면 마이그레이션했습니다.
- UI 아키텍처 전면 개편: 100% Kotlin & Jetpack Compose 도입
- 성과: 이를 통해 앱 메모리 사용량을 28% 절감(250MB → 180MB)하고, UI 렌더링 성능을 최적화하여 사용자 경험을 크게 향상시켰습니다. 또한, 코드의 가독성과 재사용성을 높여 유지보수 효율을 극대화했습니다.
Coroutine만으로 관리되던 비동기 로직에 Flow를 추가로 적용하여 데이터 처리 방식을 개선했습니다.
- 비동기 처리 로직 고도화: Coroutine과 Flow의 시너지
- 성과: 실시간 시세 변동과 같은 복잡한 데이터 스트림을 안정적이고 효율적으로 처리할 수 있게 되었으며, 코드 구조를 단순화하여 가독성과 유지보수성을 크게 향상시켰습니다.
SharedPreference에 평문으로 저장되던 개인 정보를 사용자의 민감 정보를 암호화 처리 후, Android Keystore와 Room Database를 활용해 안전하게 마이그레이션했습니다.
- 데이터 보안 강화: 암호화 및 안전한 저장소로 마이그레이션
- 성과: 사용자의 자산을 안전하게 보호하기 위한 데이터 관리 체계를 견고하게 구축하여 지갑의 핵심 가치인 보안 수준을 높였습니다.
FncyWallet 아키텍처 다이어그램
