이 글은 기존 운영했던 WordPress 블로그인 PyxisPub: Development Life (pyxispub.uzuki.live) 에서 가져온 글 입니다. 모든 글을 가져오지는 않으며, 작성 시점과 현재 시점에는 차이가 많이 존재합니다.
작성 시점: 2020-12-27
현재 사용하고 있는 데스크탑의 사양은 다음과 같다. 아는 지인분께 3~4년전 중고로 구매해서, 그래픽 카드와 램만 업그레이드 하고 사용하고 있다.
i7-6700, RAM 32GB, GTX1660, SSD 500GB
하지만 최근에 데스크탑을 바꾸기로 마음을 먹었는데, 그 이유는 다음과 같다.
첫 번째, 로컬에서 작업을 하다보면 리소스를 풀로 잡아먹으면서 이륙하려고 하는 경우가 있다. Docker 도 사용하고, 기본 IDE도 2~3개 이상 키고 (Intellij, Android Studio, Visual Studio Code) 하다보니 그런 것 같기도 하다.
두 번째, 최근에 푹 빠진 게임인 'Micosoft Flight Simulator' 가 현재 최저 옵션으로 평균 24프레임도 안 나온다. 프리징 걸리거나, 중요한 착륙때 10프레임 이하가 나오는 일도 빈번하다.
그래서, 가격이 널뛰는 요즘이지만 새롭게 맞춰보기로 결정했고, 아래와 같은 사양으로 결정했다.
Ryzen 9 5900X, RAM 64GB, RTX 3070, SSD 1TB
그리고 이에 맞춰 적당한 부품을 선택했다. 아직 최종은 아니지만, Tracking 용도로 Notion에 아래와 같이 데이터베이스를 작성했다.
이 데이터베이스를 작성하고 올렸다가 톡방의 친구에게 이 말을 듣고, 이를 실제로 계획에 옮겨보기로 했다.
그래서, 생각해둔 방안은 다음과 같다.
이 중, 1번을 위하여 notion-py (https://github.com/jamalex/notion-py) 를 이용하게 되었고, 이 글에서는 포인트만 잡아서 공유해보려고 한다.
참고로, Notion의 공식 API는 현재 비공개 베타(https://www.notion.so/api-beta) 중으로 차후 이 방법이 달라질 수 있다.
pip3 install notion
from notion.client import NotionClient
client = NotionClient(token_v2=notion_token)
여기서 notion_token
은 notion.so 에 로그인하면 나오는 토큰으로, 브라우저의 '개발자 도구' 내 저장소 > 쿠키 > token_v2 값이다.
Notion에서 데이터베이스나 갤러리 등은 고유한 URL를 가지고 있는데, 이는 데이터베이스의 '링크 복사' 기능으로 가져올 수 있다.
링크 복사 기능으로 얻어온 링크로 접근하게 되며, 아래 코드로 전체 row를 가져올 수 있다.
collection_view = client.get_collection_view(collection_url)
result = collection_view.default_query().execute()
for row in result:
print(row)
현재 데이터베이스는 아래와 같이 되어있는데, 각각 아래와 같이 접근이 가능하다.
print(row.name) # Ryzen 9 5900X
print(row.kind) # CPU
print(row.visited) # 2020-12-27 12:10:23
print(row.price) # 854000
가격비교 사이트를 통해 가져온 '가격' 을 Notion 데이터베이스에 반영하기 위해서는 row 객체의 각 필드에 값을 할당해주면 된다.
row.price = int(price)
데이터베이스상 price는 '숫자' 값이므로 price의 자료형을 'int'로 변경해줄 필요가 있다.
해당 코드를 실행시 Notion에 바로 갱신되는 모습을 확인할 수 있다.