본문 바로가기
50 year old flutter developer challenge

[50살에 플러터 개발 도전기] Coin Alarm 앱에 뉴스 크롤링 기능을 넣기까지의 여정

by Maccrey Coding 2025. 6. 10.
반응형

일기: 50세, 개발의 두려움을 넘어서

나는 50세의 Flutter 개발자 지망생이다.
Coin Alarm이라는 이름의 코인 경보 앱을 개발하던 중, 사용자들에게 코인에 관련된 실시간 뉴스도 함께 제공하고 싶다는 생각이 들었다.

하지만 여기서 문제가 하나 생겼다.
나는 Flutter는 잘 알지만, 웹 크롤링은 해본 적이 없는 완전 초보자였기 때문이다.
게다가, 단순히 뉴스를 보여주는 것이 아니라, 뉴스 데이터를 크롤링하고, 이를 수파베이스(Supabase)에 저장한 후 앱에서 보여줘야 했다.

🐍 파이썬? 처음이지만 해보자!

일단, 웹 크롤링은 파이썬(Python)으로 하는 것이 보통이라는 말을 들었다.
두려웠지만, 내가 만든 앱을 직접 성장시키고 싶었다.
그래서 ChatGPT에게 도움을 청해가며 파이썬 코드를 하나하나 작성해보기로 했다.

기초부터 배워가며 코드를 만들었고, 결국 내 생애 첫 크롤링 서버를 완성했다!

😱 서버 폭주?! 그리고 버그의 발견

기쁜 마음으로 서버를 실행시켜 놓고 한 시간 동안 샤워를 하고 왔다.
그런데 깜짝 놀랐다.

"헉... 서버 사용량이 2,500회를 넘었어?"

 

알고 보니 크롤링한 뉴스를 계속 Supabase에 저장하면서 무한 루프에 빠져 있었던 것이다.
서버는 멈추지 않고 계속해서 중복된 데이터를 저장하고 있었고, API 호출도 폭주하고 있었다.

🧠 개선 아이디어: JSON 비교 시스템 도입

고민 끝에 이런 방식을 적용해보기로 했다.

  • 크롤링한 뉴스 데이터를 JSON 파일로 저장한다.
  • 이전에 저장된 JSON 파일과 새로운 데이터를 비교한다.
  • 내용이 달라진 경우에만 Supabase에 업로드한다.

이 아이디어를 적용하자 놀라울 정도로 서버가 안정적으로 작동했고,
뉴스 업데이트 속도도 빨라졌다.

📌 배운 점 & 앞으로의 계획

이번 경험을 통해 나는 몇 가지 중요한 교훈을 얻었다.

  • 두려움을 넘으면 새로운 세계가 열린다.
  • ChatGPT는 훌륭한 파트너다.
  • 무조건 저장하는 것보다, 변화를 감지하고 효율적으로 처리하는 방식이 중요하다.

앞으로는 여러 코인 뉴스 사이트를 동시에 크롤링하는 기능을 추가해볼 생각이다.
또, Flutter 앱에서 뉴스 필터링이나 검색 기능도 넣고 싶다.

째깍째깍...흘러가는 시간 붙잡고 싶다면? 

Study Duck 학습 타이머 즉시 ON! 랭킹 경쟁 참여하고 학습 습관 만들 기회, 놓치지 마세요!

www.studyduck.net

Study Duck팟빵
https://www.podbbang.com/channels/1792491

반응형