Cloudflare Workers와 Assets를 활용한 운전면허 시험 문제 데이터 API
Cloudflare의 글로벌 CDN을 활용하여 정적 자산 제공 기능으로 운전면허 시험 문제 데이터를 효율적으로 제공합니다.
모든 데이터는 정적 JSON 파일로 사전 생성되어 실시간 처리 없이 즉시 제공됩니다. Cloudflare의 글로벌 CDN을 통해 모든 API 응답이 빠르게 제공됩니다.
본 API는 다음 문제은행의 데이터를 기반으로 제공됩니다:
GET /api/questions
전체 문제 목록을 조회합니다.
{
"status": "success",
"data": {
"total": 1000,
"indexes": [1, 2, 3, ...]
}
}
{
"status": "success",
"data": {
"total": 1000,
"questions": [
{
"번호": 1,
"문제": "...",
"선택": [...],
"정답": [4],
"해설": "...",
"유형": "문장형",
"힌트": "...",
"간략설명": "...",
"부연설명": null,
"": null
}
]
}
}
GET /api/questions/{번호}
특정 번호의 문제 상세 정보를 반환합니다.
{
"status": "success",
"data": {
"번호": 1,
"문제": "다음 중 총중량 1.5톤 피견인 승용자동차를...",
"선택": [
{"번호": 1, "내용": "..."},
{"번호": 2, "내용": "..."},
{"번호": 3, "내용": "..."},
{"번호": 4, "내용": "..."}
],
"정답": [4],
"해설": "...",
"유형": "문장형",
"힌트": "...",
"간략설명": "...",
"부연설명": null,
"미디어": {
"url": "https://i.postimg.cc/DZTwDgq1/num-850-0.jpg",
"type": "image"
}
},
"generated_at": "2025-03-23T11:40:15.987Z"
}
GET /api/questions/2answers
정답이 2개인 문제 목록을 조회합니다.
매개변수:
view: 조회 방식 ('full' 또는 'indexes', 기본값은 'full'){
"status": "success",
"data": {
"total": 282,
"questions": [
{
"번호": 8,
"문제": "...",
"선택": [...],
"정답": [1, 2],
"해설": "...",
"유형": "문장형",
"힌트": "...",
"간략설명": "...",
"부연설명": null,
"미디어": null
}
]
}
}
{
"status": "success",
"data": {
"total": 282,
"indexes": [8, 15, 18, 29, 41, 57, ..., 865]
}
}
GET /api/questions/random?count=10&set=1
count 파라미터 개수만큼 랜덤하게 문제를 선택하여 반환합니다.
매개변수:
count: 반환할 문제 개수 (10, 20, 50 중 선택)set: 문제 세트 번호 (1~10){
"status": "success",
"data": {
"total": 10,
"questions": [
{
"번호": 1,
"문제": "...",
"선택": [...],
"정답": [4],
"해설": "...",
"유형": "문장형",
"힌트": "...",
"간략설명": "...",
"부연설명": null,
"미디어": null
}
]
}
}
GET /api/questions/exam?set=1
모의고사 문제를 반환합니다. 아래 구성표에 따라 문제가 선택됩니다.
매개변수:
set: 모의고사 세트 번호 (1~100){
"status": "success",
"data": {
"total": 40,
"totalScore": 100,
"questions": [
{
"번호": 586,
"문제": "도로교통법령상 자전거 운전자가 밤에 도로를 통행할 때 올바른 주행 방법으로 가장 거리가 먼 것은?",
"선택": [
{
"번호": 1,
"내용": "경음기를 자주 사용하면서 주행한다."
},
{
"번호": 2,
"내용": "전조등과 미등을 켜고 주행한다."
},
{
"번호": 3,
"내용": "반사조끼 등을 착용하고 주행한다."
},
{
"번호": 4,
"내용": "야광띠 등 발광장치를 착용하고 주행한다."
}
],
"부연설명": null,
"정답": [
1
],
"해설": "도로교통법 제50조(특정운전자의 준수사항)제9항 자전거등의 운전자는 밤에 도로를 통행하는 때에는 전조등과 미등을 켜거나 야광띠 등 발광장치를 착용하여야 한다.",
"유형": "문장형",
"힌트": "자전거 운전자가 밤에 안전하게 도로를 주행하기 위해 해야 할 일들을 생각해 보세요. 다른 차량 운전자들이 자전거를 잘 볼 수 있도록 해야 할 것은 무엇일까요? 경음기 사용은 다른 차량의 안전 운행에 어떤 영향을 미칠 수 있을까요?",
"간략설명": "경음기를 자주 사용하는 것은 다른 차량 운전자에게 불필요한 소음을 유발하고, 오히려 사고를 유발할 수 있습니다. 밤에는 전조등과 미등을 켜고, 반사 조끼나 야광 띠 등 발광 장치를 착용하여 다른 운전자들이 자전거를 잘 볼 수 있도록 해야 합니다.",
"미디어": null,
"score": 2
},
/* ... 그 외 다수의 문제 ... */
],
"generated_at": "2025-03-26T03:39:30.137Z"
}
| 문제유형 | 영문 유형 | 지문 | 점수 | 문제수 | 합계 |
|---|---|---|---|---|---|
| 문장형 | sentence | 4지 1답 | 2 | 18 | 36점 |
| 문장형 | sentence | 4지 2답 | 3 | 3 | 9점 |
| 안전표지형 | safety_sign | 4지 1답 | 2 | 4 | 8점 |
| 사진형 | photo | 5지 2답 | 3 | 6 | 18점 |
| 일러스트형 | illustration | 5지 2답 | 3 | 8 | 24점 |
| 동영상형 | video | 4지 1답 | 5 | 1 | 5점 |
GET /api/questions/frequently-missed?view=full
사용자들이 가장 많이 틀리는 문제 목록을 조회합니다. 오답율 정보와 함께 제공됩니다.
매개변수:
view: 조회 방식 ('full' 또는 'indexes', 기본값은 'full'){
"status": "success",
"data": {
"total": 100,
"questions": [
{
"번호": 947,
"문제": "다음 중 안전운전에 해당하는 것은?",
"선택": [
{"번호": 1, "내용": "..."},
{"번호": 2, "내용": "..."},
{"번호": 3, "내용": "..."},
{"번호": 4, "내용": "..."}
],
"부연설명": null,
"정답": [1],
"해설": "...",
"유형": "동영상형형",
"힌트": "...",
"간략설명": "...",
"미디어": {
"url": "https://www.youtube.com/watch?v=CQTa7nZkskw",
"type": "video"
}
"오답율": 75.5
},
/* ... 그 외 다수의 문제 ... */
]
},
"generated_at": "2025-03-26T03:39:30.334Z"
}
{
"status": "success",
"data": {
"total": 100,
"questions": [
{
"번호": 352,
"오답율": 67
},
{
"번호": 670,
"오답율": 67
},
/* ... 그 외 다수의 문제 ... */
]
},
"generated_at": "2025-03-26T03:39:30.333Z"
}
이 API는 실시간 데이터 처리를 수행하지 않고, 미리 생성된 정적 JSON 파일을 제공합니다. 모든 API 엔드포인트는 해당하는 정적 JSON 파일로 리디렉션됩니다.
이 API는, 파일 기반 API를 사용하여 클라이언트에게 직접 정적 파일에 접근할 수 있도록 투명하게 설계되었습니다.