DOI QR코드

DOI QR Code

SignalR-based Audience Response System for e-Learning Implementation

이러닝 구현을 위한 SignalR 기반 청중 응답 시스템

  • Received : 2020.06.09
  • Accepted : 2020.08.24
  • Published : 2020.09.30

Abstract

Recently, as e-learning technology advances, interaction and data exchange between lecturers and learners have become very important. In addition, accuracy of data delivery and efficiency of system implementation should be ensured. Considering these aspects, SignalR is the most suitable communication method for constructing an audience response system in e-learning. Existing audience response systems require separate wireless devices and have problems with system compatibility. SignalR, on the other hand, is capable of operating in all environments including PC programs, web, Android, and iOS, and has an advantage of being easy to develop applications. As such, SignalR is widely used in chatting functions for small scale, real-time communication system, and it has never been used to implement an audience response system. Thus, for the first time in this paper, an audience response system using SignalR was proposed and an experiment was conducted on whether it was applicable at the e-learning education field. Therefore, from the results fo an experiment, a variety of e-learning environments can be built through the audience response system using SignalR proposed in this paper.

Keywords

1. 서론

이러닝 (e-Learning)은 ICT 기술을 활용하여 시간과 공간의 제약을 받지 않고 각종 매체를 통해 다양한 형태의 학습을 수행하는 교육방식이다. 즉 이러닝은 인터넷 등의 ICT 기술을 활용하여 학습자의 학습 효과를 향상시키기 위한 방법으로 사용되고 있고, 학교 뿐만 아니라 다양한 에듀테크 시장에서 확대되고 있다[1].

이러닝의 적용 분야로는 먼저, 학교나 학원에서 사용되고 있는 LMS (learning management system)에 기반한 적응적 러닝 (adaptive learning)을 들 수 있고, 비디오, 미니게임, 퀴즈, 인포그래픽으로 구현된 마이크로 러닝 (micro learning), 인공지능을 지원하는 학습 환경, 학습자들의 호기심과 참여 욕구를 충족시킬 수 있는 게임 기반 학습, 가상현실 (augmented reality, AR)과 증강현실 (virtual reality, VR)을 결합한 혼합현실 (mixed reality, MR)을 이용한 경험 제공, 범용적으로 사용되는 소셜 러닝 (social learning), 강의자가 청중들의 반응과 이해를 쉽게 파악할 수 있는 청중 응답 시스템 (audience response system) 등으로 점차 확대되고 있다[2].

청중 응답 시스템을 통해 강의자는 강의 과정이나 상황을 전체적으로 파악할 수 있고 이에 적절한 피드백을 적용할 수 있으며, 학습자들은 실시간으로 교육에 참여하고 강의 중 다른 학습자들의 반응을 비교할 수 있어 강의 참여 효율을 극대화함으로써 강의자와 학습자 모두에게 긍정적인 결과를 얻을 수 있다.

이를 위해서는 교육에 참여하는 강의자 및 학습자 간의 학습 결과 및 피드백을 공유하는 것을 확대하여, 교육 환경에 참여하는 모든 학습자의 활동 정보와 이에 대한 통계를 바탕으로 생성된 데이터를 공유하는 것이 청중 응답 시스템에 구현되어야 한다. 또한, 학습 참여자의 응답 정확성 및 시스템 구현의 효율성이 만족 되어야 하는데, 이러한 측면들을 고려한다면 청중 응답 시스템을 구성하는 통신방식으로는 SignalR이 가장 적합하다.

SignalR은 주로 채팅 프로그램이나 간단한 실시간 온라인 게임에 주로 사용하는 통신방식이다. 무선 응답기와 무선 리더기를 통해 응답하는 기존의 청중 응답 방식에서는 블루투스 모듈을 통해 응답기 간에 통신하고, 웹을 통한 청중 응답 방식에서는 웹 환경에서 응답 공간을 생성하고 웹을 통해서만 응답을 전달할 수 있다[3,4]. 반면, SignalR은 PC, 웹, Android, iOS 등 모든 환경에서 사용이 가능하다는 이점이 있고, 타 플랫폼 대비 개발 난이도 또한 낮아 프로그램 개발의 범용성과 접근성이 좋은 장점이 있다. 따라서 본 논문에서는 별도의 하드웨어가 필요하고 호환성이 결여된 기존의 청중 응답 시스템의 단점을 보완한 SignalR에 기반한 청중 응답 시스템을 최초로 제안한다.

