본문 바로가기
50 year old flutter developer challenge

[50살에 플러터 개발 도전기] Hive 패키지 문제 해결 여정

by Maccrey Coding 2025. 1. 17.
728x90
반응형

안녕하세요, 플러터 개발자를 꿈꾸는 50세의 개발자입니다.

오늘은 허밍버드 팀과 함께 학습관리 앱을 개발하면서 겪었던 특별한 경험을 공유하려 합니다.

Hive 패키지에서 발생한 문제

우리 팀은 학습관리 앱 개발 도중 Hive 패키지를 사용하면서 예상치 못한 문제가 발생했습니다.

앱을 종료하고 다시 실행하면 Hive에 저장했던 데이터가 null로 변하는 이상한 증상이 나타난 것입니다.

이 문제는 처음에 쉽게 해결될 것처럼 보였지만, 실제로는 복잡한 원인이 숨겨져 있었습니다.

문제 원인 파악

문제를 해결하기 위해 팀원들과 함께 이틀간 다양한 시도를 했습니다.

여러 로그를 분석하고, 공식 문서를 다시 검토하며 원인을 찾으려 노력했죠.

결국, 문제의 핵심은 model이 자동으로 Dynamic으로 변경되면서 캐스팅이 이루어지지 않았던 점이라는 것을 발견했습니다.

 

Hive의 데이터 타입 관리에서 발생한 이 이슈는 우리가 기존에 잘못 설정한 모델 정의와 관련이 있었습니다.

특정 시점에서 데이터가 제대로 매핑되지 않아 null 값으로 처리되는 상황이 반복된 것입니다.

문제 해결 과정

  1. 모델 정의 재점검: 먼저, Hive에 저장되는 모델의 구조와 타입을 다시 한 번 꼼꼼히 점검했습니다.
  2. 타입 강제 지정: Dynamic으로 변경되는 문제를 해결하기 위해 명시적으로 타입을 지정하고, 이를 코드 전반에 일관되게 적용했습니다.
  3. 캐스팅 로직 수정: 데이터를 읽고 쓰는 과정에서 발생하는 캐스팅 오류를 방지하기 위해 로직을 수정했습니다.
  4. 테스트 진행: 모든 수정이 끝난 후, 다양한 시나리오에서 앱을 실행하며 데이터가 정상적으로 유지되는지 확인했습니다.

교훈과 느낀 점

이번 경험을 통해 Hive 패키지의 내부 동작 원리에 대해 더 깊이 이해할 수 있었습니다.

특히, 데이터 타입과 모델 관리의 중요성을 다시 한 번 깨닫게 되었죠. 또한, 문제 해결 과정에서 팀원들과 협력하는 것이 얼마나 중요한지도 느꼈습니다.

앞으로도 허밍버드 팀과 함께 다양한 문제를 해결하며 더 나은 앱을 만들어 나가고 싶습니다.

이번 경험은 저희 팀의 역량을 한 단계 끌어올리는 계기가 되었고, 개인적으로도 많은 성장을 이룰 수 있던 시간이었다고 생각합니다.

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

728x90
반응형