Android Portfolio

4년 차 안드로이드 개발자입니다. 서비스에서 사용자가 쓰는 결과물을 내는 것을 가장 중요하게 생각합니다.

Summary

안정적인 아키텍처,상태 관리와 운영 관점의 품질 개선(크래시/지표/UX)을 중심으로 개발해왔습니다.

실무에서는 리워드,라디오,정보 앱 등을 개발,유지보수하며 SDK 연동, 커스텀 뷰, 미디어 재생, 소셜 로그인/공유/그래프/로컬DB 동기화 등 기능을 안정적으로 구현했습니다.

개인 프로젝트에서는 Compose + MVI + Firebase Functions로 앱을 출시하고, 리뷰/피드백 기반으로 기능, UI/UX를 개선하며 반복적으로 업데이트하고 있습니다.

Android Kotlin Compose MVI Clean Architecture Firebase ExoPlayer Django Nginx

Quick Info

경력
2021.06 ~ 2025.05 · 제로소프트 · Android 앱 개발
관심
Android, Kotlin, Flutter, Clean Architecture, LLM
이메일로 연락 프로젝트 보기

Project Overview

프로젝트명 구분 주요 기술 링크
돈상자 실무 Kotlin, MVVM, Repository Pattern, Hilt
DataBinding, LiveData, Flow, Coroutines
Retrofit, Firebase
바로가기
캐시모아 실무 Kotlin, MVVM, Repository Pattern, Hilt
DataBinding, LiveData, Flow, Coroutines
Retrofit, Firebase
바로가기
모던라디오 실무 Kotlin, ExoPlayer, MVVM, Repository Pattern
DataBinding, Flow, Retrofit
Foreground Service, MediaStyle, Firebase
-
코코마트 실무 Kotlin, MVVM, Repository Pattern, Hilt
DataBinding, LiveData, Flow, Coroutines
Retrofit, Room, Firebase, WebView
-
농담몬 개인 Kotlin, Compose, MVI, Hilt
Retrofit, Flow, Firebase Functions, Room
OpenAI API, ElevenLabs API
바로가기

Project Details

1. 돈상자 – 리워드 앱

기간: 2024.03 ~ 2025.05 · 참여: 4명(백엔드1/기획1/디자인1/안드로이드1) · 역할: 기능 추가 및 유지보수 담당
주요 업무
  • 애드팝콘, 그린피, 포인트 클릭, IVE 등 다수 오퍼월/광고 SDK 연동 및 모듈화로 안정적으로 관리
  • 사용자 충전소 적립 시 AppKey + userId 파라미터 기반으로 정확한 포인트/칩 보상 지급
  • 룰렛 UI Custom View 제작
    • 전체 360°를 조각 개수로 나누어 sweepAngle 산출, drawArc로 동적 룰렛 조각 생성
    • 슬라이스 중앙 좌표 계산에 sin/cos 삼각함수 적용하여 이미지/텍스트가 회전 각도에 맞춰 정중앙에 위치하도록 정렬
    • 무한 회전 상태에서 서버 당첨 결과 수신 시 최종 정지 각도 계산 → DecelerateInterpolator 기반 감속 정지 애니메이션 구현
  • 신규 이벤트/룰렛 도입으로 사용자 참여도 상승에 기여
  • Crashlytics 기반 오류 분석 후 지속적인 안정성 개선
  • Firebase Analytics로 사용자 이벤트 참여도 수집
기여 성과
  • 룰렛 도입 후 DAU 15% 상승
  • 보상형 동영상 광고 도입(룰렛 참여 칩 제공)으로 광고 요청 수 20% 상승

2. 캐시모아 – 리워드 앱

기간: 2024.03 ~ 2025.05 · 참여: 4명(백엔드1/기획1/디자인1/안드로이드1) · 역할: 기능 추가 및 유지보수 담당
주요 업무
  • 애드팝콘, 그린피, 포인트 클릭, IVE 등 다수 오퍼월/광고 SDK 연동 및 모듈화로 안정적으로 관리
  • 사용자 적립/보상 지급 로직 안정화(정확한 파라미터 구성 및 예외 케이스 대응)
  • Crashlytics 기반 오류 분석 및 안정성 개선
  • Firebase Analytics로 이벤트 참여도 수집 및 참여율 개선 포인트 분석
기여 성과
  • 앱 크래시율 0.1% 이하 유지
  • 다수의 오퍼월/광고 SDK를 모듈화하여 유지보수 비용 및 운영 리스크 절감

3. 모던라디오 – 라디오 스트리밍 앱

