안녕하세요, 재미있고 행복한 일을 만드는 개발자 라스톤입니다!
오늘은 설문조사 현황을 항상 볼 수 있는 사이트를 만들어보았는데요, URL 주소 하나로 300개가 넘는 설문조사 현황을 계속 추적할 수 있는 사이트입니다. 이 과정은 웹 사이트, 서버, 배치 프로그램을 활용해서 만들었습니다! 그리고 제작 과정이 프론트+서버 개발을 궁금해하시는 다른 분들께 도움이 될 것 같아 글로 남겨볼까 해요!
(코드가 궁금하시면 Github에 들어오시면 됩니다)
어쩌다가 만들게 되었는지?
설문조사를 하면 위에 사진처럼 답변 건수 및 결과 확인 등을 통해서 자세한 설문조사 결과를 확인할 수 있는데,
갑자기 300개가 넘는 설문조사마다 몇 명이 응답했는지 체크해야 할 일이 생겼습니다. 그리고 혼자만 해당 설문조사를 보는 게 아니라,
300개가 넘는 지점에서 각 지점별 설문조사를 확인했어야 했어요.
그리고 해당 계정은 관리자 계정이기 때문에 지점에 계신 분이 자신의 지점에 대한 설문조사를 확인할 수 없었던 구조였습니다.
설문조사의 기간은 2주가 넘었고, 설문조사 기간동안 지점 별로 굉장히 많은 요청을 받을 게 눈에 보였습니다!
예를 들어, 다음과 같이 요청이 들어올 수도 있었어요.
하루 동안의 요청(예상 수치는 하루에 약 100~200번 정도 였습니다)
01:34 - 16번 설문조사를 몇 명이 참여했는지 알려줘
02:28 - 19번~20번 설문조사를 몇 명이 참여했는지 알려줘
05:50 - 68번 설문조사 현황을 알려줘
10:30 - 8번 설문조사 현황을 알려줘
.
.
.
22:30 - 오늘 설문조사 현황을 다 정리해줘
현재의 상황에서는 해당 요청들을 전부 다 사람이 확인해야 했습니다.
그래서 설문조사 정보를 웹 사이트로 나타내면 훨씬 효율적이고 시간을 절약할 수 있을 것이라 생각했어요.
(이러한 요청들을 제 지인이 전화 받고 처리했어야 했고,
하루에 100~200통의 전화를 받는다는 건 업무를 하면서 정말 쉽지 않죠..ㅠㅠ 어떻게든 해결하고 싶었습니다)
그렇게, 궁금한 설문조사가 있다면 직접 찾아볼 수 있는 설문조사 현황 사이트를 만들게 되었어요.
어떻게 만드는가?
처음에 구상했던 프로그램 동작 방식입니다! 간단하게 정리하면 HTML로 이루어진 웹 사이트가 있고,
데이터를 만드는 배치 프로그램이 데이터를 10분마다 업데이트한 뒤, 서버가 데이터를 모아서 웹 사이트로 넘겨주는 방식입니다.
이렇게 되면, 사용자들은 실시간 까지는 아니지만 10분마다 업데이트 되는 데이터를 URL를 통해 계속 볼 수 있습니다.
용어 정리!
서버(server) : 사용자들의 요청들을 받고 처리하는 역할을 하는 컴퓨터
배치 프로그램(batch) : 특정 시간마다 실행되는 프로그램. 데이터 수집을 배치 프로그램으로 만들었습니다.
HTML : 기본적인 웹 사이트를 이루는 언어.
URL : 특정 웹사이트를 들어가기 위한 인터넷 주소. (ex, https://google.co.kr)
Vue : 웹 사이트를 좀 더 생동감 있고, 효율적으로 만들 수 있는 프레임워크.
Flask : 서버를 쉽게 만들 수 있는 Python 기반 프레임워크.
Nginx : 외부에서 들어온 요청을 내부의 프로그램이 받을 수 있도록 네트워크 처리를 해주는 도구
Python : 다양한 기능들을 내장하고 있는 인터프리터 방식 프로그래밍 언어. (한 줄씩 코드를 해석하고 실행해주는 방식으로 동작합니다.)
Amazon-web-services(aws) : 클라우드 방식으로 컴퓨터 자원 및 기능들을 제공하는 서비스.
aws-ec2 : 컴퓨터를 쉽게 만들어주는 서비스입니다. Linux 운영체제 기반으로 사용했습니다.
aws-rds : 데이터베이스를 쉽게 만들어주는 서비스입니다. Postgresql를 사용했습니다.
프레임워크(Framework) : 여러 기능들을 많이 가지고 있어, 쉽게 개발할 수 있도록 만들어진 도구 모음.
여기서 개발을 좋아하시는 분이라면 전반적인 이해가 되셨을 것이라 생각이 드는데요,
이번 포스트에선 데이터 흐름과 결과 페이지를 보여드릴게요!
그리고 각 구성요소들 별로 어떻게 개발을 진행했는지는 다음 포스트에서 말씀드리겠습니다.
데이터 흐름
데이터가 어떻게 흐르고 사용자들에게 보이는 지 흐름을 적어본 거에요.
제가 만든 설문조사 사이트는 총 7개 단계로 데이터가 흐릅니다! 사용자들은 이 과정을 통해서 설문조사 데이터를 보게 돼요.
- 사용자(User)가 웹 사이트에 들어온다.
- 웹 사이트에서 서버에게 설문조사 데이터를 달라고 요청한다.
- 서버는 데이터베이스에 적재되어 있는 설문조사 데이터를 가져온다.
- 가져온 데이터를 가공하여 웹 사이트로 설문조사 데이터를 전달한다.
- 웹 사이트는 받은 데이터를 지정된 스타일에 맞게 나타내준다.
- 사용자는 보기 좋게 만들어진 데이터를 보면서 원하는 정보를 찾게 된다.
- 배치 프로그램은 10분마다 설문조사 사이트에서 정보를 얻어와 데이터베이스에 데이터를 적재한다.
결과 페이지
어떻게 보면 간단한 형태의 표인데요, 각 설문조사들마다 몇 명이 설문조사를 진행했는지 바로 알 수 있는 페이지입니다!
간단한 검색 기능도 구현을 해서 사용자들은 자신이 원하는 설문조사 결과를 볼 수 있어요.
(총 300개 가까이 설문조사 데이터가 한 눈에 보입니다)
단순한 웹 사이트에 얼마나 많은 요청이 있는지 확인해보니, 평균적으로 하루 150번 정도 웹 사이트 요청이 있었고,
설문조사 마지막 날에는 330건 정도의 요청이 발생했습니다! 만약 이 사이트가 없었더라면, 제 지인이 하루에 150번 정도
전화를 받았을 것이고, 마지막 날에는 330건 정도 전화를 받았을 거에요.
이 사이트 덕분에 전화 요청을 했을 사람도, 지인도 시간을 절약할 수 있었습니다!
느낀 점
지금까지 여러 개발을 해봤었는데, 사람들이 사용하는 서비스를 만드는 게 흥미도 있고 재밌다는 것을 배웠어요.
역시 기술은 사람들이 써야 조금 더 빛을 발할 수 있는 듯 해요. 그리고 사람들의 시간을 세이브할 수 있는 사이트를 만들었던 것이 매우 뿌듯했습니다.
왜냐하면, 시간은 항상 소중하다고 생각하기 때문이에요. 효율을 추구하기 때문에 반복작업을 없앴다는 거에 큰 의의를 두었고, 목표를 이루어서 좋았습니다.
또한, 개발 한 것 중에 이 간단한 사이트 만큼 트래픽이 나왔던 적은 없었던 것 같아요.
개발 기간도 짧았고, 큰 기술이 들어간 것도 아닌데 말이죠.
어떻게 보면, 사람들이 필요한 것을 개발하는 것이 더 중요한 것이라고 생각하게 되었습니다. 앞으로는 더 많은 사람들이 쓸 수 있는 것들을 개발하고 싶네요.
긴 글 읽어주셔서 감사드리고, 자세한 개발 과정은 다음 포스트에 적어볼게요!
'실행하기' 카테고리의 다른 글
서버와 배치 프로그램을 활용한 간단한 설문조사 현황 사이트 제작하기(2) (0) | 2023.03.12 |
---|