프로젝트 목록
2024.07 - 2025.04Android Mobile

SmartSet Renewal

레거시 Java 현장 운영 앱을 Kotlin, Jetpack Compose, Multi-module Clean Architecture로 전면 리뉴얼한 프로젝트

정량적 검증 성과 지표

13개 화면
구현 규모
ViewModel 8개 / UseCase 21개 / Room DAO 6개
100% 완료
아키텍처 전환
Java/XML ➔ Kotlin Compose Multi-module
APK 실운영 검증
현장 배포
설치팀/개발팀/영업팀 실운영 배포 및 비교 검증

프로젝트 배경

기존 Java 기반 현장 운영 앱(SmartSet)의 구조적 한계(XML UI, 단일 모듈, 직접 DB 접근)를 극복하고, 현장 업무 흐름(설치·AS·검침·사진·지도)을 완벽히 보존하면서 최신 아키텍처로 전환하기 위해 진행된 전면 리뉴얼 프로젝트였습니다.

핵심 문제 및 기술적 제약조건

수천 줄 단위의 액티비티 결합도를 해체하고, 서버에서 제공하는 원시 SQLite DB를 Room 엔티티로 무손실 이관하며, 현장 작업자의 기존 업무 플로우를 중단 없이 재현해야 했습니다.

주요 개발 기능 및 기술 솔루션

01

4모듈 Clean Architecture 및 Orbit MVI 기반 상태·이벤트 분리

레거시 모놀리식 단일 모듈을 app, presentation, domain, data 4개 모듈로 분할하고 단방향 상태 흐름 구축

문제 상황
기존 Java 레거시 코드는 UI와 DB 호출, 비즈니스 로직이 액티비티 하나에 수천 줄로 얽혀 있어 작은 수정에도 사이드 이펙트가 빈번했습니다.
해결 방법 & 로직
계층별 단방향 의존성 규칙을 강제하고, Orbit MVI와 Hilt 의존성 주입을 적용하여 화면 상태(State)와 비즈니스 UseCase를 명확히 격리했습니다.
결과 및 성과
Compose Screen 13개, ViewModel 8개, UseCase 21개를 체계적으로 분리하여 기능 추가 및 유지보수성을 극대화했습니다.
02

서버 SQLite 파일에서 Room 데이터베이스로의 트랜잭션 마이그레이션

원격 서버에서 다운로드된 레거시 SQLite 파일 데이터를 앱 내부 최신 Room 엔티티로 안전하게 이관

문제 상황
현장 단말 맵핑 데이터가 담긴 원시 SQLite 파일을 직접 다루는 과정에서 테이블 스키마 불일치 및 대량 데이터 변환 시 트랜잭션 롤백 문제가 발생했습니다.
해결 방법 & 로직
전용 SqliteToRoomImporter 계층을 설계하여 트랜잭션 단위로 데이터 유효성을 검증하고, Room DAO 엔티티 매퍼를 통해 안전하게 데이터를 주입했습니다.
결과 및 성과
데이터 손실이나 스키마 충돌 없이 현장 검침/설치 데이터의 정합성을 100% 보장하는 마이그레이션 파이프라인을 완성했습니다.
03

Google Maps Compose 및 CameraX 결합 현장 작업 흐름 통합

계량기 설치 위치 지도 클러스터링, QR 바코드 인식, 현장 설치 사진 압축 업로드 기능 통합

문제 상황
지리 정보 표시와 대용량 사진 촬영/업로드 작업이 빈번한 현장 환경에서 메모리 누수(OOM) 및 백그라운드 작업 중단 문제가 있었습니다.
해결 방법 & 로직
Google Maps Compose와 Marker 클러스터링을 적용하고, CameraX 촬영 이미지를 비동기로 압축하여 업로드 큐에서 순차 처리하도록 최적화했습니다.
결과 및 성과
현장 기사들이 설치 위치 확인부터 단말 QR 인식, 완공 사진 등록까지 하나의 앱 흐름 안에서 중단 없이 수행할 수 있도록 완성했습니다.

프로젝트 결과 및 성과

기존 현장 업무 흐름을 100% 보존하면서 최신 Android 아키텍처로 전면 전환을 완료하여, 향후 기능 추가와 유지보수가 용이한 기반을 확립했습니다.

성장 및 배운 점

아키텍처 리뉴얼의 본질은 단순히 최신 프레임워크를 적용하는 것이 아니라, 수년간 누적된 현장 작업자들의 실제 업무 흐름을 훼손하지 않으면서 코드의 응집도를 높이는 작업임을 깨달았습니다.

기술 스택

KotlinJetpack ComposeClean ArchitectureMulti-moduleOrbit MVIHiltRoomDataStoreGoogle Maps ComposeCameraXNFC

검증 증거 및 공개 범위

공개 및 보안 가이드라인

공개 가능한 범위 내에서 소스 코드와 아키텍처 다이어그램을 설명합니다.

검증 증거Git author: E1jeong <won9964@gmail.com>
검증 증거Notion SmartSet Renewal 설계 사양서 및 화면 명세
검증 증거로컬 4모듈 코드베이스