Project
넷마블F&C-메타버스랩스 | 넷마블F&C Fncy Coin FncyWallet

넷마블 F&C의 FNCY 코인을 비롯하여 비트코인, 이더리움 등 주요 가상자산을 안전하게 관리하고 WEB3 오픈마켓 거래를 할 수 있는 멀티코인 블록체인 지갑 'FncyWallet' 안드로이드 앱 개발 프로젝트입니다.
인수 당시 앱은 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 아키텍처 다이어그램

- 멀티모듈을 사용하여 유지보수성을 끌어 올리고 수정된 모듈만 빌드를 하기때문에 빌드속도도 개선
- CleanArchitecture 패턴을 따라 관심사를 분리하고 추상화에 의존하는 의존성 역전의 원칙을 준수

- MVI 디자인 패턴을 사용하여 UDF(단방향 흐름)를 적용
- 단방향 & 순환적 데이터 흐름
- 불변 상태 객체로 예측 가능성 향상
- 이벤트처리 분리