IT 프로그래밍-Flutter

[Flutter] 플루터 이미지 불러오기 중 오류현상

godsangin 2022. 8. 20. 21:19
반응형

안녕하세요. 

최근 플루터를 공부하면서 직면한 오류를 공유하고자 합니다.

 

한 페이지 내에서 여러가지 이미지를 불러오는 프로젝트를 진행하던 중 아래의 두 에러를 만나게 되었습니다...

unhandled Exception: SocketException: Connection reset by peer (OS Error: Connection reset by peer…)
Unhandled Exception: Connection closed before full header was received

이미지 불러오기는 png, jpg, gif의 확장자까지 모두 취급하였습니다.

카테고리를 나누어 메인페이지에서 최초 로딩 시 약 두번의 서버콜백 과정이 있었고

(객체지향적으로 봤을때 A라는 객체의 리스트를 한번 불러오고 해당 객체의 속성 중 하나인 url을 참조하여 이미지를 불러오는 프로세스입니다.) 

각 이미지는 모두 1MB 이하이며 gif는 10MB 이하의 용량을 가지고 있었습니다.

(아직 개발 중인 관계로 썸네일 작업을 생략하였습니다....)

 

공기계인 안드로이드 단말기를 이용하여 지속적인 테스트를 수행하였고, 이미지 다운로드 기능이 존재하여 별도의 이미지 저장이 가능하였습니다.

 

소스수정-테스트를 반복하는 과정에서 main.dart는 손보지도 않았는데 갑자기 메인 뷰에서 위의 에러를 만나니 심히 당황스럽더군요..!!

 

모든 이미지가 로딩이 안되고,,,,

에러문구만 봤을때는 wifi의 문제인것 같기도 하고... 하지만 아이폰으로 테스트했을 때는 정상적으로 동작하는게 아니겠습니까??!!

 

웹서핑을 통해 찾아본 결과 대부분이 해결책으로 https 통신을 http로 변경조치 하고 해결한 것을 확인할 수 있었습니다.

하지만 저의경우 전혀 개선이 안되었고, 저의 WAS서버의 문제라고 판단. WAS 재실행 및 호스팅 중계서비스(ngrok)도 재실행하였습니다.

 

그러나 여전히 발생하는 이 오류...!! 모든걸 포기하려다가 문득 이런 생각이 나더군요

이거 단말기의 문제인거 아냐 ?

제가 실제로 사용하던 이 안드로이드 단말기는 용량이 32GB밖에 되지 않아 이 서비스를 통해 이미지를 몇개 다운받고 로딩페이지에서 nMB의 이미지를 로딩하니 단말기 용량을 초과한 것이 아닌가 하는 가설을 세웠습니다.

 

이후 단말기의 불필요한 파일을 몇개 삭제한 뒤 재실행한 결과..!! 멀쩡하게 잘 동작하는 것을 확인할 수 있었습니다 !!!!!

(진작에 확인할껄 !!)

 

여러분도 이러한 오류를 겪게되신 와중에 우연한 기회로 이 글을 보고 계시다면 https -> http적용 뿐만 아니라 단말기의 용량이 내가 요청할 api의 반환용량과 비교했을 때 적절히 충분한지 여부도 고려해보시기를 권장드립니다.(저의 경우 단말기 내에서 조회했을 때 30.xx/32GB 정도의 상황이었습니다.)

 

그럼 이상. 좋은하루 되십시오 !! ^^7