서버리스로 배포해두고 아침에 처음 API를 호출했더니 5초 넘게 걸렸다. 근데 바로 다시 호출하니 0.2초 만에 끝났다. 코드를 잘못 짠 걸까?
한 줄 정의
콜드 스타트는 한동안 안 쓰인 서버리스 함수가 요청을 받고 나서야 '깨어나며' 준비하는 데 걸리는 지연 시간이다.
왜 필요한가 (정확히는, 왜 생기는가)
서버리스 환경은 요청이 없으면 컴퓨터 자원을 아예 꺼버린다. 그래야 안 쓸 때 돈이 안 나가니까. 그러다 요청이 오면 그제서야 컨테이너를 새로 띄우고, 코드를 불러오고, 필요한 걸 초기화한다. 이 과정이 콜드 스타트다. 한동안 계속 요청이 들어오면 컨테이너가 켜진 채로 유지돼서 다음 요청부턴 이 과정 없이 빠르게 응답한다(웜 스타트).
실전에서 이렇게
바이브코딩으로 만든 앱을 Vercel이나 Lambda 같은 곳에 배포해두고 새벽에 테스트하면 첫 호출이 이상하게 느리거나 타임아웃 에러가 난다. 버그인 줄 알고 코드를 한참 뒤지다가, 알고 보니 그냥 오랜만에 깨어나느라 느린 거였다. 재현하려고 다시 호출하면 멀쩡해서 더 헷갈린다. 이럴 땐 같은 요청을 두세 번 연달아 보내보고, 뒤로 갈수록 빨라지면 콜드 스타트가 원인일 확률이 높다.
비유
가게 문 열자마자 온 첫 손님은 사장님이 아직 불도 안 켜고 커피머신도 안 데워진 상태라 오래 기다린다. 그 뒤로 오는 손님들은 이미 다 켜져 있어서 바로바로 나온다.
#배포#에러해결#바이브코딩
댓글 0
첫 댓글을 남겨보세요!