분석 플랜
- 전체적인 구조를 파악한다
- 핵심 추상화 계층을 파악한다
- 구현체 들을 파악한다
- 정리한 정보를 취합해 내 프로젝트에 반영한다
특징
- 노션 Object를 Python 클래스/속성에 매핑해줌
- Notion ↔ Python 객체 간 자동 변환
- 통합 데이터 저장소에서 로컬 데이터 캐시
- 실시간 양방형 바인딩
- Notion 변경에 대응하는 콜백 시스템
요약. 노션 객체를 Python 객체로 양방향 변환,CRUD, 노션Client 구현
분석
Records
- 노션에서 사용하는 모든 데이터 유형의 기본 클래스로 사용됨
- 타이틀, 블럭, 유저정보 등의 저장과 관련된 모든 객체의 부모 객체이다
- 초기화시 클라이언트, 아이디를 받는다
- 클라이언트의 모니터 속성이 Null이 아니면 구독 함수 동작
Client
- NotionClient
- 노션 API에 연결하는 핵심이며 데이터를 가져오고, 변환, 업데이트 등의 기능을 수행함
- 초기화시 토큰, 모니터, 모니터링여부, 캐싱여부, 캐싱키, 사용자 정보, 세션 설정 등을 받는다
- Transaction
- 클라이언트의 트랜잭션을 관리하는데 사용됨
- 클라이언트의 속성값을 검증해 속성이 존재한다면 중첩된 트랜잭션이라고 판단해 넘김
속성이 없다면 트랜잭션중 이 아니기에 트랜잭션 목록을 초기화함
Collection
- NotionDate
- 노션에서 날짜와 시간을 다루는 클래스
- 초기화시 시작시간, 종료시간, 시간대, 리마인더(알림?) 등을 받는다
- 파이썬 ↔ 노션 간의 날짜와 시간형식을 변환해줌
- NotionSelect
- 노션에서 선택 속성값 들을 가지고 있음
- 초기화시 값, 컬러 등을 받는다
- 입력받은 색상을 검증함 컬러가 검증 리스트에 있다면 그대로 반환
없다면 디폴트로 반환 이때 만약 속성.컬러가 Null이 아니면 속성 컬러 반환