헬스체크는 200을 반환했다, 그런데 내 서버는 없었다
uvicorn을 네이티브로 띄웠다고 생각했는데 헬스체크가 200을 반환한다. 서버가 잘 떴다고 믿고 계속 개발했다. 알고 보니 OrbStack의 Docker 컨테이너가 같은 포트를 점유하고 있었고, 내가 수정한 코드는 실행 중이 아니었다.
uvicorn을 네이티브로 띄웠다고 생각했는데 헬스체크가 200을 반환한다. 서버가 잘 떴다고 믿고 계속 개발했다. 알고 보니 OrbStack의 Docker 컨테이너가 같은 포트를 점유하고 있었고, 내가 수정한 코드는 실행 중이 아니었다.
로컬에서는 멀쩡히 돌아가는 alembic upgrade head가 GitHub Actions CI에서만 SIGSEGV로 죽는다. 12번의 시도 끝에 greenlet C 확장과 Python 3.12 계열 런타임 조합을 의심했고, subprocess 호출을 in-process Alembic API로 바꿔 우회했다.
morning_batch가 정상 완료됐는데 leader_groups는 항상 0개였다. KIS paper API rate limit이 비동기 일괄 요청 28개 중 22개를 조용히 거부하고 있었다. 에러는 있었다. 배치는 멈추지 않았다. 결과만 빈 채로 아침을 맞이했다.