본 논문은 2장에서 청중 응답 시스템을 소개하고, 3장에서는 제안한 SignalR 기반 청중 응답 시스템, 4장에서는 제안한 청중 응답 시스템의 성능 평가를 위한 실험 결과를 나타내는 것으로 구성되었다.

2. 청중 응답 시스템

2.1 청중 응답 시스템의 개요

청중 응답 시스템은 별도의 하드웨어 없이 휴대폰 또는 노트북 같은 다양한 개인 컴퓨팅 장치를 사용하여 청중의 응답을 수집하는 방식으로 발전하고 있는데, 이를 통해 다른 학습자들의 눈치를 살펴 거수하는 등의 군중 심리에 의한 학습자들의 선택 경향을 배제할 수 있다.

강의자와 학습자 간의 상호작용을 효과적으로 전달하기 위해, 청중 응답 시스템에서는 무선 하드웨어 모듈과 프레젠테이션 소프트웨어가 결합되어, 실시간 응답, 다이얼 테스트 및 청중 응답 기능을 포함한 다양한 기능을 제공할 수 있다. 이때 강의자의 질문에 대한 학습자들의 답변을 전달하기 위해 사용되는 휴대용 리모컨을 클리커 (Clicker) 라고 한다.

청중 응답 시스템을 사용하면 수동 방법보다 더 빠르게 대규모 집단의 의견을 취합할 수 있고, 강의 진행뿐 아니라 대형 강의실에서 출석 또는 이수 정보를 수집할 수 있다. 또한, 청중 응답 시스템을 사용하는 사람들에게는 수업 참여도 향상, 익명 응답 전달, 개별 응답 추적, 응답 결과 표출, 재미있는 학습 환경 제공, 강의 이해도 향상, 학습 데이터 수집 용이 등의 이점을 제공한다.

2.2 학습자 정보 전달 방식의 진화

청중 응답 시스템에 사용되는 학습자 정보 전달은 직접 응답, 무선 응답, 및 인터넷 환경을 이용한 응답 방식으로 분류된다. 직접 전달방식에서는 별도의 장치 없이 응답 정보를 즉시 확인할 수 있지만 모든 학습자의 정보 공유가 어렵고 응답자가 다수일 경우 취합이 어려운 단점이 있다. 무선 응답 방법은 투표가 필요한 경연 프로그램 등에서 많이 활용되고 있는데, 공간 내에 데이터 통신이 가능한 별도의 무선 기기가 제공되어야 하는 단점이 있다.

반면에 인터넷을 활용한 응답 방식에서는 별도의 응답 기기가 없더라도, 기존의 WiFi 환경에서 PC와 웹 사이에 데이터 송수신이 가능하기 때문에, 응답의 안정성과 데이터 전송 속도가 보장되어 대규모의 청중 응답이 가능하다.

기존의 청중 응답 시스템의 대표적인 사례로서는 QuizAll과 SYMFLOW를 들 수 있다. QuizAll에서는 별도의 무선 투표기를 활용하여 간단하게 구현되었는데, 응답 속도가 빠르고 기능이 매우 간단하다는 특징이 있다. 즉 무선 투표기를 활용해 퀴즈 게임, 투표, 설문조사, 인기투표 등 다양한 분야에 활용될 수 있고, 영문 및 숫자로 구성된 주관식 답안 입력도 지원하여 설문조사 등에 활용되고 있다. 이와 같은 QuizAll을 통해 청중 응답 시스템을 구축하기 위해서는 별도의 통신 단말기와 수신기가 필요하며 이를 항상 휴대하고 있어야 한다는 단점이 있다[5].

SYMFLOW에서는 프리젠테이션 (Presentation), 다운플로우 (Downflow), 업플로우 (Upflow) 기능을 제공하는데, 프리젠테이션은 발표 기능에 최적화된 모드로서 파워포인트 화면을 강의자와 청중들에게 동기화하고, 다운플로우는 강사가 청중들에게 문제를 출제하는 기능인데, 청중들에 대해 알고 싶은 내용을 객관식 혹은 주관식의 형태로 실시간 표현이 가능하다. 업플로우는 청중이 강사에게 질문하는 기능으로 궁금한 내용을 강연 도중 바로 전송할 수 있고 다른 사람의 질문을 추천하여 공감할 수 있다. 이 방법에서는 웹 소켓을 사용하여 청중 응답 시스템을 구현하는데, 웹 소켓의 경우 모든 플랫폼에서 접근이 가능하나 모바일에서도 웹 링크를 통해 접속하기 때문에 모바일의 웹 브라우저의 종류나 버전에 따라 사용이 제한될 수 있다[6].

