Notice
Recent Posts
Recent Comments
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

성장기록지

개인 프로젝트) 주제와 기술적 도전 기획 본문

개인 프로젝트

개인 프로젝트) 주제와 기술적 도전 기획

pengcon 2025. 1. 3. 14:58

개인 프로젝트 기획

mock api 등을 이용한 쇼핑몰 프로젝트로 부스트캠프에서 습득한 이론적 지식을 실무에 가까운 환경에서 적용하고, 새로운 기술적 도전을 통해 안드로이드 개발 역량을 한층 더 성장시키고자 한다. 단순 기능 구현을 넘어 성능 최적화, 사용자 경험 개선과 같은 종합적인 개발 역량을 키우는 것이 목표이다.


키워드 검색

디바운스를 통한 API 호출 최소화

사용자가 검색어를 입력할 때마다 API를 호출하면 불필요한 네트워크 트래픽이 발생한다. Kotlin Flow와 debounce 연산자를 활용하여 입력이 일정 시간 동안 없을 때만 실제 API 호출이 이루어지도록 구현하여  효율적인 API 통신을 구성한다.

 

검색 결과를 리사이클러뷰로 노출

DiffUtil을 활용하여 데이터 변경 시 효율적으로 UI를 업데이트하고, 뷰홀더 패턴을 통해 메모리 사용을 최적화한다.


아키텍처

MVVM아키텍처 적용

UI 로직과 비즈니스 로직을 명확하게 분리하여 테스트 용이성과 코드 유지보수성을 높인다. ViewModel에서는 LiveData 또는 StateFlow를 통해 UI 상태를 관리하고, Repository 패턴을 통해 데이터 소스에 접근한다.

 

안드로이드 권장 아키텍처 적용

Data, Domain, Presentation 레이어를 구분하고, 각 레이어 간 의존성 방향을 단방향으로 유지한다. 


api 통신

무한 스크롤(Paging 적용)

Paging 라이브러리를 활용하여 스크롤 시 자동으로 다음 페이지 데이터를 로드하는 무한 스크롤을 구현한다. PagingSource와 RemoteMediator를 구현하여 네트워크와 로컬 데이터베이스를 함께 활용하는 방식으로 오프라인 지원까지 고려하는 것이 목표이다.

 

예외 처리 대체 화면

네트워크 오류, 서버 오류, 타임아웃 등 다양한 API 통신 예외 상황에 대응하는 전용 UI를 구현한다. 각 오류 상황에 맞는 안내 메시지와 재시도 옵션을 제공하여 사용자 경험을 향상시키는 것을 목표로 한다.

 

멀티뷰 타입 리사이클러뷰


이미지 처리

스켈레톤

이미지 로딩 중에 사용자에게 로딩 상태를 직관적으로 알려주는 스켈레톤 UI를 구현한다. facebook - shimmer 라이브러리를 활용하여 로딩 중인 콘텐츠의 윤곽을 애니메이션으로 표시한다


로드 실패 시 대체 이미지

이미지 로딩에 실패했을 때 사용자에게 빈 화면을 보여주지 않고 적절한 대체 이미지를 보여주게 한다.

 

캐싱 전략 확인


UI 관련

레이아웃 중첩(오버드로) 최소화

ConstraintLayout을 적극 활용하여 불필요한 중첩 레이아웃을 제거하고 UI 렌더링 성능을 최적화한다. Hierarchy Viewer를 통해 레이아웃 깊이를 분석하고 최적화한다.


커스텀 뷰 활용

자주 사용되는 UI 요소는 커스텀 뷰로 개발하여 코드 재사용성을 높이고 일관된 사용자 경험을 제공한다.

 

다크 테마 대응 및 유지

시스템의 다크 모드 설정에 따라 자동으로 테마가 전환되도록 구현한다.또한 임의 설정에 따라 DataStore 등을 활용해 값을 갖고 있게 하여 테마를 유지시킨다.

 

CPU 사용량


기타 고려사항

북마크 (좋아요 추가/취소)

Room 데이터베이스를 활용하여  북마크한 상품을 로컬에 저장하고 관리하도록 하고, 북마크 된 상품은 좋아요 아이콘과 같이 따로 표시를 해주는 것이 목표다.

 

Git flow에 따른 ISSUE, PR, Commit 

Git 워크플로우를 적용하여 개발 프로세스를 관리한다. 기능별로 이슈를 생성하고, 브랜치 네이밍 규칙을 따르며, 커밋 메시지도 컨벤션에 따라 일관성을 유지한다.

 

디자인 요구사항 적용 경험

Figma UI Kit를 통해 정확히 UI를 구현하는 경험을 쌓는다. 

 

검색 결과 필터 적용


다양한 시도들을 해볼 수 있어서 설레고,

프로젝트를 진행하며 추가로 고려되는 기술들을 적극적으로 고려할 예정이다.