Yaza.live를 만들고 운영하며 느끼고 배운 것들

2021/11/04에 작성됨 · 읽는데 약 5분 소요

내가 열심히 작업한 Yaza.live에 대해 이야기해보고자 한다.

먼저, Yaza.live는 자율학습 시간 때 칠판에 내가 갈 곳을 적고 나가는 불편함을 대체하기 위해 제작되었다.

잠깐 화장실을 가고 싶을 때에도 칠판으로 나와서 분필을 잡고 사유와 학번, 이름을 칠판에 적고 나갔어야 했다.

디미고에 와서 태어나서 처음으로 분필을 만져본 나는 분필이 손에 너무 많이 묻어, 분필을 만지기가 싫었다.

그래서 나는 이를 대체할 것이 없나 생각해보았고, 그래서 떠오른 것이 Yaza.live이다.

칠판의 대체제를 TV로, 분필의 대체제를 각자의 통신기기로 한 것이다.

api를 구성하고, 웹페이지를 구성하고, TV 클라이언트를 만드는 것은 그닥 어렵지 않았다.

이전에 dimitimes.github.io를 운영하며 api도 많이 만들어보았고, 웹페이지 역시 매우 많이 만들어보았으며, TV 클라이언트는 웹페이지로 앱을 대신하면 되었기에, 개발에 관해서는 막히는 부분이 딱히 많진 않았다.

하지만 문제는 우리 반에서만 서비스하던 것을 선생님들의 요청으로 1학년 대부분의 반에 적용해달라는 것이었다.

처음 든 기분은 “행복함”이었다.

내가 만든 서비스가 많은 이들에게 전해지고, 많은 이들이 사용할 수 있게 되는 것이 나는 너무 좋았다.

하지만 대부분의 반에 서비스하기 위해 준비하던 과정에 나에게 떠오른 것이 하나 있다.

바로 “부정사용자”이다.

사이트 내에 있는 api를 탈취하여 부정적으로 이용하고, 인가되지 않은 서비스를 만들어 배포하며, DDoS는 기본으로 하는 그들 말이다.

나는 처음에 “어떻게 하면 api 탈취를 막을까?”만 생각하고 있었다.

인가되지 않은 서비스를 만들어 배포하는 것만을 생각하고 있었던 것이다.

다행히 api 탈취는 여러 전문적인 친구들과 지인분들과 함께 보안 테스트까지 진행하며 어떻게 막았다.

하지만 문제는 DDoS와 TV 클라이언트였다.

TV 클라이언트는 우리가 지속적으로 새로고침해줄 수 없는 특징 때문에, 10초를 주기로 자동으로 api 요청을 통해 자습 정보를 불러온다.

이러면 api 요청이 매우 많은데, 뭐 대부분의 반의 TV정도를 지원하기에는 무리가 없었다.

하지만 이 TV 클라이언트를 다른 친구들이 여러 기기에서 접속해서 사용하면, 그 api의 사용량은 서버가 감당하지 못할 것 같은 것이다.

그래서 나는 정말 많은 고민을 통해 “선 접속 후 인증” 방법을 사용했다.

각 반의 인원관리담당 친구들이 TV에 TV 클라이언트 페이지를 띄워두고 카톡을 통해 승인을 요청하면 내가 승인해주는 방식이다.

처음에는 잘 운영되는 듯 했지만, 점점 사용하다보니 TV 인증이 잘 되지 않는다는 친구들도 있었고, 너무 불편하다는 친구들도 많았다.

그래서 나는 어떻게 해야 할까 고민하던 중, Cloudflare가 생각났다.

그래서 TV 클라이언트의 인증 문제도 Cloudflare를 통해 TV에서만 접근이 되고, 다른 기기에서 접근하면 1020 에러가 뜨도록 하여 이것도 어떻게 해결했다.

하지만 문제는 또 일어났다.

바로 “접근성”이다.

칠판에 쓰는 것보다 더 번거롭다는 학생들이 나타나기 시작한 것이다.

하지만 이 문제를 해결하는 것은 생각보다 어렵지 않았다.

카카오톡 채널 챗봇을 통해 자습 현황을 등록할 수 있도록 하니, 접근성이 많이 개선된 것이다.

이걸 해결하고 나니, 또또또 나온 문제가 있었다.

이번에는 “디자인”이다.

먼저, Yaza.live에 디자인해야 하는 부분은 Yaza.live 사이트, TV 클라이언트 두 부분이다.

그 중에서도 크게 문제가 된 부분은 TV 클라이언트이다.

TV 클라이언트는 TV라는 특성 상, 교실에 있는 학생과 순찰하시는 선생님들께 잘 보이도록 디자인되어야 하는데, 글자를 크게 하면 TV 밖으로 튀어나오고, 글자를 작게 하면 안보이는 것이 문제였다.

그래서 지금까지 Yaza.live와 TV 클라이언트는 각각 3번씩의 디자인 개편이 있었다.

TV 클라이언트는 처음에 학번과 이름을 가로로 길게 나열했었고, 두번째 개편때는 뉴모피즘 디자인을 적용하여 세로로 번호와 이름을 나열했고, 이번에 적용된 세번째 개편때는 플랫 디자인을 적용하여 세로로 번호와 이름을 나열했다.

이것으로 지금은 어느정도 괜찮은 디자인이 적용되어 문제가 해결되었다.

처음에는 디자인으로 인해 사용자들에게 굉장히 충고와 비판을 많이 들었었는데, 이 때 내 친구들이 도와주어 좋은 디자인이 적용되도록 도와주었다.

사실 상 지금 Yaza.live의 모든 디자인은 다른 친구들이 디자인해주었다.

그리고 보안도 내 친구들이 정말 많이 도와주고 테스트해주었고, 내 지인분들도 도와주셔서 잘 해결된 것 같다.

이번에 Yaza.live를 운영하면서 친구들과 주변 지인분들에게 정말 감사함을 많이 느꼈고, 유지보수와 운영의 힘듦을 느꼈다.

하지만 힘들어도 나는 이번에 운영함으로써 많은 “행복”을 느꼈고, 많이 성장했기에, 앞으로도 열심히 많은 업데이트를 통해 열심히 유지보수하고 운영하겠다.

디자인 다 해준 박찬* 김기* 그리고 보안 분야에서 많이 도와준 선린 친구들 모두 정말 고맙고 감사합니다!


본 Note를 공유하시려면?

여기를 눌러 링크 복사