컴퓨터 사용 시간을 추적하고 분석할 수 있는 서비스
고등학생 시절, 컴퓨터 사용 시간을 추적하고 분석할 수 있는 서비스를 개발하기로 결심함.
고등학생 시절, 저는 컴퓨터 게임에 몰두하며 시간을 보내는 일이 잦았습니다. 게임에 빠져 지내다 보니 컴퓨터를 얼마나 사용하고 있는지에 대한 궁금증이 생겼습니다. 단순히 사용 시간을 확인하기보다는 사용 패턴을 체계적으로 추적하고 분석할 수 있는 방법을 찾고자 했습니다.
그래서 컴퓨터 이용 시간을 추적하고 분석할 수 있는 서비스를 직접 만들어보기로 결심했습니다. 단순한 기록을 넘어서, 사용 패턴을 파악하고 시각적으로 분석할 수 있는 도구를 구현하고 싶었습니다. 이 아이디어는 제가 학교에서 마침 진행하던 자율 주제 탐구 활동의 주제로도 적합하다는 생각이 들었습니다.
그렇게 해서 저는 이 프로젝트를 통해 실질적으로 컴퓨터 사용 시간을 측정하고, 이를 기반으로 유용한 데이터를 제공할 수 있는 서비스를 개발하기로 했습니다.
서비스 구현이 처음에는 막막했으나, 웹 기술로 네이티브 앱을 만들 수 있게 해주는 Electron을 이용해 개발을 순조롭게 진행함.
처음에는 어떻게 서비스를 구현할지 막막했습니다. 사용자의 PC 사용 정보를 수집하려면 네이티브 앱을 만들어야 했는데, 저는 웹 개발 이외의 개발은 경험해본 적이 없기 때문입니다.
Electron 로고
그러나 웹 페이지로 네이티브 앱을 개발할 수 있는 Electron이라는 프레임워크를 알게 되었습니다. Electron을 이용하면 웹 기술을 활용하여 네이티브 앱을 만들 수 있습니다. 웹 페이지 개발에는 익숙했던 저는 Electron을 통해 네이티브 앱을 개발하기로 했습니다.
Electron을 사용한 개발은 예상보다 쉽고 빠르게 진행되었습니다. 대부분의 작업이 익숙한 웹 개발 과정의 연속이었습니다. 네이티브 앱에서 구현할 기능은 단순히 1분마다 컴퓨터 사용 데이터를 서버로 전송하는 것이었습니다. Chart.js 라이브러리를 사용하여 차트도 손쉽게 만들 수 있었습니다.
웹 페이지를 통해 사용자들이 자신의 컴퓨터 이용 현황을 열람할 수 있도록 하여, 플랫폼에 구분 없이 통계를 확인할 수 있게 했습니다. Electron의 장점 중 하나는 웹 페이지와 네이티브 앱을 동시에 개발할 수 있다는 점이었습니다. 이를 통해 크로스 플랫폼 개발의 장점을 느낄 수 있었습니다.
서버는 PHP로 개발했습니다. 서버에서는 데이터베이스의 업데이트와 조회를 담당했습니다. 개인의 컴퓨터 사용 데이터는 민감한 데이터이기 때문에 평문으로 저장하지 않고 사용자의 계정 비밀번호를 이용해 암호화했습니다. 양방향 암호화 알고리즘으로 AES-256을 채택하여 데이터를 암호화한 후 저장하고, 필요한 경우 복호화할 수 있도록 했습니다.
컴퓨터 사용을 추적하고 기록하여 웹 페이지에서 통계를 제공하며, 사용 시간이 초과하면 격려 문구를 띄우고, 사용자가 통계를 커스터마이징할 수 있는 기능을 갖춘 앱 ‘트랙터’를 완성함.