> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 백그라운드 작업 설정

Trigger.dev를 통한 내구성 작업 — 로컬 스케줄러 틱과 함께.

## 설치 및 설정

어떤 단계를 시작하기 전에 [시작하기 전에](https://supastack.dev/ko/docs/web/before-you-start.md) 및 [터미널 기본 사항](https://supastack.dev/ko/docs/web/terminal-basics.md)을 읽어보세요. 이 지침에서는 VS Code에서 전체 supastack 단일 저장소를 열었다고 가정합니다. 해당 루트 package.json은 저장소 루트를 표시합니다. pnpm 명령에서 작업 영역 패키지는 앱 또는 공유 코드 폴더입니다. 제품에서 작업공간은 팀의 데이터 컨테이너이자 보안 경계입니다. corepack pnpm --filter ... 명령이 해당 루트에서 실행되는 동안 monorepo에서 하나의 패키지를 선택합니다. 동기화된 모바일 또는 데스크톱 폴더만 열었다면 웹 백엔드, Docker 설정 또는 루트 스크립트가 포함되지 않습니다. 이 모노 저장소 또는 연결 가능한 호스팅 서버에서 백엔드를 실행하고 플랫폼 폴더의 자체 스크립트를 사용하세요. 환경 변수는 로컬 .env 파일이나 호스팅 대시보드에 저장된 명명된 설정입니다. 관련 앱을 변경한 후 다시 시작하고, NEXT_PUBLIC_ 및 EXPO_PUBLIC_ 값에서 서버 비밀을 유지하세요.

1. VS Code에서 apps/web/src/job-handlers.ts 및 apps/web/src/scheduler-runtime.ts를 엽니다. 작업은 백그라운드 작업입니다. 스케줄러는 대기열에 넣을 시기를 결정합니다.

2. 로컬 틱의 경우 apps/web/.env.local 및 저장소 루트 .env에 동일한 SCHEDULER_TICK_SECRET를 설정합니다. 틱 스크립트는 루트 .env를 읽는 반면 웹 엔드포인트는 앱 설정을 읽습니다.

3. corepack pnpm --filter @supastack/web dev로 웹을 시작한 다음 루트에서 corepack pnpm jobs:tick을 실행합니다. 예상: 터미널에 localhost:3000의 POST 결과가 표시됩니다. Trigger.dev는 별도의 공급자이며 자체 계정과 서버 키가 필요합니다.

프로덕션 작업 제출에는 JOB_PROVIDER=trigger와 서버 전용 TRIGGER_SECRET_KEY, TRIGGER_PROJECT_REF를 설정하세요. 대상 프로젝트를 구성하기 전에 apps/web/trigger.config.ts와 apps/web/trigger의 ai.generate 작업을 검토하세요.

```
JOB_PROVIDER=trigger
TRIGGER_PROJECT_REF=your-project-reference
# Provide TRIGGER_SECRET_KEY through the server secret store.
# Local/self-hosted scheduler tick:
# SCHEDULER_TICK_SECRET=…
# SCHEDULER_TICK_URL=http://localhost:3000
```


## 복사 명령

설명을 따라 명령이 실행되는 폴더를 확인하세요. 두 개의 터미널에 레이블이 지정되어 있으면 두 개의 터미널 창을 열고 두 번째 명령을 사용하는 동안 첫 번째 명령을 계속 실행하세요.

```
# Terminal 1 — start the Web app from the monorepo root:
corepack pnpm --filter @supastack/web dev

# Terminal 2 — run one scheduler tick from the monorepo root:
corepack pnpm jobs:tick
```


## 구현 워크플로

공유 JobRunner 계약은 enqueue, status, cancel을 약속합니다. 워크플로 고유 의미는 Trigger.dev에 속합니다. 일반 인터페이스에서 스케줄링, 재시도, 내구성 보장을 추론하지 마세요.

애플리케이션의 내구성 작업 ID는 디스패치, 워커 실행, 사용량 레코드, 결과를 연결합니다. 확인된 enqueue 후 프로바이더 실행 메타데이터 첨부 실패는 다른 enqueue를 유발하거나 수락된 작업을 무효화해서는 안 됩니다.


## 검증 및 문제 해결

체크 표시가 404를 반환하면 두 설정 파일 모두에 비밀이 존재하고 정확히 일치하는지 확인한 다음 Web을 다시 시작하세요. 터미널에 연결이 거부되었다는 메시지가 표시되면 먼저 웹을 시작하세요. 실행된 작업이 없으면 일정이 활성화되어 있고 기한이 되었는지 확인하세요. 한 번의 틱은 향후 일정을 즉시 실행하지 않습니다.

배포된 작업 식별자와 프로젝트가 구성된 환경과 일치하는지 검증하세요. enqueue 수용을 워크플로 완료 및 이메일 전송과 분리하세요. 작업을 수동으로 재시도하기 전에 안전한 복구와 진단을 위해 docs/production-ai-runtime.md를 읽으세요.


설정을 계속하려면 [파일 스토리지 설정](https://supastack.dev/ko/docs/web/setup-storage.md) 가이드를 읽어보세요.


## 다음

[Trigger.dev 작업](https://supastack.dev/ko/docs/modules/jobs.md)
