ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [올포원] # 개요
    프로젝트/올포원 2023. 6. 9. 13:19
    728x90
    반응형

    내 인생의 첫 앱스토어 배포를 위한 프로젝트를 완료하였다. 

    이번 프로젝트는 "포켓몬도감"이다. 앱스토어에 한국어로 된 포켓몬 도감이 없길래 스스로 제작해보기로 하였다. 

     

    포켓몬 도감에 사용되는 기술들은 SwiftUI,Realm,Kingfisher 등이있다.

    기본적으로 포켓몬이라고 하는것은 Pokemon company에 저작권이 있기 때문에 이걸 사용하는게 문제가 되지 않을까 고민을 많이 했는데,  PokemonAPI라는 것을 발견하고 사용정책에 대해 알아보았다.

     

    그 결과로

    어차피 난 비영리 목적으로 교육용 앱을 제작하는 것이기 때문에 문제가 딱히 되지 않을 것이라 생각했다.

     

    PokemonAPI는 포켓몬의 이름,타입,이미지 부터 시작해서 키,몸무게,분류 등 상세정보까지 한국어로 제공하고 있다. 거기서 필요한 데이터로 추출하여 가공해서 사용하는것을 추천하고 있다. 물론 받고 싶은 데이터만 뿌려주지는 않는다.(대부분 API를 사용하면 그럴테지만..)

    여기서는 별도에 APIkey를 사용하지 않아도 사용이 가능하다. 하지만 필요한정보의 100%한글화가 되있지는 않았다. 거기에 별도로 영어나 일어로 되어있는 데이터로 한글로 로컬에서 수정하는 작업을 할까 고민했는데, 그런건 추천하지 않는다해서 그냥 어쩔수 없이 한글화가 안되있는 데이터는 영어로 보여주게 되었다.

     

    포켓몬 도감이기에 포켓몬의 여러정보를 리스트로 보여줄때 항상 요청을 하는건 옳지 않다 생각해 앱 첫 시작때 포켓몬 정보를 Realm DB에 한번에 저장하고 로컬에 있는 데이터로 보여주기로 했다. 그리고 아주 최소의 기능만을 제공하고 있기에 데이터들을 더 정교하게 저장하고 사용하기 위한 업데이트도 진행해볼 예정이다. 아직은 포켓몬 상세정보를 하기위해서는 포켓몬 정보를 요청해야하기 때문이다.

     

    한 정보에도 여러url로 접근을 해야하기 때문에 동기로 처리했다간 첫 다운로드때도 상세정보를 볼때도 한세월 걸릴 것이다. 모든 인터넷정보는 비동기로 처리했고 async,await를 사용했다. combine으로 진행을 하기에는 불러오는 데이터의 종류가 그닥 많지 않을 뿐더러 괜히 코드수만 길어 질것 같아서 가장 간단하게 처리를 할수 있는 방법을 선택했다. 나중에 업데이트를 하면서 속도문제와 저장관련된 문제를 효율적으로 처리해볼 예정이다. 

     

    이번 프로젝트로 RelamDB를 처음 사용해보는데 사실 뭐가 뭔지 잘 모르는 상태로 시작했다. 컨테이너를 제작하고 선언한 변수들을 DB에 차곡차곡 정리하는 것 뿐이다. 물론 나도 그 기능만 사용해보았다. 다른 기능은 별로 필요 없을거 같아서.. 근데 내가 아직 아는 지식이 없어서 그렇게 느꼈을 수도 있다. 저번에 마이그레이션 잇슈가 있었는데 그것도 제대로 확인하지 않은채 저장소를 삭제하여 해결했다. 당장은 사용자가 db를 삭제할 이유가 없기 때문에 테스트할때는 그냥 db자체를 날리고 새로 생성하는식으로 테스트해봤는데 내가 생각해도 매우 찜찜한 대처였다. 아직 realm에 대해서 더 알아보고 로컬 데이터베이스를 다루는 방법에 대해서 익힐 필요가 있다. 

    이렇게 산전수전 목표대로는 완성이 되었다. 그래서 애플 앱개발자 계정을 바로 구매해버리고 다른앱들 다 제치고 가장 스스로에게 만족을 준 이 앱을 앱스토어에 심사를 맡겼다. 처음부터 통과될거란 기대는 1도 안하긴 하지만 트러블에 대한 리뷰는 빨리 왔으면 좋겠다.. 나는 성격이 급해서 기다리는게 너무 힘들다. 리젝이 뜨면 리젝사유와 함께 돌아오겠다.

Designed by Tistory.