package interview import "tutor/internal/workflows" var questionPrompts = map[string]map[string]string{ "ko": { "backend-http-idempotency": "HTTP 메서드가 멱등성을 가지려면 어떤 조건이 필요하며, 재시도 시 왜 중요한가요?", "backend-db-index-tradeoff": "데이터베이스 인덱스를 추가하면 API가 어떻게 개선되며, 어떤 트레이드오프가 발생할 수 있나요?", "backend-cache-invalidation": "API 응답을 캐싱할지 어떻게 결정하며, 오래된 데이터는 어떻게 처리하나요?", }, "en": { "backend-http-idempotency": "What makes an HTTP method idempotent, and why does that matter for retries?", "backend-db-index-tradeoff": "When would adding a database index improve an API, and what tradeoffs can it introduce?", "backend-cache-invalidation": "How would you decide whether to cache an API response, and how would you handle stale data?", }, } func BackendDeveloperQuestions(lang string) []Question { if lang == "" { lang = "en" } base := []Question{ { ID: "backend-http-idempotency", Concepts: []workflows.ConceptRef{ {ID: "http-idempotency", Label: "HTTP idempotency", Track: BackendDeveloperTrack}, }, }, { ID: "backend-db-index-tradeoff", Concepts: []workflows.ConceptRef{ {ID: "database-indexes", Label: "Database indexes", Track: BackendDeveloperTrack}, }, }, { ID: "backend-cache-invalidation", Concepts: []workflows.ConceptRef{ {ID: "cache-invalidation", Label: "Cache invalidation", Track: BackendDeveloperTrack}, }, }, } for i := range base { if p, ok := questionPrompts[lang][base[i].ID]; ok { base[i].Prompt = p } else if p, ok := questionPrompts["en"][base[i].ID]; ok { base[i].Prompt = p } } return base }