이와 같은 청중 응답 시스템에서는 학습자들의 응답이 강의자의 기기로부터 모든 학습자들에게 공유되어야 하고, 학습자의 경우 응답할 수 있는 방식이 복잡하거나 비용이 부과되지 않아야 하며, 응답 데이터가 실시간으로 강의자 기기에 전달되어야 한다. 이를 위해서는 접근이 쉽고 응답 전달이 빠른 웹을 통한 데이터 전달방식이 가장 이상적이다. 또한 강의 환경은 강의자와 학습자가 한 공간에서 진행되고, 동일한 인터넷 환경에서 강의가 진행되므로 웹을 활용한 데이터 전송이 가장 이상적이다.

3. 제안한 SignalR 기반의 청중 응답 시스템

마이크로소프트사가 개발한 웹 애플리케이션 프레임워크인 ASP.NET을 통해 프로그래머들은 동적인 웹 사이트, 웹 애플리케이션, 웹 서비스를 만들 수 있고, ASP.NET용 소프트웨어 라이브러리인 SignalR을 활용하면 서버 코드가 클라이언트 측 웹 응용 프로그램에 실시간으로 비동기 알림 (asynchronous notifications)를 보낼 수 있다. 이와 같은 SignalR에서는 브라우저와 서버 간 양방향 통신을 가능하게 하는 HTML5 API 웹 소켓 (WebSocket)과 서버 클라이언트 사이의 원격 프로시저 호출(remote procedure call, RPC) 통신을 활용한다[7]. RPC 통신은 별도의 원격 제어를 위한 코딩 없이, 다른 주소 공간의 함수 및 프로시저를 실행할 수 있게 하는 프로세스 사이의 통신 방식이며, 실행 프로그램 또는 로컬 위치 및 원격 위치에 관계없이 동일한 코드를 사용할 수 있다. 또한 SignalR은 .NET 라이브러리를 사용하기 때문에 웹 뿐만 아니라 동일 라이브러리를 사용할 수 있는 Xamarin에서 Android 및 iOS 자체의 앱 개발이 가능하므로 확장성이 뛰어난 특징이 있다.

SignalR에서는 비주얼 스튜디오를 사용하는 프로그래머의 경우 C#언어를 통해 웹 소켓 통신을 구현할 수 있고, C# WinForm, ASP.NET MVC (model view controller), Xamarin과 같이 PC, 웹, 모바일 환경에서 활용될 수 있다. 본 논문에서는 C# WinForm 을 사용한 PC 클라이언트 기능을 구현하여 강의자의 환경을 구성하고, ASP.NET을 사용한 허브 구현, ASP.NET MVC를 사용한 모바일 또는 웹 클라이언트 기능을 구현하여 학습자의 응답 환경을 구축한다[8]. 본 논문에서 제안하고자 하는 SignalR을 이용한 청중 응답 시스템의 동작 과정은 Fig. 1에서와 같다.

MTMDCW_2020_v23n9_1139_f0001.png 이미지

Fig. 1. Operational process of SignalR in an audience response system.

3.1 개발 환경 구성

SignalR을 활용한 청중 응답 시스템을 구현하기 위해 개발 환경을 구축하였는데, 먼저 허브를 개발하기 위해 비주얼 스튜디오를 사용하여 ASP.NET Web Application 프로젝트를 생성한다. 허브 기능을 구현하기 위해 Microsoft.AspNet.SignalR.System Web 라이브러리는 비주얼 스튜디오에서 제공하는 Nuget Package로 검색하여 설치하고, C#으로 코딩을 진행하였다. 허브 프로젝트가 생성이 되면 프로젝트의 Startup.cs 클래스를 수정하여 SignalR 통신을 위한 파이프라인을 열어주는 configuration 설정을 적용해야 한다.

