포스트

[비정기 태챕] 모든 공부는 학습자료로 통한다

오르조 개발팀은 태블릿을 통한 고등학생의 학습 경험 향상을 위해 끊임없이 노력합니다.

[비정기 태챕] 모든 공부는 학습자료로 통한다

오르조 개발팀은 태블릿을 통한 고등학생의 학습 경험 향상을 위해 끊임없이 노력합니다.
고등학생의 공부는 수능으로만 한정되지 않고, 다양한 시험과 자료가 존재합니다.

간단하게 보면, 고등학생의 학습은 수능과 내신으로 분류될 수 있지만, 세부적으로 들여다보면 수능만 해도 교육청, 평가원, 그리고 다른 사설 기관 등 다양한 주관사에 따른 시험들이 있습니다. 뿐만 아니라, 성취도나 학년에 따라 선택해야 하는 시험도 달라집니다.

물론 시험 외의 학습 자료도 풍부합니다. 수능 연계 교재, 개념 문제집, 유형별 문제집 등 다양한 문제집, 복습 노트와 필기 노트 등 다양한 학습 자료가 학생들을 기다리고 있죠.

따라서, 오르조가 학생들에게 최적의 학습 경험을 제공하려면 이 모든 다양한 자료를 제공할 수 있어야 합니다.
중요한 것은 저희가 이미 대부분의 자료를 제공할 준비가 되어있다는 것입니다.

다양한 컨텐츠를 학습자료로

어떻게 그럴 수 있었을까요? 그 핵심은 바로 “학습자료”에 있습니다.

“학습자료”는 오르조의 다양한 컨텐츠를 일컫는 용어입니다. 오르조에서 유저에게 제공되는 대부분의 컨텐츠를 학습자료라고 생각하시면 됩니다.

각 컨텐츠는 동일한 형태를 갖지 않기 때문에 타입, 서브타입, 컨텐츠 구조, 메타데이터 필드 등을 통해 구별됩니다. 그렇지만, 이 모든 학습자료는 하나의 컬렉션에서 통합 관리됩니다.

이런 통합 관리의 장점은 상당히 큽니다. 학습자료실에서는 검색 필터가 다른 수능 기출, 내신 기출, 문제집 등을 유저에게 보다 편리하게 제공하기 위해 탭을 분리하고 있습니다. 그럼에도 불구하고 검색 시스템은 선택된 탭 값을 타입 필드를 활용하여 효율적으로 결과를 제공합니다.

또한, 모든 학습자료의 기본 구조는 동일하기 때문에 한번 학습자료의 구조를 이해하면 다양한 학습자료에도 쉽게 적응할 수 있습니다. 초기에는 조금 복잡해 보일 수 있지만, 이를 극복하는 과정에서 이 글을 작성하게 되었네요. 결국 좋은 결과를 가져온 것이죠!

보통의 스타트업 서비스가 그렇듯 처음에는 완벽히 설계하면서 시작하지 않았습니다. 오르조의 초기 버전에는 단순히 수능 기출과 PDF 기반 문제집 기능만 존재했습니다. 그러나 서비스가 성장하면서 여러 유형의 문제집과 기출문제가 각각 별도의 컬렉션에 저장되기 시작했습니다.

하지만 이런 분산된 관리 방식은 서비스 확장에 제약을 줄 수 있다는 문제점이 있었습니다. 이미 복잡한 상태에서 컨텐츠 구조를 재설계하는 일은 어렵고 시간이 많이 걸립니다. 여러 논의와 고민 끝에 저희는 이 문제를 해결하기 위해 학습자료라는 통합된 형태를 도입하기로 결정했습니다.

세부적인 분류 방식

학습자료에 대한 소개는 복잡해 보일 수 있지만, 실제로는 간단합니다. 이 글에서는 학습자료의 전체 구조와 그 이유를 설명하려 합니다. 이해하면 학습자료가 친숙하게 다가올 것입니다. 물론, 학생이 학습하는 다양한 컨텐츠가 있지만 여기서는 학원이나 선생님과 관련된 부분은 생략하겠습니다.

오르조에서는 컨텐츠를 세 단계로 분류합니다.

  • 대분류는 주로 학습자료의 매체를 기준으로 합니다. 즉, 출판물, 인쇄물 또는 영상물로 구분됩니다.
  • 중분류에서는 컨텐츠의 목적을 중심으로 분류하며, 예를 들면 학습 강화를 위한 문제집과 성취 평가를 위한 시험지를 구분합니다.
  • 소분류에서는 매체와 목적별로 더욱 세부적으로 분류합니다. 예컨대, 문제집은 출판사나 유형에 따라 분류되고, 시험지는 주관사나 시험 종류에 따라 나뉩니다.

물론 학생의 학습자료에는 다양한 분류가 있습니다. 더 설명드리면 복잡해질테니 여기서는 간략히 이미지로 넘기겠습니다.

PO 승헌님이 정리하신 학습자료 분류

개발자를 위한 살짝 깊은 설명

오르조의 개발팀은 플랫폼에 상관 없이 공통 스키마 문서를 공유하고 있습니다.

이번 글의 마지막은 개발에 친화적인 방식으로 학습자료에 대해 설명하는 것으로 마무리해볼까 합니다.

앞서 언급했던 바와 같이, 학생의 모든 학습 컨텐츠는 “학습자료”라는 형태로 추상화하는 방향으로 합의되었고, 이는 여전히 잘 진행되고 있습니다. 또한 앞에서 넘어갔지만 선생님이나 학원과 관련된 컨텐츠에서도 효과적으로 활용되고 있습니다.

복잡한 전체 스키마를 제시하기는 어렵지만, 가장 기본적인 부분을 타입스크립트로 요약하여 제공하겠습니다.

type과 subType의 분리는 각각 다른 쿼리 혹은 둘의 조합이 필요할 때를 위함입니다.
예컨대, examPaper 타입과 private 서브타입의 조합은 사설 모의고사를 의미합니다.

지금까지 설명한 내용은 학습자료의 공통적인 부분에 초점을 맞춰서 설명했지만 모든 컨텐츠를 동일한 형태로 추상화하는 것은 어려운 일입니다.

그래서 각 컨텐츠마다 다양한 메타데이터와 구조가 추가로 존재합니다. 예를 들어, 사용자에게 제공되는 시험지는 여러 요소로 구성되어 있으나, 정답과 해설 정보는 별도로 존재합니다.

이와 관련한 더 복잡한 내용은 다음 글에서 자세히 다루겠습니다.

마치며

이번 글에서는 학습자료의 기원, 형태, 스키마, 그리고 심화 사용법까지 광범위하게 살펴보았습니다.

슬링에 입사하시는 분들에게 이런 디테일한 내용을 바로 소개하는 것이 부담스럽게 느껴질 수 있어서 미리 읽어보실 수 있게 글로 정리해보았는데 도움이 되셨으면 좋겠습니다.

저는 이 글을 작성하면서 온보딩 과정을 효과적으로 진행할 수 있는 방법에 대한 아이디어가 더욱 구체화된 것 같아서 기분이 좋습니다.

다음 글에서는 학습자료의 더 심화된 부분을 다룰 예정이며, 서점 웹사이트에서 검색한 결과를 학습자료로 모델링하는 실습도 포함될 계획입니다. 이건 저에게도 새로운 도전이므로 매우 기대됩니다!

오늘도 관심 가지고 읽어주셔서 감사합니다. 다음 글에서 만나요 🚀

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.