[인프런 인터뷰] 코로나 라이브 서비스의 시작과 끝

[인프런 인터뷰] 코로나 라이브 서비스의 시작과 끝


2022년 5월 16일
, 21개월 동안 서비스되었던
코로나 라이브가 종료되었어요.

ⓒ코로나 라이브


누적 조회수 8억

사용자 수 3,000만 명
기부금 중 남은 4,100여만 원 전액 기부라는
놀라운 결과물을 낳았죠.

💻💁‍♂️📊

핸드폰을 열면 바로 확인할 수 있었던 실시간 코로나 확진자 수,
많은 분이 편하게 보시며 큰 도움을 받으셨을 텐데요.
그 뒤에는 한 사람의 끊임없는 열정과 노력이 있었습니다.

사람들에게 긍정적인 영향력을 끼치는
사이드 프로젝트에 관심이 많은 분이라면 주목!

코로나 라이브를 처음부터 끝까지 혼자 만들고 관리했던
홍준서 님의 인터뷰를 놓치지 마세요.


간단한 소개 부탁드립니다.

안녕하세요, 프론트엔드 개발자 홍준서라고 합니다.
코로나라이브 서비스를 21개월간 이끌어오다, 이번에 종료하게 되었어요.

 

어떻게 처음 개발을 접하게 되셨나요?

중학생 때 아버지께서 IT에 관심을 가져보라고 말씀해주셨어요. 마침 고등학교 2학년 때 중국어 점수가 안 좋아서 과목을 변경해야 했는데, 선택지 중 IT가 있어서 고르게 되며 처음 개발이란 것을 접하게 되었어요. 간단한 언어를 배웠고, 이를 통해 게임을 만들었는데 재미있어서 흥미가 생겼던 기억이 나요.

 

본격적인 개발 공부는 어떻게 시작하게 되셨나요?

고등학교 졸업 후 방학부터 HTML/CSS와 jQuery 기본기를 띄엄띄엄 공부하다가 대학교 1학년 중반 쯤에 인턴을 구해봤어요. 인턴 면접을 보며 리액트의 중요성을 깨닫고 대학생 때부터 직접 찾아서 공부해보며 배워나갔던 것 같아요. 유튜브에서 리액트 관련 튜토리얼을 많이 찾아 봤고 제가 제일 이해하기 쉽게 설명해주는 채널을 찾은 후로는 그 채널의 영상들만 한동안 반복해서 봤어요. 주로 리액트, 리덕스 그리고 서버까지 이용해서 프로젝트를 만드는 MERN 스택 같은 튜토리얼을 봤던 걸로 기억해요.

 

그렇다면 여기서 밸런스 게임 갑니다. 리코일, 리덕스, 몹엑스, 조타이 중 준서 님의 선택은?

리코일이요! 초반에는 리덕스를 배우려고 했었다가, 너무 어려워서 포기했어요. 리코일은 그 동안 자주 사용해봤고, 나머지 2개는 별로 안 써봤는데 저 4개 중에는 비교적 리코일이 저에게 가장 사용하기 쉬운 라이브러리였어요.

 

그러면 자연스럽게 프론트엔드 개발자가 되신 거네요?

이전부터 만든 걸 직접 볼 수 있다는 점 때문에 프론트엔드 개발자가 더 맞는다고 생각했어요. 서버도 시도해보긴 했지만, 화면상에 개발을 통해 변경된 사항 등이 눈에 바로바로 보이지 않는다는 점 때문에 프론트엔드 개발자가 되었죠.

 

컴퓨터공학과에서 배우는 내용들은 실무와는 거리가 있는 편인가요?

아무래도 약간은 거리가 있죠. 저는 JAVA, C언어, 파이썬을 먼저 배웠었는데 처음부터 실무를 알려주면 좋겠다고 생각했어요. 데이터베이스에 대해 배운 적도 있지만 실제로 데이터베이스를 이용한 게 아니라 이론만 배운 거라서 도움이 된 건 별로 없었어요. 실무나 프로젝트도 함께 진행했으면 좋았을 것 같은데 그렇지 않아 아쉬웠어요.


코로나 라이브 프로젝트를 시작하게 된 계기는 무엇인가요?

2020년 2월에 나온 코로나맵을 보고 제가 추가하고 싶은 기능을 넣어서 바로 코로나맵 라이브를 만들게 되었어요. 추가된 기능은 더 자세한 확진자 정보, 4개 국어 지원, 현재 위치 기준 확진 방문 장소 등이었어요. 사실, 2월 말에 코로나 라이브가 탄생하기는 했는데 초반에는 코로나 관련 뉴스만 실시간으로 제공했었어요. 이 시기에는 매일 밥 먹을 때마다 다양한 사이트를 보면서 디자인을 보는 감각을 키우고 개발도 공부하면서 계속 기능과 디자인을 개선했어요.
코로나맵 라이브가 동선 위주의 정보를 보여주는 건데 이 동선 정보의 중요성이 떨어지고 이용자가 3월부터 점점 감소했어요. 저조차도 별로 궁금하지 않은 정보가 되어서, 사람들이 정말 필요로 하고 궁금해하시는 모든 코로나 정보가 모여있는 사이트를 만들어야겠다는 생각을 7월부터 하기 시작했어요. 그리고 8월에 재난 문자를 취합해서 실시간 확진자 수를 집계할 수 있다는 아이디어가 생각나서, 코로나 관련 모든 데이터를 보여주고 실시간 확진자 수를 제공하는 코로나 라이브를 만들게 되었어요.

 

