페이지콜 기술 1 : Delta Sync
델타싱크는 온라인 강의실 참가자들이 실시간으로 생성하는 많은 데이터의 변화(Delta)를 동기화(Synchronization)하는 기술입니다.
페이지콜이 2015년 이후 오랜 시간 개발하고 발전시킨 기술 중 하나는 ‘Delta Sync(델타 싱크)’라고 부르는 기술입니다.
이 기술은 온라인 강의실 참가자들이 실시간으로 생성하는 많은 데이터의 변화(Delta)를 동기화(Synchronization)하는 기술인데요. 예를들면 강의실에서 참가자들이 자료를 업로드 하거나 삭제하는 행위, 자료 위에 펜으로 획을 그리거나 지우는 행위, 자료를 확대하고 축소하는 행위 등의 변화를 델타 싱크 기술을 통하여 최대 16ms 이하의 시간 이내로 항상 같은 데이터 상태를 사용자들이 유지할 수 있도록 보장합니다.
관련하여 페이지콜은 'AWS코리아 에듀테크 커뮤니티 포럼 2023'에서 발표했던 적도 있습니다.
온라인 화상과외 솔루션 업체라면 으레 영상 통신이나 오디오 통신 기술을 개발할 것이라고 예상하기 쉬운데, 페이지콜은 왜 이러한 데이터 동기화 기술을 오랜 시간 개발하고 발전시켜 왔을까요?
사실 페이지콜을 처음 개발 할 때에는 학생과 선생님이 같이 수업할 자료들을 올리고, 몇 가지 펜 색깔을 선택하여 필기를 하는 정도로 단순한 기능을 제공하였습니다. 하지만 점차 고객들이 늘어나면서 강의실의 기능들이 고도화 되었습니다. 현재는 페이지콜이 강의실에서 제공하고 있는 기능이 100여개를 훌쩍 넘어가고 있는데요.
그런데 만약 이러한 기능들이 빠르게 동기화가 되지 않으면 어떤 일이 일어날까요?
실시간 강의는 기존 인강과는 달라야 한다.
잠깐 다른 이야기로 페이지콜이 생각하는 실시간 강의에 대해서 생각을 해 보고자 합니다.
현재 교육 시장에서 가장 보편적인 형태의 온라인 강의는 VOD 수업(인강)입니다.
강의력이 띄어난 강사가 많은 연구비를 투입한 양질의 수업 컨텐츠로 군더더기 없는 강의를 녹화하여 최대한 많이 판매하는 것입니다. 이러한 VOD 수업을 통하여 학생들은 양질의 강의를 언제, 어디서나, 여러 번 강의를 매우 저렴하게 볼 수 있게 되었습니다.
하지만 이러한 VOD 강의는 특정 성적(주로 중위권)대의 학생들을 고려하고 기획할 수 밖에 없고, 학생이 중간에 막히는 부분이 있으면 해결되지 않은 상태로 계속 강의가 일방적으로 흘러가게 됩니다. 결국 이러한 이유로 흥미가 떨어지게 되어 강의 완강률이 현저하게 낮아지게 됩니다.
온라인 실시간 수업은 마치 오프라인의 '개인 과외'처럼 학생의 참여가 능동적으로 가능해야 한다고 페이지콜팀은 생각합니다.
애써 여러 사람들이 시간을 맞추어 모였는데, 선생님이 화면공유를 하고 일방향 강의를 한다면 차라리 녹화해서 보내주는 것이 더 경제적이고 시간 사용 면에서 효율적이라고 생각하기 때문입니다. 학생의 수준에 따라서 수업 컨텐츠가 결정되고, 이해하면 더 빨리 이해를 못했으면 느리게 수업이 진행되고, 올바르게 이해했는지 지속적으로 직접 설명하거나 문제를 풀어보는 시간을 갖는 것입니다.
예전에는 이렇게 개인 과외를 진행할 수 있는 선생님들이 전 세계적으로 특정 도시에 몰려있는 경우가 많기 때문에 도시 지역 외에는 선생님을 구하기도 힘들뿐더러, 이동 시간이 많이 들기 때문에 자연스럽게 가격이 높아질 수 밖에 없었습니다.
하지만 페이지콜은 이러한 과거의 한계가 기술을 통해서 더 많은 선생님들이 수업을 진행할 수 있고, 학생들도 마치 오프라인 교습처럼 능동적으로 수업에 참여하며 수업 효과를 높일 수 있기를 기대하며 만들어가는 것입니다.
화상 교육 솔루션에 데이터 동기화 기술이 필요한 이유
페이지콜이 생각하는 인터랙티브함, 혹은 현장감있는 온라인 수업은 다음과 같은 특징을 가집니다.
- 수업에서 다룰 자료를 강사 뿐 아니라 학생들도 언제든지 올릴 수 있어야 한다. (수행평가 학습지, 오늘 본 영어 신문, 문제집 중 틀린 문제 일부 등)
- 강사는 언제든 학생에게 이해도를 체크할 수 있고, 학생은 음성과 채팅 뿐 아니라 전통적인 학교나 학원처럼 칠판, 연습장 등을 활용하여 본인이 이해한바를 충분히 강사에게 설명할 수 있어야 한다.
- 온라인이기 때문에 생기는 "8페이지 오른쪽 아래 보이세요?", "슬라이드 왼쪽 상단에 보시면" 등 커뮤니케이션을 모두 덜어내고 오프라인처럼 "선생님 여기 보시면요", "학생들 여기 볼까요?" 같이 직관적으로 지시대명사를 활용할 수 있어야 한다. 이렇게 작동하기 위하여 강사나 학생들이 어떤 비율, 크기의 디스플레이로 접속하더라도 동일한 컨텐츠의 동일한 부분을 보고 있다는 것이 보장되어야 한다.
즉, 많은 필기 획, 그 때 그 때 업로드 되는 자료들, 현재 보고 있는 화면에 대한 정보, 그 때 그 때 스피커나 마이크와 웹캠을 사용자들이 켜거나 끄는 정보들을 빠르게 일치시켜주지 않으면 제각기 수업 자료의 다른 페이지를 보고 있고, 내가 필기한 내용이 상대에게는 보이지 않고, 내 마이크는 껐는데 상대에게는 소리가 들리는 등 엄청난 혼란이 일어나게 될 것입니다.
그러면서 이러한 데이터 동기화를 위해 소프트웨어가 연산을 많이 하게 되어 CPU 혹은 GPU 자원을 많이 사용하거나, 혹은 데이터 통신이 너무 많으면 사용자들의 모바일 기기에서 배터리가 빠르게 닳는 동시에 발열 이슈가 커지게 됩니다.
대부분 온라인 수업이 1회에 60~90분이고, 선생님들의 경우에는 연달아 2~3개 수업을 진행해야 하는 것을 고려하자면 무한정 사용자들 기기의 자원을 사용할 수가 없는 것입니다.한편, 모든 연산을 중앙에서 처리하여야 한다면 클라우드 서버 비용으로 인하여 판매 가격이 대폭 올라가게 될 것입니다.
그렇기 때문에 운영 비용이 저렴하면서도, 지원하는 하드웨어 기기의 폭을 넓게 가져가면서, 사람들이 느끼기에 아주 빠르게 데이터를 동기화하는 기술이 필요하게 된 것입니다.
위 그림은 이러한 데이터 동기화 기술이 왜 중요한지 설명하는 또 다른 예시입니다. 구글독스나 노션에서 공동 문서 작업을 할 때 생길 수 있는 상황을 도식화 해 본 것인데요. 유저A와 유저B가 함께 협업하는 페이지이고 '안녕'이라는 두 글자가 입력되어 있는 상황을 가정 해 보겠습니다.
이 상황에서 유저A는 '안'과 '녕' 사이에 '!' 느낌표를 입력합니다. 동시에 유저B는 '안녕'뒤에 '?' 물음표를 입력하는 상황을 고려 해 보겠습니다.
- 유저A → 유저B : "0번지 뒤에 느낌표를 삽입해"
- 유저B → 유저A : "1번지 뒤에 물음표를 삽입해"
라고 각각 신호를 보낸 것입니다. 그러면 각 유저의 컴퓨터는 이렇게 판단할 것입니다.
- 유저A : "지금 '안!녕'인데 유저B가 1번지 뒤에 물음표 삽입하라는군. 그러면 결과값은 '안!?녕'
- 유저B : "지금 '안녕?'인데 유저A가 0번지 뒤에 느낌표를 삽입하라는군. 그러면 결과값은 '안!녕?'
이처럼 사용자가 단 두 명이고 간단한 텍스트 수정이라는 차원에서 문제를 바라보아도 어떤 내용이 최종 버전의 내용인지, 어떤 내용이 고유한 버전인지 판별하기가 쉽지 않습니다. 그리고 이러한 상황을 ‘Divergence’ 상태라고 이야기합니다.
여기에 사람 수가 늘어나고, 조작하는 데이터가 텍스트 입력, 그래픽 렌더링, 음성파일 재생 등 종류가 다양해진다면 더욱 데이터를 빠르게 동기화하여 가장 최종 버전의 내용이 무엇인지를 모든 참가자들이 알도록 만드는 것은 꽤나 복잡한 일이 됩니다.
데이터의 종류가 무엇이든 동기화하는 델타 싱크
페이지콜의 델타 싱크 기술은 사용자간 교류하는 데이터의 종류가 텍스트든, 이미지든, 웹 데이터든 관계없이 항상 N명 간 통신에서발생하는 데이터의 동일함을16ms 이내로 보장합니다. 이는 기존의Operational Transformation 이론에 기반하고 있으나 이를 실제 화이트보드의 여러 상황에 적용하고 대중적인 사용자들의 하드웨어 환경에서 사용할 수 있도록 구현해 낸 것이 페이지콜의 중요한 핵심 기술입니다.
그렇다면 만약 Operational Transformation 등데이터 동기화와 관련한 이론을 습득한 다른 집단이 페이지콜의 델타 싱크를 유사하게 따라잡을수 있을까요? 혹은 페이지콜에서 근무했던 엔지니어가 퇴사해서 즉각적으로 구현할 수 있을까요?
이 질문의 답변을 위해서 잠깐 다이어트를 예시로 들어보겠습니다. 이 세상에 다이어트의 여러 방법들이 나와 있지만 결국 핵심은 섭취 칼로리를 줄이고 소비 칼로리를 늘리는 것일 것입니다.
하지만 이 이론을 알게 된 것과 모든 사람들이 각자의 삶에서 다이어트를 성공한다는 것은 완전히 다른 이야기입니다. 개인마다 구할 수 있는 식재료, 현재 업무스케줄의 형태, 운동을 위한 관절이나 근육의 상태, 나이, 성별 등이 모두 다르기 때문입니다. 다이어트의 기본적인 이론을 개개인의 삶에 적용하기 위해서는 세부적으로 맞춤 루틴을 설계하고, 매일 꾸준하게 노력하는 것이 필수적입니다.
이처럼 데이터동기화와 관련한 제반기술인 Delta library, Operational transformation, Conflict-free replicated data type(CRDT) 등에 대해서는 공개적으로 알려진 원리들이 많지만, 이런 원리들을 실제로 다양한 교육 기업들의 니즈에 맞추어 소프트웨어에 적용을 하기위해서는 정확한 데이터 자료구조를 설계하고, 이러한 다양한 타입의 데이터들이 이론에 맞추어 빠른 시간내 동기화가 이루어질 수 있도록 소프트웨어적으로 올바르게 구현해야 합니다.
또 이러한 성질은 일회성으로 획득될수 있는 성질이아니고 지속적으로 OS와 브라우저의 환경, 그리고 더 많은 동시 접속자를 지원하며, 더 다양하고 복잡한 상황 속 사용자들의 데이터를 생성하는 상황에 대한 지원 및 확장을 하여야하기 때문에 페이지콜의 가장 큰 기술적인 해자를 이룹니다.
이런 페이지콜을 만들어가는 과정에 관심이 있으시다면 : 페이지콜 채용페이지
이런 페이지콜을 여러분 서비스로 도입에 관심이 있으시다면 : 페이지콜 상담신청