Notion API: Table CRUD: 2탄 다양한 타입의 데이터 변경하기

작성일 :

Notion API: Table CRUD: 2탄 다양한 타입의 데이터 변경하기

Notion API는 데이터베이스의 항목을 생성, 읽기, 수정, 삭제할 수 있는 강력한 도구입니다. 이번 글에서는 Notion API를 사용하여 다양한 타입의 데이터를 변경하는 방법을 다루겠습니다. 지난 글에서는 기본적인 CRUD(Create, Read, Update, Delete) 작업을 설명했지만, 이번에는 각기 다른 데이터 타입을 다루는 방법에 집중할 것입니다. 텍스트, 숫자, 날짜, 선택 목록 등의 다양한 데이터 타입을 수정하는 방법을 자세히 알아보겠습니다.

1. Notion API 설정

1.1 API 키 생성

먼저 Notion API를 사용하기 위해 API 키를 생성해야 합니다. Notion 웹사이트에 로그인 후 🔗 My Integrations 페이지에서 새로운 통합을 생성하고 API 키를 복사합니다.

1.2 접근 권한 설정

데이터베이스나 페이지에 대한 접근 권한을 설정해야 합니다. 이를 위해 Notion에서 해당 페이지를 열고, 오른쪽 상단의 "공유" 버튼을 클릭하여 생성한 통합을 페이지에 초대합니다.

2. 데이터 타입 이해하기

Notion 데이터베이스는 다양한 데이터 타입을 지원합니다. 여기에는 텍스트, 숫자, 날짜, 체크박스, 선택 목록 등이 포함됩니다. 각 데이터 타입은 고유한 형식으로 저장되며, 이를 올바르게 다루기 위해 해당 형식을 이해하는 것이 중요합니다.

2.1 텍스트 (Text)

텍스트 필드는 문자열 데이터를 저장합니다. Notion에서는 두 가지 주요 텍스트 필드를 지원합니다: 단일 줄 텍스트와 다중 줄 텍스트(리치 텍스트).

2.2 숫자 (Number)

숫자 필드는 정수나 소수 같은 숫자 데이터를 저장합니다.

2.3 날짜 (Date)

날짜 필드는 특정 날짜 또는 시간 범위를 저장합니다.

2.4 체크박스 (Checkbox)

체크박스 필드는 Boolean 값을 저장합니다.

2.5 선택 목록 (Select)

선택 목록 필드는 미리 정의된 옵션 중 하나를 선택할 수 있습니다.

3. 다양한 타입의 데이터 변경하기

3.1 텍스트 필드 수정

텍스트 필드를 수정하려면 title이나 rich_text 타입을 사용해야 합니다. 다음은 제목 필드를 수정하는 예제입니다.

python
import requests
import json

NOTION_API_KEY = 'your_notion_api_key'
PAGE_ID = 'your_page_id'

url = f"<https://api.notion.com/v1/pages/{PAGE_ID}>"

headers = {
    "Authorization": f"Bearer {NOTION_API_KEY}",
    "Content-Type": "application/json",
    "Notion-Version": "2022-06-28"
}

data = {
    "properties": {
        "Name": {
            "title": [
                {
                    "text": {
                        "content": "새로운 제목"
                    }
                }
            ]
        }
    }
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("텍스트 필드가 성공적으로 수정되었습니다.")
else:
    print(f"텍스트 필드 수정에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

3.2 숫자 필드 수정

숫자 필드를 수정하려면 number 타입을 사용해야 합니다. 다음은 숫자 필드를 수정하는 예제입니다.

python
data = {
    "properties": {
        "Amount": {
            "number": 42
        }
    }
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("숫자 필드가 성공적으로 수정되었습니다.")
else:
    print(f"숫자 필드 수정에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

3.3 날짜 필드 수정

날짜 필드를 수정하려면 date 타입을 사용해야 합니다. 다음은 날짜 필드를 수정하는 예제입니다.

python
data = {
    "properties": {
        "Due Date": {
            "date": {
                "start": "2024-06-30"
            }
        }
    }
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("날짜 필드가 성공적으로 수정되었습니다.")
else:
    print(f"날짜 필드 수정에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

3.4 체크박스 필드 수정

체크박스 필드를 수정하려면 checkbox 타입을 사용해야 합니다. 다음은 체크박스 필드를 수정하는 예제입니다.

python
data = {
    "properties": {
        "Completed": {
            "checkbox": True
        }
    }
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("체크박스 필드가 성공적으로 수정되었습니다.")
else:
    print(f"체크박스 필드 수정에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

3.5 선택 목록 필드 수정

선택 목록 필드를 수정하려면 select 타입을 사용해야 합니다. 다음은 선택 목록 필드를 수정하는 예제입니다.

python
data = {
    "properties": {
        "Status": {
            "select": {
                "name": "In Progress"
            }
        }
    }
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("선택 목록 필드가 성공적으로 수정되었습니다.")
else:
    print(f"선택 목록 필드 수정에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

4. 데이터 삭제 (Delete)

Notion에서 데이터를 삭제하는 것은 해당 항목을 아카이브하는 것입니다. 이를 위해 PATCH 요청을 사용하여 archived 속성을 True로 설정합니다.

python
data = {
    "archived": True
}

response = requests.patch(url, headers=headers, data=json.dumps(data))

if response.status_code == 200:
    print("데이터가 성공적으로 삭제(아카이브)되었습니다.")
else:
    print(f"데이터 삭제(아카이브)에 실패했습니다. 응답 코드: {response.status_code}")
    print(response.json())

결론

이번 글에서는 Notion API를 사용하여 다양한 타입의 데이터를 수정하는 방법을 다루었습니다. 텍스트, 숫자, 날짜, 체크박스, 선택 목록 등 각기 다른 데이터 타입을 올바르게 다루는 방법을 살펴보았습니다. Notion API는 매우 강력한 도구이며, 이를 통해 다양한 작업을 자동화하고 통합할 수 있습니다. Notion API를 사용하여 데이터를 효율적으로 관리하고, 생산성을 높이는 데 활용해 보세요. 이 글이 여러분이 Notion API를 활용하는 데 도움이 되길 바랍니다.