Skip to content

2023 06 07

ohdair edited this page Jun 8, 2023 · 4 revisions

혼자하는 회의

  1. Console에 나오는 문구 확인
  2. 앱 처음 동작할 때 Timeout 에러 해결
  3. 데이터 구조 변경에 대한 고민

Console 문구 확인

2023-06-07 15:36:01.126076+0900 Parking[8237:470547] Metal API Validation Enabled
2023-06-07 15:36:01.579376+0900 Parking[8237:470547] fopen failed for data file: errno = 2 (No such file or directory)
2023-06-07 15:36:01.579442+0900 Parking[8237:470547] Errors found! Invalidating cache...
2023-06-07 15:36:01.651943+0900 Parking[8237:470547] fopen failed for data file: errno = 2 (No such file or directory)
2023-06-07 15:36:01.651997+0900 Parking[8237:470547] Errors found! Invalidating cache...
  1. Metal API Validation Enabled

오류가 아니라 메시지이다. 대상이 Metal 프레임워크(또는 Metal API "SpriteKit" 를 사용하는 다른 프레임워크 )에 연결되면 Xcode는 자동으로 GPU 프레임 캡처 및 Metal API 유효성 검사를 활성화합니다. Xcode가 Metal Frame Capture와 함께 제공하는 도구 호스트를 사용하고 Metal API 유효성 검사로 올바른 API 사용을 테스트하려면 앱의 체계에서 이러한 옵션을 활성화하세요. 앱의 최대 성능 수준을 테스트하려는 경우에만 이 옵션을 비활성화합니다. 참고 링크

🛡️ command + shift + ,에서 Metal API Validation을 체크 해제 하면 해결

  1. fopen failed for data file: errno = 2 (No such file or directory)

    Errors found! Invalidating cache...

원인은 확실하지 않지만 어떤 상황에서는 Metal이 파일이 존재하기 전에 Caches 디렉토리에서 파일을 읽으려고 시도하는 것처럼 보입니다. 이 경우 앱을 처음 실행할 때만 오류가 표시됩니다. 참고 링크

The request timed out

발생하는 이유는 Naver Geocoding을 연쇄적으로 통신을 시도하면서 문제가 되는 것으로 순차적으로 진행하도록 바꾸거나 시간 지연을 강제로 하여 호출하도록 하는 방법이 있을 거 같다

데이터 구조 변경

기존에는 앱 내에 공공데이터(Json) 파일이 저장되어 있는 형태이며, 아래와 같은 이유로 구조 변경을 시도

  1. 생각보다 잦은 공공데이터 업데이트(3주 간 2회 이상의 업데이트)

  2. Timeout의 에러는 비동기로 연쇄적(약 240회) API 통신의 문제

    2-1. 단순하게 혼자만 사용하는 앱이 아니라고 가정

    2-2. 사용자가 데이터가 업데이트 할 때마다 API 호출(약 240회)를 하게 되면 금전적, 시간적 비용이 크다고 판단

  3. 앱이 아닌 외부에서 Firebase의 데이터를 업데이트할 수 있도록 만들어야 한다고 생각(하지만 방법을 잘 모름...)

  4. 사용자(제작자 포함) 중 누군가 공공데이터 업데이트를 확인하는 구조로 Firebase의 데이터를 항시 최신이 되도록 만들도록 변경

240회인 줄 알았으나 비동기로 호출을 하면서 240회 정도 하다가 멈춘 거였다...! 제대로 확인을 하니 2768회

스크린샷 2023-06-08 오전 11 15 03 스크린샷 2023-06-08 오전 11 17 27
Clone this wiki locally