상세화면 성능 개선 - Team-Nogari/Huhoe GitHub Wiki

상세화면 인풋(투자금) 입력 시 딜레이 발생

DetailViewModel에서 데이터를 가공 중 연산 시간이 오래 걸려 딜레이가 발생하는 문제가 있었습니다.

기존 방식

  1. candlestick Entity -> Domain 맵핑 과정 중 날짜를 TimeInterval로 변환했습니다.
  2. 날짜 변환 과정에서 DateFormatter의 인스턴스를 매번 생성해서 변환했습니다.
  3. 상세화면에서 인풋(투자금)이 입력되면 과거 날짜를 비교하는 과정에서 TimeInterval -> String -> TimeInterval로 여러번 맵핑해야하는 문제가 발생함. 과거 데이터가 많은 코인일수록 성능저하 발생

개선 방식

  1. DateFormatter의 인스턴스를 매번 생성되는 것을 방지하기 위해 싱글턴 패턴을 활용했습니다.
  2. candlestick Entity -> Domain 맵핑 과정 중 날짜를 String(2022.04.05)로 변환했습니다.
  3. 상세화면에서 인풋(투자금)이 입력되면 과거 날짜를 비교하는 과정을 개선하여 성능저하를 개선했습니다.

위와 같이 개선한 이유는 앱 실행 초반에 날짜 변환을 하기 때문에 앱 사용 중에는 사용자가 딜레이를 느끼지 못하도록 개선하는 목적이 가장 컸습니다.