현재 공공 데이터 open API 를 활용해서 앱을 만들고 있습니다.
최근에 글이 뜸했던 이유는 앱을 만드는 과정에서 api key와 관련해 막혀있는 부분이 있어 이를 해결하느라 바빠서인데...
혹여나 이 글을 읽을 다른 누군가에게, 그리고 같은 문제를 마주할 미래의 저를 위해 오늘은 해당 내용을 기록해보겠습니다.
사진은 오늘도 내용과 무관한 지브리 포스터
아직 배포 단계가 아니기도 했고, 공공 데이터 API로 앱을 만드는게 처음이라 저는 아무 생각 없이 코드에 하드코딩해서 api key를 심어서 개발을 하고 있었습니다.
하지만 문득 다음과 같은 질문들이 머리 속을 스쳤습니다.
Q1. api key를 하드코딩해서 사용하면 보안상의 문제가 있지 않을까?
→ YES
Q2. api key를 사용할 때 호출 횟수에 제한이 있으면 이용제한이 생기는 사용자가 생기지 않을까?
→ YES
Q1의 보안상의 문제야 코드를 난독화하거나, API 키 저장소를 사용하거나, 백엔드 서버를 경유하는 방식으로 해결은 할 수 있을 것 같지만(물론 지금의 저는 못하고, 비용 문제도 있음),
Q2의 문제가 생각보다 크리티컬 했습니다.
공공 데이터 api의 경우 운영 계정으로 전환한다고 해도 일일 10만번의 호출 횟수 제한이 있기 때문에 누군가 많은 양의 데이터를 자주 조회한다면(그럴 일이 있으면 좋겠다) 분명히 이용 제한이 생기는 사용자도 있겠죠...
그래서 나름 방식을 좀 고민을 해보고 현재까지 내린 결론은
1)python으로 필요한 데이터만 선별해서 json 파일로 저장
2)flutter에서 asset으로 해당 json 파일들 읽고
3)sqlite나 hive같은 flutter local db를 이용해서 기기 로컬 저장소에 저장해서 결과 보여주기
입니다.
이게 가능할 거라고 생각한 이유는, 활용하고자 하는 데이터가 과거 데이터의 update가 없고, 한달에 한번 직전 달의 데이터가 적재되는 구조이기 떄문입니다.
이론상으로는 가능할 것 같은데, 실제로 구현할때는 데이터 크기 문제로 뭔가 문제가 생길 수도 있을 것 같습니다.
하지만 그건 그때 가서 또 다른 고민을 해보는 걸로....
비슷한 경험 있으신 분들 따뜻한 조언 주시면 감사하겠습니다.
'Flutter' 카테고리의 다른 글
[Flutter] Bottom Navigation Bar 작동 방식 (0) | 2025.01.29 |
---|---|
[Flutter] MaterialApp을 statefulwidget에서 쓰면 좋은 경우 (0) | 2025.01.29 |
[Flutter] Shared preferences를 사용해서 좋아요 버튼 구현하기 (0) | 2025.01.24 |
[Flutter] Firebase Firestore에서 데이터 가져오는 두 가지 방법 (0) | 2025.01.24 |
[Flutter] Flutter로 앱 만들때 알아놓으면 좋은 객체지향언어 키워드 (0) | 2025.01.24 |