2025/04 3

HTTP FAILED: java.net.SocketTimeoutException: timeout 문제 해결법

문제 상황회사에서 운영하던 서비스가 데이터가 많이 쌓여서 api return까지 걸리는 시간이 10초를 넘으면서 사용 기록이 많은 사용자들에게 앱에서 연속적으로 timeOut이 발생했습니다. 현재 상황에서 조회에 소요되는 시간은 30초 전후이고, DB 개선이 필요하지만 동시에 timeOut 제한 시간도 수정을 해야할 것 같습니다. 타임 아웃의 종류설정할 수 있는 값의 범위는부터 0 부터 Integer.MAX_VALUE까지이며, 단위는 밀리초(ms)입니다.0은 제한 없음(no timeout)을 의미합니다.타임아웃 종류 SocketTimeOutException이 발생할 수 있는 상황1. 서버 응답 지연서버가 내부적으로 오래 걸리는 작업을 처리 중일 수 있습니다 (예: 데이터베이스 작업, 외부 API 호출)...

질문 정리 2025.04.24

안드로이드 앱의 기본 빌드 타입을 Release로 변경하는 방법

문제 상황버전 업데이트를 할 때, 실제 상황과 동일하게 테스트를 하고 싶을 때가 있습니다. 하지만 안드로이드 스튜디오에서 앱을 실행하거나 빌드하면, 기본적으로 debug 빌드 타입으로 앱이 빌드됩니다.실제 서비스와 동일한 환경에서 테스트하거나, 디버깅 로그 없이 앱을 실행하고 싶을 때는 release 빌드로 앱을 실행하고 싶은 경우에는 빌드 세팅을 바꿔야합니다. 안드로이드 스튜디오는 기본적으로 debug를 기본 빌드 타입으로 인식하며, 실행(Run) 버튼을 눌러도 항상 debug 빌드가 실행됩니다.그래서 다음과 같은 상황이 발생할 수 있습니다디버그 로그가 포함된 상태로 테스트됨난독화(ProGuard)가 적용되지 않음최적화되지 않은 상태로 앱이 동작릴리즈 빌드에서 발생하는 버그를 사전에 확인할 수 없음이런..

질문 정리 2025.04.22

baseUrl 설정 과정에서 일부 경로가 호출 URL에 반영되지 않는 문제

문제 상황이번에 서버 이전을 하면서 레거시 코드를 고치게 되었는데, 도메인 및 기타 하위 경로가 변경되었습니다. baseUrl을 변경한 후, 일부 경로가 호출 URL에 반영되지 않는 문제가 있어서, 정리해봤습니다.원래 baseUrl에는 도메인 주소까지만 작성되어있었습니다. 하지만 한 앱에서 하위 경로도 모두 동일하게 사용하는 부분이 있어서 해당 부분까지 포함해서 BaseUrl에 넣어뒀습니다.예를 들면 https://like.while.android/api/v1/ 와 같은 형식으로 입력했습니다.baseUrl을 https://like.while.android/api/v1/로 설정했는데도, 실제 API 호출 시 /api/v1/가 생략되었습니다.이유는 interface의 endpoint path 설정에서 @GE..

질문 정리 2025.04.18