트러블슈팅
-
[Android] 코틀린 엘비스 연산자(?:)의 잘못된 사용법안드로이드/트러블 슈팅 2024. 1. 8. 23:13
프로젝트를 하던 중 다음과 같은 코드를 작성했다 find() 메서드를 활용해 리스트에서 원하는 값을 가져오고 null 일경우 뒤에 작성 된 람다식이 실행되기를 바라고 작성한 코드였다. 하지만 예상과 달리 null 일 경우 엘비스 연산자 다음에 오는 코드는 실행되지 않았다. 그 이유는 다음과 같았다. 코틀린 공식 문서에서 엘비스 연산자에 대해 설명된 글이다. 위의 설명에서 핵심만 말하자면 엘비스 연산자는 "반환"값이 있을 때 사용하는 연산자이다. 그로인해 내가 작성했던 코드에서는 뒤에 따르는 ?: {binding.tvAmPm.text = binding ... 코드는 중괄호 안의 코드를 실행시키는 것이 아니라 해당 중괄호인 람다식을 "반환"한 것이었다. 그래서 위와 같은 형식을 사용하면서 뒤에 따르는 람다식..
-
getBaseDate 버그 fix프로젝트 기록/내날씨(OwnWeather) 2023. 7. 27. 00:04
*본 글을 과거에 작성한 글을 저장하기 위해 작성됐습니다(23.05.23) 문제 새벽 1시 쯤 테스트겸 앱을 실행시켜보고 있는데 아예 단기 예보가 조회되지 않는 상황이 발생했다. 아직 네트워킹 타임아웃에 대한 처리를 해주지않아서 앱이 종료되면 타임아웃이고 앱이 종료되지 않으면 그 외 문제이다.(이유는 모르겠지만 기상청 api를 안드로이드에서 호출하면 타임아웃이 생각보다 꽤 자주 발생한다. 웹에서 주소로 직접 접속하면 안그런데ㅠ) 그래서 unitTest에서 확인해봤는데 바로 문제를 찾아냈다. 현재 날짜와 시간이 20230523 0131 이라면 20230522 2300 이 되어야 하는데 20230523 2300이 됐다. baseTime이 하루전이 되지 않은게 문제 였는데 그 이유는 다음과 같았다. 이유 빨간..