🕸️ Web

문제

  • 내가 구현한 LLM API 코드가 웹 쪽과 합쳐졌을 때, 계속 동일한 결과만 반환하는 상황

문제 원인 및 파악

  • 웹과 합치기 전 로컬에서 REST Client로 수도 없이 테스트 할 때는 전혀 이상이 없었던 부분이었어서 협업 중인 동료분과 머리를 맞대고 고민해보았다.

  • 동료 개발자님 덕분에 문제 원인을 파악하는 데에는 그렇게 오래 걸리지 않았는데 원인을 알고 나서 머리를 한 대 맞은 느낌이었다.

  • 문제가 됐던 부분

    • 내가 S3 버킷에 결과를 저장할 때 사용한 디렉토리 구조는 unique_id/output/result_0.png 와 같은 형식이었다.

    • 이 때, unique_id가 동일하면 output 디렉토리 하위에 저장되는 파일은 계속 바뀌고 있었지만 입력이 달라지더라도 반환되는 주소는 매번 똑같은 상태가 된다.

    • 웹 입장에서는 "주소가 항상 똑같네? 그럼 캐시된 걸 사용해야겠다" 하고 계속 캐시된 데이터를 반환하고 있던 거였다.

      • 로컬에서 테스트할 때는 웹과 관련된 문제가 하나도 없다 보니 이런 상황을 생각조차 못한 것이었다.

해결

  • 다행히 S3 버킷 내 디렉토리 구조만 살짝 바꿔주면 해결이 가능한 부분이어서 실행 날짜를 디렉토리 구조에 추가하고 파일명에 실행 시간도 반영해 데이터 각각의 고유성을 확보할 수 있게 했다.

느낀 점

  • 웹의 데이터 캐싱 개념이 어느 정도의 지식인지는 모르지만 AI 기반 서비스를 만드는 회사의 AI 엔지니어라고 해서 AI'만' 알면 되는 것은 아니다.

  • 앞으로 AI 공부를 할 때는 규모가 작더라도 웹 서비스 형태로 올려보는 단계까지 적용해보면 배울 게 더 많겠다는 생각이 들었다.