모바일에서 내 프로젝트가 제대로 동작할까?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
프론트엔드 개발자, 특히 모바일 환경에서 테스트/디버깅을 담당하는 개발자
핵심 요약
- Android 10 이상에서
ACCESS_MEDIA_LOCATION
권한이 필수이며, 런타임 동의와MediaStore.setRequireOriginal()
API 필요 - LTE 네트워크 환경에서는 Keep-Alive 타임아웃이 3.6초로 단축되어, 연결 재사용이 제한됨
- 이미지 리사이징 + WebP 변환으로 업로드 시간 90% 감소 (4MB → 250KB, 23초 → 2.4초)
섹션별 세부 요약
1. Android 10의 EXIF 위치 정보 접근 제한
- Android 10(API 29) 이후 EXIF 위치 정보 접근은
ACCESS_MEDIA_LOCATION
권한과setRequireOriginal()
호출 필요 업로드 시 웹 브라우저는 네이티브 앱과 달리 권한 요청 불가능
- UX 대응:
navigator.userAgent
로 Android 감지 후 사용자 경고 UI 제공
2. LTE 네트워크 환경의 Keep-Alive 문제
- Nginx의
keepalive_timeout
75초 설정은 LTE 환경에서 무시됨 (3.6초 타임아웃 발생) - NAT 게이트웨이 제약으로 인해 LTE 연결 종료 시점 예측 불가 (3사별 차이 존재)
- 해결책: 이미지 자체 최적화(리사이징 + WebP)로 네트워크 의존도 감소
3. 실무 적용 예시
- 이미지 최적화 전후: 용량 4MB → 250KB, 업로드 시간 23초 → 2.4초
- 사용자 안내 UI 설계: Android 사용자에게 데스크탑 업로드 권장
결론
- 모바일 테스트는 브라우저 크기 축소로 대체 불가 → iOS Web Inspector, Chrome DevTools 시뮬레이션, BrowserStack 활용
- 네트워크/OS 복잡성 대응: 권한 요청 처리, 이미지 최적화, 연결 재사용 대체 전략 수립 필수