Skip to content
Park Sang Shin edited this page Jan 20, 2021 · 3 revisions

버전 1.0.0 ~ 1.5.1

개요

공부할 때 얼마나 효율적으로 하고 있는지 체크하고 싶었습니다. 또 미리 목표를 정하고 수행하는 방식으로 공부 효율을 높이고 싶었습니다. 기존에는 스터디플래너에 손으로 적으면서 했는데 보통 노트북을 활용해 공부를 많이하고, 노트에 기록이 되면 데이터가 영구적이지 않고, 노트를 휴대해야하고, 손으로 쓰는 시간이 오래걸린다는 단점이 있었습니다. 그래서 공부하는동안 시간을 체크해주는 프로그램을 실행시켜두고 공부 시작, 종료시에만 명령어를 주면 시간을 체크해주는 프로그램을 만들기로 했습니다.

개발 기간

18년 4월 ~ 18년 5월

사용한 기술

언어 : C++

  • 당시 가장 자신있는 언어가 C++였습니다.

DB : MySQL

  • 기존에는 생성된 결과를 txt파일로 저장하고 있었는데 역시 영구적으로 저장하기엔 한계가 있다고 생각했습니다. 그래서 DB라는 기술을 알게 되었고 그 중 가장 유명하고, C++로 개발이 가능한 MySQL을 사용했습니다.

동작

  1. 프로그램(.exe) 을 실행한다.
  2. 지금 하려고 하는 공부의 제목, 오늘 계획을 적는다
    • 내부적으로 오늘 날짜, 시작 시간을 기록한다.
  3. 잠시 쉬고 싶을 때 중단 명령어를 입력한다
    • 중단 입력이 들어오면 중단 이유를 입력한다.
    • 중단 입력이 완료되면 시작시간~중단시간까지 프로그램이 내부적으로 기록한다.
  4. 공부가 끝났으면 프로그램 종료명령을 입력한다.
    • 종료 명령을 입력하면 기록된 내용을 로컬 mysql DB에 저장한다.

Output - 프로그램 종료 시 생성되는 데이터

image

source code

https://github.com/pkiop/StudyHelper/blob/master/_main.cpp

결과

데이터 유지

  • 프로그램을 명령어로 종료시키지 않고 PC를 종료시키거나 프로그램의 X버튼을 눌러 강제종료 시켰다면 기록했던 데이터가 날아갔습니다
  • 텍스트로 output을 냈었던 한 달치는 google drive에 저장해두어 데이터가 남아있었습니다.
  • DB저장 버전 update후 로컬 DB에 저장해 두었던 18년 7월부터의 데이터는 노트북을 바꾸면서 사라졌습니다. 😢

기능 추가가 매우 힘듬

프로그램을 개발하고 2달 정도 사용하다가 수정하고 싶은 기능이 있을 때 수정하려 하면 별로 길지 않은 코드도 너무 변수명이 난잡하고 모듈화가 안되어있어(소스코드 하나에 모든 코드가 들어있음) 다시 코드를 읽기가 매우 불편했습니다.

시각화의 필요성

오늘 몇시간이나 효율적으로 사용했는지, 몇시간 비효율적으로 사용했는지에 대한 정보를 쉽게 알 수 있다는 것 만으로도 큰 효용이었지만 인간의 욕심은 끝이 없기에 추가하고 싶은 기능이 점점 생겼습니다.

그중 가장 추가하고 싶었던 것은 하루 기록했던 걸 시각화해서 언제 뭘 했는지가 한눈에 들어올 수 있게 하고 싶었습니다.

이렇게 어떤 시간에 많이 공부하고 어떤 시간에 노는지 한눈에 보고 싶었습니다.

v2.0.0으로 update(거의 새로개발)

위와 같은 불편한 점을 개선하기 위해 v2.0.0으로 update 했습니다 v2.0.0 wiki link

Clone this wiki locally