어떤 기술 스택으로 제작하신 걸까요?

프론트는 React, Typescript, D3를 사용하고 집계와 데이터를 긁어오는 백단은 Puppeteer를 사용했어요. 처음에는 비용을 줄이려고 깃헙 페이지스를 호스팅 겸 데이터베이스 겸으로 사용했다가 트래픽이 많아지니 깃헙 페이지스가 먹통이 되어 S3를 데이터베이스로 이용했고 호스팅은 Netlify을 이용했는데, 며칠 돌렸더니 Netlify에서 몇백만 원 비용이 나왔어요.

 

와, 정말 돈이 많이 들었겠어요. 그 이후로는 어떻게 진행하셨을까요?

비용이 너무 많이 나와서 검색해보니 S3와 CloudFlare에 올리면 비용이 많이 안 나올 거라는 정보를 얻어서 S3로 갈아타게 되었어요. 실제로도 비용이 많이 나오지 않았고요. 그렇게 S3와 CloudFlare를 쓰니까 프론트 호스팅 비용은 거의 안 들었던 것 같아요. 데이터를 긁어오는 서버는 GCP (구글 클라우드 플랫폼)를 쓰니 한 달에 10만 원대로 나왔고 S3에서는 데이터 전송량이 많아서 대부분의 서버 비용은 여기서 나왔어요.

 

그렇다면 혹시 전체 비용은 어느 정도였을까요?

제일 많이 나올 때는 월에 300만 원 정도였어요. 이 부분은 정말 감사하게도 많은 분들이 전해주신 후원금으로 충당할 수 있었어요. 호스팅 비용은 아예 없었고, 네트워크비만 냈었어요. 정확한 금액은 모르겠지만, 대략 21개월간 월 200만 원씩 잡으면 4-5천만 원 정도의 비용이 발생했다고 보면 될 것 같아요.
코로나 라이브가 실시간성이라서, 소켓으로 처리하면 서버 비용이 훨씬 더 많이 나왔을 것 같은데 S3로 하다 보니 5초마다 Polling을 했었어요. Polling 간격을 더 늘리면 서버 비용을 살짝 더 감소시킬 수 있었을 것 같아요.

 

서비스를 혼자 만드셨다고 들었어요. 어떤 플로우로 이루어졌나요?

초반에는 재난 문자 포털 사이트에서 1분마다 자동으로 확인하고, 새로운 재난 문자가 있으면 가공해서 만들어 둔 어드민에 업데이트를 했어요. 또, 해당 재난 문자의 각 지자체 사이트나 블로그, SNS 등을 통해 확진자 수를 확인해서 수동으로 입력한 다음 업데이트했어요. 재난 문자에 나온 확진자 수가 전부 당일 확진이 아닌 경우도 있어 이렇게 수동으로 한 번 더 확인했었거든요. 그렇게 슬랙과 연동시켜두고 재난 문자가 오면 바로 슬랙에서 뜰 수 있게 만들어두었어요.

 

바로 적용해야 하는 만큼, 쉬는 시간이나 집 밖을 나가는 시간이 없었을 것 같아요.

개발, 운영, 자동화, 집계 등을 동시에 하다 보니 집에만 있었어요. 집계 시간은 아침 9시부터 저녁 11시까지 14시간 동안 라이브 했었는데, 어차피 개발하고 있을 시간이니까 집 밖으로 안 나가고 슬랙 울리면 바로 어드민을 켜서 적용하고 그랬었네요. 샤워할 때도, 밥 먹을 때도 어김없이 알림이 울리면 핸드폰으로도 어드민에 들어가서 입력했어요.

 

하루에 14시간을 5분 대기조로 개발을 진행한 셈인데, 어떠셨나요?

자고 일어나면 의무처럼 일상에서 개발을 반복했어요. 거의 감정이 없다시피 한 상태였죠. (웃음)
나중에 정신을 차리고 보니 몇 달이 훌쩍 지나가 버렸더라고요. 자동화 전까지는 이런 생활이 4~5개월 정도 주 7일 내내 반복되었고, 자동화 이후에는 많이 안정화가 되긴 했지만 장애가 발생하면 계속 개발을 진행했어요.
가장 많이 집계되었을 때는 250만 명 정도가 이용할 정도로 정말 많은 분이 이용했었던 서비스라, 편리하고 정확한 서비스를 제공해야 한다는 책임감이 들더라고요.

 

프로젝트를 진행하시면서 가장 보람을 느꼈을 때는 언제인가요?

저는 사실 집에서 개발만 하다 보니 체감을 못 할 때가 많았어요. 수치상으로 많은 이용자가 있다는 건 알았지만 와닿지 않았다고나 할까요. 그런데 제가 마지막에 서비스 종료 공지를 SNS에 올렸을 때 트위터에서 많은 분이 리트윗해주시고 인스타그램에서도 댓글로 감사했다고 많이 달아주셔서 보람을 느꼈어요.