기간: 2022.10 ~ 2025.05 · 참여: 4명(백엔드1/기획1/디자인1/안드로이드1) · 역할: 안드로이드 앱 개발 및 유지보수 담당
주요 업무
  • ExoPlayer 기반 라디오 스트리밍 구현
  • 채널 선택 주파수 Custom View 구현
    • 전체 비트맵을 메모리에 올리는 방식 대신, 화면 표시 영역만큼 Rect를 계산해 자르는 Rect-to-Rect Mapping 방식 적용
    • VelocityTracker로 터치 속도 계산
    • OverScroller.startScroll() 호출 후 computeScroll()에서 매 프레임 변화량을 invalidate()로 반영하여 스크롤 애니메이션 완성
    • 메모리 누수 방지를 위해 onDetachedFromWindow에서 비트맵 참조 해제
  • Foreground Service + MediaStyle Notification 조합
    • Android 12 이상에서 RemoteViews 기반 커스텀 알림 제약 대응 → MediaStyle 기반으로 전환
    • 시스템 미디어 컨트롤러(잠금 화면/블루투스 이어폰 버튼 등)와 앱 재생 상태 동기화
    • 이어폰 연결 해제 시 BroadcastReceiver로 자동 정지 처리하여 의도치 않은 스피커 출력 방지
    • Android 12+ 포그라운드 서비스 제한 정책 대응: PendingIntent.FLAG_IMMUTABLE, FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK 명시로 강제 종료 이슈 방지
    • 향후 Jetpack Media3 마이그레이션 예정
  • Firebase Crashlytics/Analytics 도입 및 모니터링
기여 성과
  • 런칭 후 4주 다운로드 1만 회
  • 앱 크래시율 0.1% 이하 유지

4. 코코마트 – 코스트코 할인 정보 제공 앱

기간: 2024.07 ~ 2025.05 · 참여: 4명(백엔드1/기획1/디자인1/안드로이드1) · 역할: 안드로이드 앱 개발 및 유지보수 담당
주요 업무
  • 모던 Android 개발 기술 적용 (Kotlin, Coroutines, Flow, Hilt)
    • MVVM 패턴 기반 클린 아키텍처 구현
    • Repository 패턴으로 데이터 레이어 추상화
    • Hilt를 활용한 의존성 주입 체계 구축
  • 소셜 로그인 연동
    • 카카오/네이버/구글 로그인 SDK 연동
    • OAuth 2.0 인증 흐름 구현
  • 할인 상품 조회 시스템
    • Retrofit2 기반 REST API 통신 구현
    • Flow + Coroutines 기반 비동기 데이터 처리
    • RecyclerView DiffUtil로 효율적인 리스트 갱신
  • 카카오 링크 공유 기능 구현
    • 상품 상세 화면에서 카카오톡 링크 공유 기능 구현
    • Kakao SDK CommerceTemplate로 상품명/이미지/정상가/할인가/할인율 포함 커머스형 메시지 구성
    • 카카오톡 설치 여부에 따라 네이티브 공유/웹 공유 로직 분기
    • 공유 클릭 시 상품 상세 웹 페이지로 딥링크 연결
    • 공유 성공 시 Analytics 이벤트 기록 및 통계화
  • 가격 변동 그래프 시각화
    • MPAndroidChart 기반 가격 추이 그래프 구현
    • 역대 최고가/최저가 마커 표시
  • 쇼핑 리스트(장보기 리스트) 기능 – 로컬 DB 기반 + 서버 가격 동기화
    • 로컬 DB(ShoppingItem)를 Flow로 구독하여 리스트 변경 시 자동 UI 반영
    • DB에서 상품코드만 추출 → 서버 요청 payload(JSON 배열) 구성 후 가격 리스트 API 호출
    • 할인 목록에 없는 상품은 사용자가 상품명/가격을 직접 작성하여 리스트에 추가 가능
    • 서버 응답을 DB 상태(수량/체크 여부)로 재매핑하여 UI 모델에 반영
  • 커뮤니티 기능
    • 게시판/게시글 상세/글쓰기 화면 WebView 구현
    • JavascriptInterface 기반 Web ↔ Native 양방향 통신 설계 및 구현
    • WebChromeClient.onShowFileChooser()로 이미지 다중 선택 업로드 지원
기여 성과
  • 3개 플랫폼 소셜 로그인 지원으로 회원가입 편의성 향상
  • API 응답 시간 평균 300ms 달성
  • 가격 비교 차트 제공으로 사용자 가격 비교 편의성 향상 및 할인 패턴 파악 지원
  • 커뮤니티 활성화로 유저 앱 평균 체류 시간 10% 증가

5. 농담몬 – 심심할 때 웃긴 AI 랜덤 유머·농담 생성기 (개인 프로젝트)

기간: 2025.06 ~ 2025.07(배포 완료, 업데이트 꾸준히 진행중) · 참여: 2명(디자인1/안드로이드1, 공동 기획) · 역할: 안드로이드 앱 개발, 기획/디자인 협업
주요 업무
  • Jetpack Compose + MVI 아키텍처
    • 단일 State/Effect로 화면 상태와 이벤트 관리
  • Clean Architecture
    • Feature 단위 분리, 각 기능별 Presentation/Data 분리, Repository Pattern 적용
  • Firebase Functions로 서버리스 백엔드 구축
    • 클라이언트에서 OpenAI 키를 직접 사용하지 않도록 Functions 프록시 구성
  • Crashlytics & Analytics
    • 크래시 모니터링 및 유저 행동 로깅으로 개선 포인트 분석
  • 카테고리별 프롬프트 구성 후 OpenAI API로 농담 생성
  • 생성된 농담을 ElevenLabs TTS로 음성 재생
  • 농담 즐겨찾기 / 최근 농담 저장 및 관리
    • Room 기반으로 최근/즐겨찾기 기능 구현
  • (예정) 시간대별로 캐릭터와 문구가 바뀌는 홈 위젯
기여 성과
  • 스토어 리뷰/유저 피드백 기반으로 프롬프트 수정 등 2~3회 버전 개선