StudyDad Loop 제품을 만들며 배운 운영과 설계를 기록합니다.

FamBlend를 중심으로 실제 구현, 운영 메모, GitHub 포트폴리오를 연결해 쌓아가는 StudyDad의 작업 기록입니다.

작업상태관리 2

Polling UX는 나쁜 선택일까

데이터와 리포트 설계 시리즈 5/8비동기 리포트 생성에서는 사용자가 작업 상태를 알아야 한다.가장 단순한 방법은 polling이다.프론트엔드가 일정 간격으로 상태 API를 호출한다.GET /api/jobs/{jobId}완료되면 다운로드 URL을 보여준다.Polling은 오래된 방식처럼 보일 수 있다. WebSocket이나 Server-Sent Events가 더 세련되어 보일 수도 있다.하지만 내부 운영 도구에서는 polling이 충분히 좋은 선택일 때가 많다.polling이란 무엇인가Polling은 클라이언트가 주기적으로 서버에 상태를 묻는 방식이다.예를 들어 2초마다 job 상태를 확인한다.0초: IN_PROGRESS2초: IN_PROGRESS4초: IN_PROGRESS6초: COMPLETE구현은 단순..

Job table로 리포트 작업 상태 관리하기

데이터와 리포트 설계 시리즈 3/8오래 걸리는 리포트 생성을 비동기로 처리하려면 작업 상태를 저장할 곳이 필요하다.메모리에 상태를 들고 있으면 안 된다.서버가 재시작될 수 있고, Lambda는 실행 환경이 유지된다는 보장이 없으며, 운영자는 나중에 작업 이력을 확인해야 한다.그래서 job table이 필요하다.job table의 역할job table은 리포트 생성 작업의 기록장이다.사용자가 리포트를 요청하면 먼저 job row를 만든다.worker는 이 job을 처리하면서 상태를 갱신한다.프론트엔드는 job id로 상태를 조회한다.job table이 있으면 작업은 추적 가능한 단위가 된다.기본 상태 모델처음에는 단순한 상태만으로도 충분하다.PENDINGIN_PROGRESSCOMPLETEFAILED각 상태..