다재다능 개발자 성장기 🚀
Flutter 클린 아키텍처로 영화 앱 만들기 회고(feat. 트러블 슈팅) 본문
프로젝트 미리보기
개인적인 감상 및 회고
이번 과제는 클린 아키텍처 구조로 영화 정보를 themoviedb라는 사이트에서 제공하는 오픈 api에서 불러와서 영화 정보 앱을 만들어보는 과제였다. 저번 과제에서 이제 좀 MVVM 패턴에 익숙해지나 했는데, 그 다음 바로 더 세부적으로 나뉘는 클린 아키텍처 구조로 만들다 보니 어려웠다.. 😣 그래도 개인 프로젝트를 진행하면서 약간 감을 잡게 되었다. 이번 주부터 시작하는 팀프로젝트를 진행하게 되면 좀 더 적응이 될 것 같다. 화이팅 !! ><
깃허브 README
https://github.com/hyewonShin/flutter-movie-app
트러블 슈팅
문제
API를 통해 데이터를 가져오는 과정에서, 일부 변수 값이 Thunder Client에서는 정상적으로 확인되지만, 코드 실행 중 특정 단계에서 null로 변경되는 문제 발생.
원인 추론
- API 호출 결과를 출력해보니 모든 값들이 정상적으로 들어있었음.
- API에서 반환된 JSON 데이터의 key 값은 poster_path 형식인데, fromJson 메서드에서 매핑하려는 key 값은 posterPath 형식으로 되어 있었음. 이 불일치로 인해, 특정 key에 매핑된 값들이 null로 처리된 것을 확인.
- DTO에서 Entity로 변환하는 과정에서도 동일한 문제:
- DTO 데이터를 Entity 형식으로 변환하는 과정에서, toJson 메서드로 DTO 데이터를 Map으로 변환 후
fromDTO 생성자를 통해 Entity로 변환. - 그런데, toJson 메서드가 반환하는 key 값의 형식이, API에서 제공하는 데이터의 key 형식과 다르다는 것을 확인. 이로 인해 매핑 불일치로 데이터가 다시 null로 변경되는 것을 확인.
- DTO 데이터를 Entity 형식으로 변환하는 과정에서, toJson 메서드로 DTO 데이터를 Map으로 변환 후
해결방안
fromJson 메서드 수정:
- fromJson 메서드의 value 형식을 API에서 제공하는 key 형식과 동일하게 수정.
toJson 메서드 수정:
- toJson 메서드의 key 형식을 API에서 제공하는 key 형식과 동일하게 수정.
+ 2025.01.03 다른 해결방안 ?
DTO 타입의 데이터를 Entity 타입으로 매핑해줄 때, fromJson 메서드가 아닌 Entity 클래스의 초기값으로 매핑해주면 따로 키 값 형식을 맞추지 않아도 된 다는 것을 알았다. 아직 클린아키텍처에 미숙하여 생긴 트러블 슈팅이었다(머쓱;). 앞으로는 실수하지 말자~!
'Flutter' 카테고리의 다른 글
구글 개발자 계정 인증 방법(주민등록 등본) (0) | 2025.01.10 |
---|---|
스로틀링과 디바운싱 (0) | 2025.01.03 |
Flutter의 클린 아키텍쳐 (0) | 2024.12.30 |
Flutter 애니메이션 (0) | 2024.12.27 |
[팀 프로젝트] 우리동네 소모임 채팅 어플 '동네챗' 회고(feat. 트러블 슈팅) (1) | 2024.12.19 |