티스토리 뷰

 

특별 기획 홈프로젝트 1탄! 

Python으로 뽀모도로 타이머 만들기

 

일단 거창하게 홈프로젝트라는 기획 명으로 콘텐츠를 만들어 보았다. 사실 별건 아니고, 그냥 평소에 "이런 게 있었으면 좋았을 텐데." 했던 것을 직접 만들어 보면서 그 과정을 블로그에 포스팅할 것이다.

 

자, 그럼 시작해볼까?

 

 

뽀모도로 타이머라고 하면, 이름조차 다소 생소한 사람들이 많을 것이다. 내가 시간 관리 기법의 하나인 뽀모도로 타이머를 처음 알게 된 것은 대학원에서 공부하던 시절이었다. 당시에 나는 주어진 시간을 어떻게 하면 효율적으로 쓸 수 있을까 하는 생각으로 여러 가지 시간 관리 기법을 닥치는 대로 사용해보고 있었다. 그중에 몇 가지는 지금까지도 사용하고 있는데, 대표적으로 GTD(Getting Things Done)와 OneNote로 정리하기, 그리고 오늘 포스팅할 뽀모도로 타이머가 있겠다.

 

여기서는 다른 시간 관리 기법에 대해서는 설명하지 않으려고 한다. 아마 조금만 검색해봐도 관련된 내용이 우르르 쏟아질 듯하다. 

 

대신 귀여운 토마토 하나 드리겠습니다.

 

뽀모도로 타이머의 유래를 살펴보면, 사실 별다를게 없다.

뽀모도로란, 이탈리아 말로 토마토를 뜻하고, 뽀모도로 타이머는 주방에서 조리 시간을 재는 용도로 사용되는 토마토 모양의 타이머를 말한다. 이 주방용 타이머인 뽀모도로 타이머를 일 할 때 집중하는 시간쉬는 시간을 나누는 용도로 사용해야겠다는 발상을 한 것이 이 아이디어의 핵심이다. 사실 단순한 적용이지만, 새로운 방법론이나 아이디어는 이런 식으로 시작되는 경우가 종종 있다. 뽀모도로 시간 관리 방법론의 창시자인 프란체스코 시릴로는 관찰력과 응용력이 참 뛰어난 사람이었던 것 같다. 누군가는 그냥 지나쳤을 주변 사물로부터 아이디어를 얻고, 지금까지도 널리 사용되는 시간 관리 기법을 개발해낸 것을 보면 말이다.

 

뽀모도로 시간 관리법은 어렵지 않다. 간단히 설명해보자면,

 

1. 25분 일하고 5분 쉰다.

2. 4번 주기 돌면, 길게 쉰다. (30분*4주기 다음에 긴 휴식)

 

그림으로 살펴보면, 아래와 같다.

 

참 쉽죠?

 

25분이라는 시간이 어떻게 보면 굉장히 짧게 느껴질 수도 있지만, 쉬지 않고 업무만 하다 보면 은근히 빡빡하다는 것을 느낄 수 있을 것이다. 그리고 쉬는 시간 5분은 체감상 1분처럼 느껴진다. 나만 그런 걸까?

 

시간의 상대성 이론. 주말이 더 빠르게 지나가듯, 쉬는 시간 5분도 1분처럼 지나가곤 한다.

 

어찌 됐건 경험상, 뽀모도로 타이머를 사용하면 확실히 업무 몰입도가 높아진다. 더 집중이 잘 된다고나 할까? 단순히 시간 하나 맞췄을 뿐인데, 마치 제한 시간 안에 문제를 푸는 것처럼 집중해서 시간을 보내게 된다.

 

 

 

좋다. 좋단 말이야.

 

뽀모도로 타이머가 좋다는 건 이제 알겠는데, 시중에 나와 있는 어플리케이션도 많을 텐데. 굳이 왜 만들려고 하는 걸까? 분명히 이런 의문을 가지고 있는 독자분들이 있을 것 같다.

 

