[사례글4] Mock 데이터 대신 실제 데이터 연동하기

소개

기존의 정적인 목업 데이터(Mock Data) 기반 시스템을 탈피하여, 실시간 web API v2를 직접 연동하는 작업을 진행함. 임상 시험 데이터는 실시간으로 상태(Status)가 변하기 때문에 정확한 분석을 위해서는 라이브 데이터가 필수적임.

목표: 방대한 텍스트 위주의 임상 프로토콜을 유저가 한눈에 파악할 수 있도록 Gantt Chart와 Matrix(선정/제외 기준 매트릭스)로 시각화기

진행 방법

Gemini: 문제점 및 해결 방법 제안

Antigravity: 구현

문제점 1: Antigravity에서 본인이 해결할 수 없는 문제가 발생하면 계속해서 동일한 잘못을 반복하고 version만 올라가는 작업물을 내놓는 것을 알게됨. 무료 버전을 사용하고 있는데 토큰 소모가 엄청난 것도 확인하게 됨.

asset detail view에 있는 값들을 어떻게 정리하고 있는지 나에게 방법을 설명해줄래? 

해결방법 1: Gemini를 Pro버전으로 사용하고 있기 때문에, Antigtravity에서 생긴 문제들에 대해서 Gemini에게 물어보고 해결방법을 제안 받음. 적절하고 정확한 프롬프트를 작성해달라고 요청하여 Antigravity에 활용함.

[Web] API v2 데이터를 처리하는 로직을 수정해줘. '데이터가 없다'며 Mock Data로 fallback 하는 기능을 끄고, 아래의 구체적인 매핑 로직을 적용해서 실제 데이터를 파싱해.
[...]
4. 상세 페이지(StudyDetail) 조회 시 fetch가 실패하는 경우가 아니라면, 필드 값이 비어있더라도 절대로 Mock Data를 덮어씌우지 마. 빈 값은 빈 값대로 처리하거나 원문 텍스트를 보여줘.

문제점2: 실제 데이터들의 리스트들을 크롤링하는 것까지는 가능하지만, 그 이후에 그 데이터를 AI를 활용하는 기능은 작동하지 않고 mock 데이터만을 유저에게 보여줌.

해결방법2. 크롤링하고 싶은 Web사이트에서 API 관련 정보가 있는 것을 확인함. 그 정보를 다시 끌어와서 Gemini 에게 물어봄. 내가 겪고 있는 문제를 설명하고 새로 알게 된 정보를 적용해서 적절하고 정확한 프롬프트를 작성해달라고 요청하여 Antigravity에 활용함.

검색창(Input)에 단어를 입력하고 엔터를 치면, https://[Web]={입력단어} 주소로 요청을 보내서 그 결과를 리스트에 뿌려줘.
[Web]API v2 실데이터 연동 작업을 시작하자.
[...]
값이 없는 필드는 'N/A'나 빈카드로 두되, 임의로 가짜 값을 채우지 마.

문제점3. 데이터를 끌어오는 것까지는 가능하지만 적절한 파싱이 이루어지고 있지 않음을 확인함. 정리해놓은 데이터가 그냥 복붙 정도밖에 안돼서 유저가 굳이 웹사이트를 들어올 이유가 없을 것으로 예상함.

해결방법3. Gemini에게 파싱할 수 있는 키워드들에 대해서 정리해서 나열해달라고 하고, 웹사이트에서 이 기능이 왜 필요한지에 대해서 더 자세하게 설명함. (예를 들어, '너가 유저라면 이 웹사이트에 들어올 것 같아? 그냥 내가 직접 들어가서 찾고 말지, 이 웹사이트를 이용해야만 하는 이유가 느껴지도록 Antigravity에게 설명해줘.')

API 연동은 잘 됐는데, 데이터 파싱 로직이 너무 경직되어 있어. '100 mg' 처럼 딱 떨어지는 포맷이 아니거나, 'ver 30 minutes on day 9' 처럼 복잡한 문장은 읽지 못하고 있어.

사용자가 모든 케이스를 일일이 지정할 수 없으니, 아래의 '유연한(Robust) 파싱 전략'로 코드를 전면 업그레이드해줘.

결과와 배운 점

  • 두 개 이상의 프로그램을 이용하면서 현재 가진 문제를 다각도로 해결할 수 있음을 확인함.

  • Mock 데이터만 나와도 뿌듯했던 첫 주와 달리, 실질적으로 운용될 수 있는 웹사이트를 만들고 싶은 욕구가 더 커졌음.

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만