이후, 외부에서 허브로 “/signalr” 이름으로 접근하는 클라이언트들에게 파이프라인을 열어주고, 크로스 도메인으로 허브에 접속하는 유저를 모두 허용하게 하는 미들웨어 CORS (cross-origin resource sharing) 옵션을 모두 허용으로 적용 후 SignalR 허브를 실행한다.

강의자용 클라이언트는 비주얼 스튜디오의 Windows Forms Application으로 프로젝트를 생성하고, 허브와 동일한 C#을 사용하고, Nuget Package의 Microsoft.AspNet.SignalR.client 라이브러리를 설치한다. 학습자용 클라이언트도 유사하게 비주얼 스튜디오에서 ASP.NET Web Application 프로젝트를 생성한다[9].

Web 클라이언트는 외부에서 SignalR 통신을 위한 jQuery.SignalR.js 스크립트 파일을 직접 프로젝트에 포함시킨다. jQuery를 사용하면 일반 자바스크립트 코드로 작업하는 것보다 10배 이상의 생산성을 높일 수 있어, jQuery의 빠른 생산성과 넓은 범용성으로 파생된 라이브러리들이 만들어지고 있다. 따라서 웹 GUI 기반 라이브러리인 jQuery UI를 통해 윈도우 애플리케이션과 동일한 기능성의 UI를 쉽게 만들 수 있고, 최근에는 jQuery가 모바일용 웹 애플리케이션의 제작도 지원한다[10].

마지막으로, 로컬 서버 세팅을 해야 하는데, 윈도우 운영체제에서 사용하는 서버를 위한 웹 기반 서비스인 IIS (internet information service) 서버는 내부에서 SignalR 통신 확인을 위해 필수로 설정해 주어야 한다. SignalR은 ASP.NET으로 웹 소켓 애플리케이션을 사용하기 때문에 IIS설정은 별도의 설치파일이 존재하지 않고 Windows 기능으로 설정할 수 있다. 이렇게 IIS서버, 허브, 클라이언트 구성 준비가 완료되면 본격적으로 SignalR 통신 개발을 진행할 수 있다.

3.2 제안한 청중 응답 알고리즘

지금까지 설명한 개발 환경을 통해, SignalR을 활용한 강의 진행 정보와 강의자 및 학습자 간의 정보를 공유하는 과정에 대하여 설명하고자 한다. 먼저 허브를 오픈하여 강의자용 클라이언트에서 그룹을 생성하고, 학습자용 클라이언트에서 생성된 그룹에 접속하면 SignalR통신이 시작된다. 따라서 강의자 클라이언트에서 원하는 옵션을 선택하면 학습자용 클라이언트는 옵션에 맞게 동작하고, 그에 맞는 응답을 허브로 전달하면 허브에서 강의자용 클라이언트로 대상과 응답을 전송하고 허브에서는 그 결과를 표시하게 된다. 제안한 청중 응답 알고리즘의 동작 과정은 Fig. 2에서와 같다.

MTMDCW_2020_v23n9_1139_f0002.png 이미지

Fig. 2. Flowchart of proposed audience response algorithm.

먼저 클라이언트 사용자를 구분할 수 있는 클래스와 강의자 클라이언트에 학습자 사용자를 구분할 수 있는 매니저 클래스를 생성하고, 허브 프로젝트를 실행하여 실행되면 허브를 오픈한다. 강의자용 클라이언트의 허브 접속과 그룹 생성은 먼저 허브로 접속한 후 그룹을 설정하도록 요청한다. 허브에서 성공적으로 그룹이 생성되면 학습자 클라이언트의 접속이 가능한데, 접속순서는 강의자용 클라이언트와 동일하다. 이때 동일한 그룹명으로 허브에 접속 요청해야 생성된 그룹으로 등록된다[11].

학습자 클라이언트의 그룹 접속이 완료되면 강의자에게 접속된 사용자의 정보를 전달하여 강의자 프로그램에 표시되도록 해야 하는데, 클라이언트가 그룹 접속될 때 허브에 생성된 그룹 이름을 검색하여 검색된 그룹이 있는 경우 그룹 강의자의 Connection Id로 사용자 접속 함수를 호출하고, 호출된 강의자 클라이언트에서는 접속사용자를 화면에 표시한다.