이제까지 내가 사용했던 뽀모도로 타이머 프로그램은

 

1. 모바일용 어플리케이션

2. 크롬 확장 프로그램

 

이렇게 두 종류가 있었다.

 

일단 모바일용은 짧게 쓰다가 바로 크롬으로 갈아탔는데, 가장 큰 이유는 배터리와 번인(Burn-in) 문제였다. 어플리케이션을 일할 때에는 계속 돌려놔야 했는데, 항상 충전해놓고 사용하더라도 디스플레이는 항상 켜져 있어야 한다. 이게 시각적인 효과를 무시 못해서 단순히 알람을 맞춰 놓는 방식으로는 효과가 떨어지기 때문이다. 이렇게 계속 사용했다가는 디스플레이에 토마토 무늬를 달고 다니게 될 수도 있었기에 깔끔하게 삭제!

 

크롬 확장 프로그램은 꽤 오래 사용했는데, 가장 맘에 들었던 프로그램이 스토어에서 사라져버렸다. 울며 겨자 먹기로 다른 것들도 사용해보았지만, 영 맘에 들지 않는다. 예전에 사용하던 앱은 task도 일일이 지정할 수가 있었고, UI도 깔끔해서 맘에 들었었는데 아쉬울 따름이다. 다만 한 가지 부족했던 점은 로그를 기록해주는 기능이 있지만, 내 컴퓨터와 연동이 잘 안 되는 지 데이터가 누적되지 않았다는 것 정도? 

 

크롬 앱 스토어에 ppomoddoro timer를 검색하면 다양한 확장 프로그램을 다운로드 할 수 있다.

 

 

"답답하면 니들이 뛰던가."

라는 Ki 전 국가대표 주장님의 말씀처럼 답답해서 직접 만들어야겠다는 결론이 섰다. 

 

군더더기 없이 필요한 기능만 넣어서 한 번 만들어 보려고 한다. 앞으로 필요 기능들이 더 추가될 수도 있지만, 일단 생각해본 것들은 아래와 같다.

 

1. 로그를 매일 기록하고, 나중에 리포트로 뽑아볼 수 있어야 함

2. 루틴이 끝나면, 자동으로 재시작 될지 아니면 멈출지 옵션으로 설정 가능

3. 일 할 시간과 쉬는 시간을 사용자가 커스터마이징 할 수 있음

4. 일시 정지, 정지, 리셋 기능 등이 있어야 함

5. 직관적으로 보기 편한 디자인으로 만들 것

 

 

 

시중에는 다양한 개발 프로그램 및 프로그래밍 언어가 있지만, 여기서는 python을 사용해서 프로그램을 짜려고 한다. 다른 이유는 차치하고, 일단 배워보고 싶어서라는 게 가장 큰 이유이다. 솔직히 python이 최근 주목받고 있는 언어이기도 하거니와, GUI 관련된 오픈 소스와 라이브러리들이 잘 되어 있어서 이참에 배워보자는 심산이다. 이 전까지 깔짝대면서 책 보고 몇 줄 타이핑해본게 전부라서 조금 두렵긴 하지만 어떻게든 될 거라는게 솔직한 마음이다.

 

티오베(TIOBE)에서 프로그래밍 언어별 인기도 순위를 매달 공개하는데, Python은 항상 상위권에 자리 잡고 있다. 아무래도 초보자도 사용하기 쉽고, 범용성이 좋고 커뮤니티가 잘 구축되어 있어 정보가 많다는 점이 그 이유일 것이다.

 

회사에서는 스크립트 언어로 Perl을 사용하고 있기 때문에, Python까지 잘 다룰 수 있으면 이도류를 든 것처럼 든든할 것 같다는 생각이 든다. 

 

이도류하면 이 형님이지! 넌 아직 준비가 안 됐다! 

 

일단 저지르자. 

칼을 뽑았으니 무라도 자를 수 있도록!

 

 

댓글
공지사항