규칙적 휴식을 강제하는 작업환경을 꾸며보자
뽀모도로 기법이라는게 있다. 1980년대 프란체스코 시릴로가 제안한 것으로 알려진 이 시간관리법은 25분간 집중해서 일을 한 다음 5분간 휴식을 취하는 것을 반복하면 업무 능률이 오른다는 개념이다. 김명남 작업법이라는 것도 있다. ‘KMN법’, ‘KMN 작업법’, ‘김명남 선생님 법’으로도 알려진 이 규칙은 김명남 번역가가 트위터에서 소개했다가 화제가 된 시간관리법으로, 40분동안 집중해서 일한 뒤 20분을 쉬는 방식이다. 테크업계 여성 모임인 테크페미가 이 개념을 본따 KMNthon 이라는 행사를 열어 화제가 되기도 했다.
이들 시간관리법의 효능은 체험적 간증으로 이미 널리 회자되었는데, 멀리 갈 것 없이 온갖 쇼핑몰에 넘쳐나는 뽀모도로 타이머와 앱스토어에서 판매되는 뽀모도로 타이머, 업무집중 타이머 앱만 보아도 그 기대를 알 수 있다. 일을 잘 쪼개어 짧게 집중하고, 규칙적으로 휴식을 가지며 주의를 환기해야 업무 능률이 오른다는 것이 시간관리법들이 강조하는 부분이다.
하지만 사람의 다짐이라는 것이 늘 그렇듯, 굳은 결심을 했다 하더라도, 심지어 타이머의 알람 소리나 앱의 푸쉬 알람이 요란하게 울린다 하더라도, 무시하는 버튼(=Snooze)만 있으면 어느샌가 다짐이 느슨해지기 마련이었다. 내가 그 경우였는데, 전염병 확산으로 재택근무가 늘어나면서 업무 집중도를 높이기 위해 타이머 앱도 깔아보고 알람시계도 가져다놓아봤지만, 하던 작업을 멈추지 못하고 계속 일을 이어가곤 했다. 프로그래밍 일이라는 것이 20분 단위로 작업을 쪼갠다 하더라도 종종 뜻대로 되지 않을때가 많고, 그럴땐 잠시 쉬어주고서 다시 맑은 정신으로 코드를 읽으면 해법이 보이기도 하겠건만 한번 의자에 앉아버리면 다시 일어나기란 여간 어려운 일이 아니었다. 주기적으로 일어나라고 더 요란한 진동과 잔소리를 쏟아내는 애플워치 알림을 써보기도 했는데 역시 소용이 없었다. 쉼이 없는 작업은 피로로 이어지기 마련이었고, 어떻게든 억지로라도 휴식 시간을 만들어내지 않고서는 업무 효율도 건강도 슬슬 망가지겠다 싶었다.
그래서, 억지로라도 자리에서 일어나지 않으면 안될 환경을 만들어보기로 했다. 작업공간에서 벌떡 일어나지 않으면 안되게 환경을 만드는 것이다. 플라잉체어를 만들수는 없는 노릇이고, 요란한 소음 역시 꺼버릴 수 있는 쉬운 접근성때문에 소용이 없었다. 마침 스마트하다는 스마트조명을 쓰고 있었던 터라, 조명색을 확 바꾸어 방을 벗어나지 않으면 안되게 만들어버릴까? 라는 생각이 떠올라 실천에 옮겨보았다.
준비물
- 스케쥴링 작업을 돌릴 수 있는 적당한 머신
MacOS 또는 Linux가 돌아가는 머신이라면 간단히 cronjob 으로 스케쥴링 작업을 걸어둘 수 있다. 평소 집에서 IoT 용으로 요긴하게 쓰는 라즈베리파이에 이 작업을 맡기기로 했다.
- API 를 제공하는 스마트 전구
나는 작업공간에서 Yeelight 를 쓰고있는데, Philips Hue 처럼 허브를 필요로 하지 않고, 개별 조명만으로도 API 접근이 가능하고, 상대적으로 저렴하고, 휴 싱크처럼 엔터테인먼트 동기화까지는 필요로 하지 않아서 Yeelight 를 구매했었다. 모니터 뒤에 붙여 쓰는 Light Strip 띠 조명과, 방 전체 조명으로 쓰는 Smart LED Bulb 전구, 2개를 사용한다. 어떤 조명이 적합할지는 자신의 작업공간 구조, 벽면 구조, 평소의 조명 구도, 작업공간에서 평소에 무얼 하는지 등을 고려해 고르면 될 것이다. 아래 스크린샷과 코드는 모두 Yeelight 기준이다.
작동 원리
- 평소 방의 조명을 따뜻하고 은은한 색으로 두다가,
- 매 40분마다 온 방을 시뻘건색으로 바꾼다.
- 정각이 되면 다시 원래 색깔로 돌려놓는다.
사전 준비
-
Yeelight 는 여느 스마트 전구가 그렇듯 공식 앱을 통해 와이파이에 연결시키고, API 접근이 가능한 긱 모드를 활성화시킬 수 있다. 긱 모드를 아래와 같이 켜준다,
-
집에서 쓰는 와이파이 공유기에서 Yeelight 의 IP를 고정한다. 그래야 코드로 접근이 가능할 것이다.
코드
- Yeelight API에 접근하는 다양한 라이브러리들이 이미 만들어져있다. Python은 yeelight 패키지가 무난하다. 공식 API 문서를 참조해서 직접 접근해도 괜찮다.
- 나는 아래와 같이 CLI로 sys.argv를 받는 Python 코드를 만들고 setuptools 패키지를 통해 로컬 명령어로 구워버렸다.
# src/yrun.py
from yeelight import Bulb
def do() :
bulb=Bulb('192.168.1.100')
if len(sys.argv) <= 1 :
bulb.toggle()
return
if sys.argv[1] == 'off' :
bulb.turn_off()
return
bulb.turn_on()
if sys.argv[1] == 'yellow' :
bulb.set_brightness(255)
bulb.set_color_temp(2600)
elif sys.argv[1] == 'red' :
bulb.set_rgb(255,64,64)
bulb.set_brightness(255)
if __name__ == '__main__' :
do()
조명이 여러개라면 bulb 를 여러개 설정해두면 된다. 나는 개별적으로 조명 색상을 설정할 때도 있어서 커멘드를 나누어 구웠다.
# setup.py
from setuptools import setup, find_packages
import sys
import src
if sys.version[0] == '2':
sys.exit('Use Python 3')
requires = ['yeelight']
setup(name='y',
version='0.12',
packages=find_packages(exclude=[]),
python_requires='>=3.7',
zip_safe=False,
install_requires=requires,
entry_points='''
# -*- Entry points: -*-
[console_scripts]
y=src.yrun:do
''',
)
python3 setup.py install
를 돌리면 /usr/local/bin/y
가 만들어진다. 이제 y red
를 치면 시뻘건 조명이, y yellow
를 치면 2600K 색온도의 따뜻한 노란 조명이 켜지게 된다. y
만 치면 조명을 단순히 껐다 켜는 것도 가능하다. 필요하다면 색상 설정을 더 넣어 화상미팅에서 쓸 수 있는 미친듯한 사이키 조명을 만들수도 있을 것이지만… 이 글의 목적은 주기적인 조명 색상 변경을 통한 휴식 촉구 작업환경 조성이다. 주제로 돌아와 스케쥴링 이야기로 넘어가자.
스케쥴링
나도 모르는 사이에 자동으로 작업공간 환경이 극단적으로 바뀌어야 놀라서 벌떡 일어나게 될 것이다.
crontab -e
명령어로 특정 시간마다 조명 색깔이 바뀌도록 아래와 같이 스케쥴을 쓰고 저장한다.
0 8,9,10,11,13,14,15,16,17,18 * * 1,2,3,4,5 /usr/local/bin/y yellow
40 8,9,10,11,13,14,15,17 * * 1,2,3,4,5 /usr/local/bin/y red
0 23 * * 1,2,3,4,5 /usr/local/bin/y off
주말을 제외하고 평일 정시마다 따뜻한 조명이, 매 40분마다 시뻘건 조명이 작동하도록 했다. 밤 11시에는 잠을 자라고 자동으로 조명을 끄도록 했다. 주말에는 작동하지 않도록 요일 설정을 걸어두었다.
효능
사실 이 방법은, 스타트업 코파운더로 일하면서 긴급 장애가 발생되면 빨간조명이 켜지게끔 하려고 예전에도 썼던 방법이었다. 그 시절엔 개발자(스스로)를 괴롭히는 방법으로 코드를 돌렸었다면, 지금은 개발자(스스로)의 휴식과 건강을 위해(?) 코드를 돌린다는 차이가 있겠다.
작업공간 조명을 시뻘겋게 바꾸고 나니 비로소 휴식을 취해야겠다는 의지가 생겼다. 방에서 나와 차를 내려 마시고, 시간이 지나 조명이 멀쩡해진 작업공간으로 돌아오면 잘 풀리지 않던 문제의 해법이 보인다. 물론 이 환경조차 익숙해지고나면 무뎌지게 된다. 시뻘건 작업공간에서도 일을 멈추지 않는 자신을 발견하게 되면, 색상을 보라색 파란색 등 익숙치 않은 색으로 바꾸어 변화를 주고, 때로는 점멸등으로 만들어 어떻게든 작업공간을 탈출하게끔 만들 수 있을 것이다. 사무실에서 그렇듯, 재택 환경에서도 역시나 규칙적인 휴식이 업무 효율을 끌어올릴 수 있다. 중요한 것은 엉덩이를 주기적으로 의자에서 떼어내는 것이다.