🕸️ Web
문제
- 내가 구현한 LLM API 코드가 웹 쪽과 합쳐졌을 때, 계속 동일한 결과만 반환하는 상황
문제 원인 및 파악
-
웹과 합치기 전 로컬에서 REST Client로 수도 없이 테스트 할 때는 전혀 이상이 없었던 부분이었어서 협업 중인 동료분과 머리를 맞대고 고민해보았다.
-
동료 개발자님 덕분에 문제 원인을 파악하는 데에는 그렇게 오래 걸리지 않았는데 원인을 알고 나서 머리를 한 대 맞은 느낌이었다.
-
문제가 됐던 부분
-
내가 S3 버킷에 결과를 저장할 때 사용한 디렉토리 구조는
unique_id/output/result_0.png와 같은 형식이었다. -
이 때,
unique_id가 동일하면output디렉토리 하위에 저장되는 파일은 계속 바뀌고 있었지만 입력이 달라지더라도 반환되는 주소는 매번 똑같은 상태가 된다. -
웹 입장에서는 "주소가 항상 똑같네? 그럼 캐시된 걸 사용해야겠다" 하고 계속 캐시된 데이터를 반환하고 있던 거였다.
- 로컬에서 테스트할 때는 웹과 관련된 문제가 하나도 없다 보니 이런 상황을 생각조차 못한 것이었다.
-
해결
- 다행히 S3 버킷 내 디렉토리 구조만 살짝 바꿔주면 해결이 가능한 부분이어서 실행 날짜를 디렉토리 구조에 추가하고 파일명에 실행 시간도 반영해 데이터 각각의 고유성을 확보할 수 있게 했다.
느낀 점
-
웹의 데이터 캐싱 개념이 어느 정도의 지식인지는 모르지만 AI 기반 서비스를 만드는 회사의 AI 엔지니어라고 해서 AI'만' 알면 되는 것은 아니다.
-
앞으로 AI 공부를 할 때는 규모가 작더라도 웹 서비스 형태로 올려보는 단계까지 적용해보면 배울 게 더 많겠다는 생각이 들었다.