Lecture
Lecture은 방과후학교 등 /lecture.php로 접근할 수 있는 메뉴를 나타냅니다.
과정 목록 가져오기
강의 과정 목록을 가져와 봅시다.
val menu = client.labeled<Menu.Lecture>("방과후학교").getOrThrow()
val paging = menu.list().getOrThrow()
val page = paging.get(0)
println(page) // 첫 페이지의 첫 번째 공지를 불러옵니다.
WithClient(value=LectureItem(dbId=DBId(value=1701), id=2026학년도 1학기 2학년 방과후학교 (19강좌), cate=Cate(value=86), kind=대기, title=2026학년도 1학기 2학년 방과후학교 (19강좌), registration=2026-03-11T08:10..2026-03-11T16:30, period=2026-03-05T16:30..2026-03-06T13:30))
더 자세한 사용 방법은 Paged를 참고하세요.
과정 조회하기
과정의 자세한 내용을 조회해 봅시다.
val detail = page.get().getOrThrow()
println(detail)
LectureListResponse(dbId=DBId(value=1701), cate=Cate(value=86), kind=마감, title=전체 메뉴, registration=2026-03-05T16:30..2026-03-06T13:30, period=2026-03-09..2026-06-26, surveyPeriod=2026-06-28T00:00..2026-06-30T23:59:59, totalCount=19, page=1, list=[***])
과정의 강좌 조회하기
과정에서 선택할 수 있는 강좌들을 조회해 봅시다.
val lectures = detail.list().getOrThrow()
val lecture = lectures.get(0)!!
val detail = lecture.get().getOrThrow()
println(detail) // 첫 번째 강좌를 불러옵니다.
LectureItemResponse(db=DBId(value=1701), cate=Cate(value=86), uid=Uid(value=16643), title=***, supplies=***, board=***, teacher=***, openedAt=2026-03-04T12:11, target=** / 20명(2학년), openingHours=월8, hours=11차시, location=207, cost=정산중, attachments=[Attachment(name=***.hwp [0.03M], file=Lecture(db=DBId(value=1701), cate=Cate(value=86), uid=Uid(value=16643), size=0.03M, fileNumber=0, fileCode=***))], body=***, register=(kotlin.String) -> kotlin.Result<kotlin.Unit>, unregister=() -> kotlin.Result<kotlin.Unit>)
신청 또는 대기 중인 과정은 기기 등록이 필요할 수 있습니다. 기기 등록이 되어 있지 않으면 DeviceRegistrationRequriedException이 발생합니다. 그럴 때는 강좌에 registerDeviceIfNot 함수를 사용하세요.
lecture.registerDeviceIfNot().getOrThrow()
수강 신청하기
LectureItemResponse의 register, unregister 함수를 사용해 수강 신청과 취소를 할 수 있습니다. 마찬가지로 기기 등록이 필요합니다.
detail.register("").getOrThrow()
기타
기기 등록의 기기 구분은 쿠키를 통해 이루어지고, 등록 후 1분 내에는 변경할 수 없으므로 주의하세요. 쿠키를 따로 파일에 저장하는(PersistentCookieStore 참조) 등의 방법을 사용하는 것이 좋습니다.
07 March 2026