최근 코로나 라이브 서비스가 종료되었죠. 그렇게 결정하시게 된 계기가 무엇일까요?

어차피 평생 할 수 없기 때문에 현실적으로 생각해봤을 때 앞으로도 지속적인 운영을 하는 건 힘들 거라고 생각했어요. 가장 큰 이유는 올해 초부터 지자체 사이트, 재난 문자를 제공하지 않는 곳이 늘어나고 있었고, 거리두기가 해제로 외부 마스크 제한도 해제되어 더더욱 정보가 제공되지 않아 집계에 어려움이 생겼었어요.

 

코로나 라이브 서비스 종료 후의 모습은 어떤가요?

아무래도 매일같이 접속해서 개발하고 애정을 쏟던 게 없어졌으니까 아쉽기도 하지만 한편으로는 신경 쓸 게 없어서 편해졌어요. 코로나 라이브를 진행하는 거의 1년 동안 몸을 움직이지 않다 보니 체력적으로도, 감정적으로도 무기력하고 지친 것도 사실이었거든요.
그래서 프로젝트를 진행해보면서 몸소 느낀 점은 체력을 쌓는 것이 너무나도 중요하다는 거였어요. 10분이라도 시간을 내서 운동이나 산책을 해야겠다고 느꼈어요. 프로젝트 준비하시는 분들도 평소에 체력 관리를 정말 열심히 해놓으시면 좋을 것 같아요. 별거 아니지만 가장 중요한 부분이라고 생각하거든요.

 

후원금을 전액 기부하시기로 하셨다고요. 쉽지 않은 결정이었을 것 같은데 어떻게 결정하게 되신 걸까요?

서비스 초기부터 후원금 중 서버 비용 충당 후 남은 금액은 코로나 관련 단체에 기부할 예정이라고 사이트에 기재되었었어요. 저는 일단 서버 비용 충당이 목적이었고, 금액이 남더라도 기부하면 후원해주신 많은 사용자분도 보람차서 더 뜻깊을 거라고 생각했어요.

 

앞으로 준서 님의 계획이 궁금합니다.

아직 대학교가 2년 남았기 때문에 다시 호주에 가서 대학교를 마치고 싶어요. 일단 다양한 프로젝트나 개발 공부를 더 해보고 싶어요. 많은 분이 새로운 프로젝트에 대해서 여쭤봐 주셨는데, 현재로선 제가 부족한 부분을 채워나가는 데 집중을 하는 게 좋을 것 같다고 판단했어요.

 

맨 처음 개발자가 되고 싶었던 이유를 이 시점에 다시 생각해보면 어떤가요?

저는 한 명이라도 제가 만드는 서비스를 쓰고 도움이 되었으면 좋겠다고 생각했고, 나중에라도 그런 서비스를 만드는 것이 목표였기 때문에 개발자가 되고 싶었던 것 같아요.
코로나 라이브는 많은 분이 사용하셨지만, 사실 계속해서 확진자 수가 뜨면서 사람들로 하여금 불안함을 느끼게 만드는 사이트였잖아요. 저는 이제는 사람들로 하여금 행복함을 느낄 수 있는 사이트를 만들고 싶어요.

 

벌써 마지막 질문이네요. 본인처럼 자신만의 서비스를 출시하고 싶은 분들에게 해주고 싶은 이야기가 있다면요?

제가 2월에 처음 만든 코로나맵 라이브는 서비스되는 6개월 동안 일일 사용자 몇만 명 대에서 몇백 명대로 서서히 사용자 수가 감소했었는데, 그 몇백 명 사용자분께도 감사해서 서비스를 계속 개선하려고 유지했었어요. 당연히 사용자가 더 늘면 좋겠고 이용자가 감소할 때는 침울하기도 했는데, 계속해서 서비스를 개선하려고 노력하니 자연스럽게 실력도 많이 늘었고 사용자의 관점에서 보는 눈도 이전에 비해 늘었어요. 코로나 라이브는 기획, 디자인, 개발 등을 5일 안에 완료해서 배포했었는데, 이는 6개월 동안 코로나맵 라이브를 통해 많은 것을 배운 경험이 있어서 가능했다고 생각해요.
하나씩 차근차근히 준비해보시고, 만든 사이트도 지속적으로 디벨롭시켜보고, 사용자의 입장에서 생각해보면 좋을 것 같아요. 사실 서비스란 건 사용자들이 필요로 하면 지속적으로 찾게 된다고 생각합니다. 만든 서비스가 바로 뜨지 않는다고 하더라도 프로젝트를 진행하면서 배운 것들이 나중에 반드시 여러분들에게 큰 자산이 될 거라고 생각해요. 저 또한 했으니, 여러분도 분명 하실 수 있습니다!

 

댓글 1

댓글을 작성해보세요.

  • 나르비
    나르비

    좋은 서비스 덕분에 코로나 시기를 잘 버틸 수 있었네요. 고맙습니다