Fig. 3에서는 학습자의 그룹에 접속할 경우 강의자 단말기의 UI를 표시하고 있고, Fig. 4는 객관식 및 주관식 문제를 출제할 수 있는 강의자 프로그램의 UI를 나타내고, Fig. 5는 강의자가 선택한 응답 모드에 따라 학습자 프로그램이 표출하는 UI를 각각 나타 낸다.

MTMDCW_2020_v23n9_1139_f0003.png 이미지

Fig. 3. User interface of lecturer display when connecting to a learner group.

MTMDCW_2020_v23n9_1139_f0004.png 이미지

Fig. 4. Lecturer program UI for multiple-choice and subjective questions.

MTMDCW_2020_v23n9_1139_f0005.png 이미지

Fig. 5. Learner program UI according to response mode.

이를 구현하기 위한 청중 응답 시스템의 자세한 동작 과정은 다음과 같다. 즉 허브 그룹이 생성되어 있고, 학습자 및 강의자의 클라이언트가 상호 연결된 상태에서 강의자의 버튼 동작에 따라 학습자의 응답 수단이 변경되고 그 응답이 강의자의 프로그램에 표시되는 기능이 제공된다. 마지막으로 학습자 클라이언트에서 응답을 전송했을 경우, 강의자 프로그램의 화면에 응답 정보가 공유되어야 하는데, 학습자가 객관식, 주관식의 답안을 전송할 때마다 강의자에게 정보가 전달되고, 그 때마다 강의자 프로그램에서는 실시간으로 정보가 변경되어야 한다.

4. 제안한 청중 응답 시스템의 성능 평가 결과 및 고찰

이번 장에서는 제안한 SignalR 기반의 청중 응답 시스템이 실제 강의 환경에서의 활용성에 대한 성능 평가 결과를 나타내었다. 학습자들이 강의자 환경에 접속하는 경우와 이탈하는 경우에 대한 실험과 학습자가 다중 접속했을 경우 전송 시간과 전송 실패가 발생하는지에 대한 실험을 진행하였다.

4.1 학습자 접속 상황 실시간 표시

청중 응답 시스템에서는 강의가 진행되는 동안 학습자들이 강의자 환경에 접속하는 경우 이를 실시간으로 표현해야 하는데, Fig. 6은 학습자들이 강의 환경에 접속했을 경우 강의자의 환경에서 학습자들의 정보가 실시간으로 표시되는 것을 나타내고 있다.

MTMDCW_2020_v23n9_1139_f0006.png 이미지

Fig. 6. Real-time display of learner access information.

또한 Fig. 7은 학습자가 의도적이거나 비의도적으로 강의자 환경에서 이탈했을 경우, 강의자가 이를 실시간으로 확인할 수 있는지를 나타내었다.

MTMDCW_2020_v23n9_1139_f0007.png 이미지

Fig. 7. Real-time display of learner’s disconnection.

4.2 다중 접속자 응답 테스트

실제 강의 환경에서는 특정 강의자의 강의 시간에 최소 수십 명의 학습자가 동시에 응답하는 방식으로 강의가 진행되기 때문에, 별도로 제작된 다중 접속 툴을 활용하여 학습자들의 다중 응답을 전송하고 결과를 확인하는 실험을 진행하였다.

50명의 접속된 학습자가 다중접속 툴을 사용해 응답을 전송했을 경우, 강의자의 환경에서 노출되는 응답 정보 및 로그 정보는 Fig. 8에 나타내었고, Table 1.에서는 50명의 학습자가 응답 값을 동시에 60회 전달했을 때 그 값들이 강의자의 단말기에 노출되기까지 소요되는 시간을 나타내고 있다.

MTMDCW_2020_v23n9_1139_f0008.png 이미지

Fig. 8. Multiple response test for learner’s access.

Table 1. Measurements of time the learner's response is passed to the lecturer

MTMDCW_2020_v23n9_1139_t0001.png 이미지

실제 시뮬레이션에서는 50개의 임시 클라이언트를 생성하여 직접 허브에 접속하는 방식으로 진행되었는데, 50개 이상의 클라이언트를 생성하였을 경우 CPU 점유율이 매우 높아져 통신이 매우 느린 경우가 발생하였다. 실제 환경과 동일한 실험을 진행하려면 서로 다른 50개의 휴대폰을 사용해야 하지만 이는 현실적으로 불가능하여 클라이언트 생성을 통해 시험을 진행하였다. 따라서 사용자의 다양한 시스템 환경에 따른 실험은 진행하지 못하였고, 네트워크 환경은 서로 간섭되지 않고 최적의 통신 상태라고 가정하여 실험을 진행하였다.

