화면 테마
학습이력 조회 (정산)
정산을 위한 기간별 학습이력입니다. 항목 1건은 학생 × 활동 하나(6개 값 조합 하나)이며, 활동마다 한 번 정산합니다. 다시 해보기 회차에는 과금하지 않습니다. accessDate는 그 활동에 처음 진입한 시각입니다.
http
POST /integrations/v1/learning-history
Authorization: Bearer <PARTNER_SERVER_KEY>
Content-Type: application/json요청 예시 1 — 하루 전체 조회:
json
{
"fromDate": "2026-09-28",
"toDate": "2026-09-28",
"studyType": null,
"memIdx": null
}요청 예시 2 — 학생 한 명의 쓰기 조회:
json
{
"fromDate": "2026-09-01",
"toDate": "2026-09-28",
"studyType": "WR",
"memIdx": "1234567"
}| 필드 | 필수 | 의미 |
|---|---|---|
fromDate, toDate | 필수 | 조회 기간. YYYY-MM-DD, 두 날짜 모두 포함, 한국시간 기준. 최대 31일 |
studyType | 선택 | null이면 전체. RA, WR, SP, IBTRA, IBTW, IBTS |
memIdx | 선택 | null이면 전체 학생. 문자열로 보냅니다. 앞자리 0을 보존합니다 |
응답 예시:
json
{
"success": true,
"regDate": "2026-09-29 03:00:02.000",
"request": {
"fromDate": "2026-09-28",
"toDate": "2026-09-28",
"studyType": null,
"memIdx": null
},
"totalCount": 2,
"data": [
{
"studyType": "WR",
"memIdx": "12345678",
"level": "MA",
"layer": "RED",
"unitCd": "U01",
"regYear": 2026,
"season": 3,
"regYm": "202609",
"accessDate": "2026-09-28 14:00:00.123"
},
{
"studyType": "SP",
"memIdx": "1234567",
"level": "MA",
"layer": "RED",
"unitCd": "U01",
"regYear": 2026,
"season": 3,
"regYm": "202609",
"accessDate": "2026-09-28 14:15:20.456"
}
]
}| 응답 필드 | 의미 |
|---|---|
regDate | 응답 생성 시각. 한국시간 YYYY-MM-DD HH:mm:ss.SSS |
request | 요청 조건을 그대로 돌려줍니다 |
totalCount | data의 건수. 페이지를 나누지 않으므로 전체 건수와 같습니다 |
data[].memIdx | 학생 ID. 문자열 |
data[].unitCd | 단원 코드. 진입 때 보낸 문자열 그대로 |
data[].regYear, season | 숫자 |
data[].studyType, level, layer, unitCd, regYear, season | 활동(6개 값 조합)의 값 |
data[].regYm | 그 활동에 처음 진입한 회차의 귀속 월 |
data[].accessDate | 그 활동에 처음 진입한 시각. 한국시간 YYYY-MM-DD HH:mm:ss.SSS |
집계 규칙
- 학생 × 활동 하나에 1건입니다. 같은 활동에 여러 번 진입하거나 다시 해보기로 여러 회차를 학습해도 1건이며,
accessDate는 그 활동의 모든 회차 중 가장 이른 진입 시각입니다. - 다른 활동은 각각 1건입니다. 같은 단원이라도 regYear·season이 다르면 다른 활동입니다.
- 기간은
accessDate의 한국시간 날짜로 판단합니다. 처음 진입한 날이 기간 밖이면, 기간 안에 다시 진입하거나 다시 해보기를 했더라도 나오지 않습니다. 그래서 한 활동은 처음 진입한 날이 속한 기간에서 한 번만 나옵니다. - 제출을 완료하지 않은 학습도 포함합니다. 진입 코드를 만들기만 하고 학습 창에 진입하지 않은 경우는 제외합니다.
- 정렬은
accessDate오름차순입니다. regYm은 교재 귀속 월이며accessDate와 다를 수 있습니다.
오류
| HTTP | 코드 | 의미 |
|---|---|---|
| 401 | INVALID_PARTNER_KEY | Bearer key 누락·불일치 |
| 422 | INVALID_INPUT | 날짜 형식 오류, fromDate > toDate, 31일 초과, memIdx가 문자열이 아님, 지원하지 않는 studyType, 정의되지 않은 필드, JSON이 아닌 본문 |
오류 응답 형식은 조회 API 공통 응답을 따르며, error.fields에 문제가 된 필드 이름이 들어갑니다.