- KLAS+의 비정상 종료 및 ANR(Application Not Responding) 기록을 살펴보니 미제출 과제 목록을 가져오는
parseHomework
함수에서 엄청난 crash가 발생하고 있었다.
문제를 한참 동안 분석한 끝에 원인을 찾아냈다! KLAS+에서는 미제출/미수강 항목을 한 번에 보여주기 위해 각 강의의 ‘온라인 강의’, ‘과제’, ‘팀프로젝트’ 목록을 조회한다. 이 때 ‘온라인 강의’와 ‘과제’는 학교 측 api에서 뭐 이렇게 만들어놨지…
2024-09-27 23:59:59
과 같은 형식의 만료일을 포함해 응답을 보내준다. 그런데 ‘팀프로젝트’의 경우 2024-10-18T14:59:59.000+0000
와 같이 다른 형식으로 응답이 오는 것이 아니겠는가? val expireDateString = homework.getString("expiredate") val endDate = try { SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse(expireDateString) } catch (e: Exception) { SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(expireDateString) }
그래서 우선
yyyy-MM-dd'T'HH:mm:ss.SSSZ
형식으로 parsing을 시도하고 예외가 발생하는 경우 yyyy-MM-dd HH:mm:ss
형식으로 날짜를 parsing 하도록 수정했다.- 부드러운 둥근 모서리를 위해 — yuntae.in 페이지에 스쿼클(Squircle)을 적용했다.
댓글