50명의 학습자에 대하여 데이터 전송 테스트를 60회 진행한 결과, 강의자 단말기까지 전달되는 시간이 0.5ms 이상 소요되는 경우가 총 60회 중 11회로서 확률이 약 18% 정도로 확인되었다. 또한 데이터 전송이 안되는 경우는 발생하지 않았고, 응답 시간이 간혹 0.5ms보다 많이 소요되는 이유는 클라이언트 생성에 따라 CPU 점유율이 증가한 것으로 판단된다. 또한, 학습자의 수가 많은 경우 한 번에 많은 데이터를 전달하게 되면 처리해야 할 정보가 많아지므로 느려질 수 있다.

5. 결론

이러닝 기술이 발전되면서 최근 교육 시장은 IT 기술과 밀접한 관계가 있는데, 특히 강의자와 학습자 간의 상호작용을 모두 데이터화하여 학습자의 높은 강의집중력 및 학습 효율을 증대시킬 수 있는 많은 서비스가 개발되고 있다.

본 논문의 목적은 강의 환경에서 강의자와 학습자들의 상호작용으로 학습자들의 적극적인 강의 참여도를 통해 강의자는 강의에 대한 피드백을, 학습자들은 개인의 응답 전달로 다른 학습자들과 소통하기 위해서 가장 적합한 방식으로 웹 소켓 통신을 채택했고, SignalR을 사용해 PC, 웹, 모바일 같은 멀티 플랫폼에 적용할 수 있는 알고리즘을 제안하였다. 실제 50명의 학습자가 동시에 접속하는 것을 가정하여 진행한 모의실험에서 데이터의 유실이 없고 응답시간이 0.5ms 이내로 나타나는 등 실제 강의 환경에서 적용이 가능한 것을 확인하였다. 또한, 객관식 및 주관식 응답도 전달할 수 있어 다양한 방식의 학습자 응답을 확인할 수 있었다.

본 논문에서 제안된 청중 응답 시스템에 적용된 웹 소켓 통신방식을 고속 데이터 전송에 적합하도록 개선하고, 대량 유저의 경우 멀티허브와 같은 방식으로 해결한다면 더욱 더 성능이 향상될 것으로 기대된다.

References

  1. S.H. Heo and S.G. Kwon, "OMR Sheet Recognition Algorithm Using QR code Recognition and Perspective Transform," Journal of Korea Multimedia Society, Vol. 21, No. 4, pp. 464-470, 2018. https://doi.org/10.9717/KMMS.2018.21.4.464
  2. 8 Top eLearning Trends For 2019(2011), https://elearningindustry.com/elearning-trendsfor-2019-8-top, (accessed May 24, 2020).
  3. SignalR(2001), https://en.wikipedia.org/wiki/SignalR, (accessed May 24, 2020).
  4. Einar Ingebrigtsen, SignalR-Real-time Application Development, Packt Publishing, Brimingham, 2015.
  5. QuizAll(2013), http://www.quizall.co.kr/, (accessed July 22, 2020).
  6. SYMFLOW(2014). https://www.symflow.jp/, (accessed July 22, 2020).
  7. Introduction to ASP.NET Core SignalR(1994), https://docs.microsoft.com/ko-kr/aspnet/core/signalr/introduction?view=aspnetcore-3.1, (accessed May 24, 2020).
  8. Introduction to ASP.NET Core MVC(2014), https://www.yogihosting.com/aspnet-coreintroduction/, (accessed May 24, 2020).
  9. Introduction to SignalR(1994), https://docs.microsoft.com/ko-kr/aspnet/signalr/overview/getting-started/introduction-to-signalr, (accessed May 24, 2020).
  10. SignalR(2008), https://github.com/SignalR/SignalR, (accessed May 24, 2020).
  11. SignalR Reference for NET Framework 4.5 (1994), https://docs.microsoft.com/en-us/previous-versions/aspnet/jj943739(v%3Dvs.111), (accessed May 24, 2020).