서론 : Notion을 접하다.
필자는 2016년 하반기부터 2019년도까지 OneNote 유저였다. 기록에 관심이 많아 이것저것 찾아보다가 Notion을 알게 되었다. 시범적으로 조금씩 사용해보다가 2020년도부터는 본격적으로 Notion을 사용하기 시작했다. Notion은 사용할수록 계속 쓰게 되는 매력이 있는 메모 도구다. [향후 추가 : Notion 선택 - OneNote 4년 사용하다 Notion으로]
다른 사람들은 어떻게 Notion을 사용하는지 찾다 보니 Habit Maker 템플릿을 이용하여 습관을 관리하는 사람들이 보였다. 필자는 최근 2년 동안 아날로그 노트에 Habit Maker를 시도했다. 결과적으로는 항상 스트레스를 받으며 실패했던 좋지 않은 경험이 있어 무시했다. 그러나 이후에 계속 생각이 나면서 다시 도전하고 싶은 마음, 성장하고 싶은 마음이 생겨 Notion으로 도전하게 되었다.
일일이 날짜를 입력하기 힘들다.

Habit Maker를 3개월 동안 사용해보니 생활이 수치화되면서 객관적으로 돌아볼 수 있게 되어 좋았다. 기록하는 것도 미리 만들어진 템플릿에 체크만 하면 되었기에 어렵거나 귀찮지 않았다. 접근성이 좋아 더 많이 사용하게 되었다.
[향후 추가 : Notion 활용기 - Habit Maker 활용하기:주간으로 한눈에, 월간으로 평가하기]
그러나 Date 열의 날짜는 자동으로 생성되지 않는다. 해당 칸에 바로 타이핑이 되는 것도 아니다. 일일이 칸을 클릭하여 날짜를 선택해주거나 클릭 이후 타이핑을 해야 한다. 년 초에 시작할 때는 월말마다 미리 한 달씩 만들어주면 부담 없이 할 수 있겠다고 생각했다. 그러나 3개월 동안 하다 보니 귀찮아졌다. 남은 기간은 9개월을 하나씩 다하려니 또 부담이 되었고 자동으로 할 수 있는 방법이 없는지 고민하고 찾아보았다.
사례 및 정보를 수집 후 나에게 맞게 직접 구현
jamalex가 Notion v3 API를 Python에서 사용할 수 있도록 만든 비공식 Python 패키지가 있다. 패키지를 활용하여 자기가 필요한 기능을 구현한 다른 사람들의 블로그를 찾을 수 있었고, 해당 블로그의 내용을 참조하여 필자에게 필요한 부분을 구현하여 보았다.
Notion API 로 Page,Todo 블록 만들기
Notion API 호출로 TodoBlock 추가하는 방법을 공유합니다. ☕️ 예시) 스벅남은 매일 아침 9시 아아를 마십니다. https://github.com/jamalex/notion-py 활용하였습니다. 준비물 - python v3.5 이상 - token_v2 ✅ 시작 1. 사전설치 notion01.jpg 

2. 기능 구현
먼저 사용할 lib를 import 한다.
from notion.client import NotionClient
from notion.block import CollectionViewBlock
import datetime
1) 토큰을 활용한 Notion Login
# Login
token_v2 = 'a8974256f0b ... 7249d213'
client = NotionClient(token_v2=token_v2)
2) Notion에서 작업할 대상 정보 가져오기
# Notion URL
url ='https://www.notion.so/habit/d859b ... ef440'
# URL GET
cv = client.get_collection_view(url)
3) Table에 원하는 날짜와 요일 Insert Test
# 1 Row 입력 테스트
row = cv.collection.add_row()
row.etc = "insert_TEST"
row.Date = datetime.date(2021,3,19) # Test를 위해 2021년으로 진행!
row.요일 = '금'
위 코드를 실행하면 아래와 같이 추가된다.
row.etc, row.Date, row.요일과 같이 노션에 사용된 열 항목에 대한 이름(컬럼 명)을 지정하여 원하는 값을 넣을 수 있다.

4) Table 월별 날짜와 요일 Insert 로직 구현
# 실제 Insert 로직
dayOfTheWeek = ['월','화','수','목','금','토','일']
year = 2020
month = 6
days = 30
for day in range(1, days + 1):
row = cv.collection.add_row()
date = datetime.date(year,month,day)
row.Date = date
row.요일 = dayOfTheWeek[date.weekday()]
# 확인을 위한 출력 부분
# print(str(year)+'/'+str(month)+'/'+str(day)+'/'+dayOfTheWeek[date.weekday()])
코드를 실행하면 아래와 같이 6월 한 달에 대한 항목이 자동으로 생성되는 것을 확인 할 수 있었다.

월말마다 신경 써야 할 부분 미리 해결하였다.
이렇게 HabitMaker에 날짜와 요일을 자동으로 입력해주는 Python 스크립트를 만들고 2020년의 남은 일을 모두 생성하였다. 월말마다 신경 써야 했던 30일씩 날짜와 요일을 입력하는 일을 약간의 시간을 투자하여 미리 해소하였을 뿐 아니라 매년마다 사용할 수 있다.
지금은 일상의 작은 부분이지만 이런 작은 부분을 하나둘씩 개선해 나아가는 노하우가 쌓여 나만의 효율적인 생활 환경이나 업무 환경을 구성할 수 있을 것이라 기대해 본다.