1. 사용자가 코드를 작성하여 제출 (프론트엔드)

사용자가 웹 UI에서 Python/JavaScript 등 코드를 작성하고 "실행" 버튼을 누름.

프론트엔드 → API Server 로 다음 데이터가 전달됨:

{
  "code": "def handler(event): return 'hello'",
  "language": "python",
  "input": {"a": 10},
  "userId": "tenant-123"
}


2. API 서버가 사용자 코드를 저장 (S3 또는 내부 DB)

API 서버는 코드 본문을 S3에 저장하거나 직접 Redis Job 메시지에 포함함.

일주일 프로젝트라면:

Option A — S3에 저장하는 방식(더 확장성)

Option B — Redis 메시지에 코드 자체를 포함(가장 간단함)


3. API 서버가 Redis Queue에 “실행 Job”을 넣음

예시 메시지:

{
  "jobId": "uuid-123",
  "userId": "tenant-123",
  "language": "python",
  "code": "def handler(event): return event['a'] * 2",
  "input": {"a": 10}
}


📥 4. Worker Pod가 Redis에서 Job을 Pull

Worker는 사전에 준비된 Runtime Container.

예: