개발 아카이브/개발 관련 지식

[노션 API] 노션 API 연동으로 데이터베이스 사용하기

운클라우드 2023. 4. 9. 22:14
반응형

Using database with Notion API integration

개요

다들 한 번씩 노션을 사용해 보셨을 겁니다.

노션 안에는 표나 갤러리, 리스트 등 노션 데이터베이스 기능이 있습니다.

Temporarily created Notion database
임시로 만든 노션 데이터베이스

이 기능을 잘 쓰면 사용자나 팀원에 좋은 데이터베이스가 되죠.

만약 노션에 있는 데이터가 정말 유용한 데이터라면, 이 데이터를 이용해 서비스를 구축할 수 있습니다. 노션의 데이터베이스를 그대로 사용하면 되기 때문에 따로 데이터베이스를 만들 필요 없습니다.

물론 서비스가 커진다면 DB를 구축해야겠지만, 프로토타입을 위해 빠른 개발이 필요하다면, 노션 데이터베이스를 사용하는 것이 좋은 선택이 될 수 있습니다.

 

가벼운 사이드 프로젝트를 만드는데도 좋은 선택이 될 수 있습니다. 따로 DB를 구축하지 않고 그 과정에서 생기는 과금도 생길 일이 없습니다.

저도 노션 데이터베이스로 몇몇 사이드 프로젝트에 적용했습니다.

 

노션 DB를 이용한 개발이 필요한 사람

  • 아주 가볍고 간단한 사이드 프로젝트를 만드는데 DB는 필요한 사람
  • 나는 백엔드를 개발해 본 경험이 없는 ‘Only 프론트엔드 개발자’
  • 가벼운 사이드 프로젝트를 만드는데 DB환경을 구축하기 번거롭고, 그 과정에서 과금이 없었으면 하는 사람.
  • 빠르게 프로토타입을 만들어야 하는 사람.

그렇다면 노션 DB를 어떻게 내 서비스와 연동할 수 있을까요?

노션 API를 이용하여 내 노션 DB를 가져올 수 있습니다. 노션 API를 개발하기 위한 문서는 아래 링크에서 확인할 수 있습니다.

https://developers.notion.com/

 

Notion API

 

developers.notion.com

 

노션 DB 연동 방법

1. 노션 계정이 있어야 한다.

노션 계정이 있어야 하는 것은 당연합니다. 노션 계정이 없다면 만들어야겠죠?

노션 계정이 없다면 만드시고, 있다면 다음으로 넘어갑니다.

 

2. 데이터베이스 생성하기

노션 계정이 있다면 데이터베이스를 만들어봅니다. 이미 연결할 데이터베이스를 만들어 두었다면, 그 DB가 있는 워크스페이스가 뭔지 기억하고 다음으로 넘어갑니다.

 

Description of Notion's workspace, page, and database
노션의 워크스페이스, 페이지, 데이터베이스 에 대한 설명

만약 데이터베이스가 없다면 먼저 페이지를 만들고 그 안에 데이터베이스를 추가해 봅시다.

페이지 안에서 / 를 입력하고 데이터베이스 라고 치면 만들 수 있습니다.

 

3. 노션 API키를 발급받는다.

그다음 노션 API 키를 발급받아야 합니다. 본인 계정으로 아래의 링크를 통해 새로운 API를 만듭니다.

https://www.notion.so/my-integrations

 

내 위키, 문서, 프로젝트를 모두 한 곳에

사용하는 모든 업무 앱을 Notion 하나에 담아 팀원들과 함께하는 올인원 워크스페이스를 꾸려 보세요.

www.notion.so

 

Private API integrations management page
개인 API integrations 관리 페이지

링크를 들어가면 위와 같은 화면을 볼 수 있습니다. 여기서 새로운 API를 만들어줍니다.

 

Page to create a new API
새로운 API 만드는 페이지

  1. 사용하실 API의 이름을 작성해줘야 합니다. 특별하게 형식이 없기 때문에 마음대로 작성하시면 됩니다.
  2. 로고도 맘대로 하셔도 되지만, 저 로고가 만드신 API를 식별하기 위한 수단이 될 수 있습니다.
    그래서 API를 많이 만드시게 된다면, API의 로고들을 모두 같게 하지 않고 다르게 하는 게 보기 좋습니다.

Appearance of API logo and name created in Notion
노션에서 생성한 API의 로고와 이름이 나타나는 모습

3. 연결할 데이터베이스가 있는 워크스페이스를 선택해 주세요. 중요합니다.

 

A secret key generated when you create an API
API를 만들면 생성되는 시크릿 키

그렇게 노션 API가 만들어지면 시크릿 KEY를 발급받습니다.

이 KEY를 이용하여 노션 DB에 연결할 수 있습니다.

 

4. 만들어진 API를 페이지와 연결

그렇게 만들어진 API를 데이터베이스가 있는 페이지에 연결해야 합니다.

How to apply the created API
만들어진 API를 적용하는 방
If you search, you can see the API I created.
검색하면 내가 만든 API가 보인다.

이렇게 연결하면 페이지 하위의 페이지까지 모두 연결이 되니 상단에 연결하는 것이 좋습니다.

 

5. 노션 데이터베이스 아이디 얻기

원하는 데이터베이스의 정보를 받아보려면 먼저 데이터베이스 아이디를 얻어야 합니다.

노션 데이터베이스 아이디는 링크 복사를 통해서 얻을 수 있습니다.

How to get a link to the Notion database
노션 데이터베이스 링크 얻는 방법

위처럼 링크 복사하면 아래와 같은 링크를 얻을 수 있습니다.

database id
데이터베이스 아이디

복사한 링크의 저 부분이 데이터베이스 아이디입니다. 저 링크를 이용하여 관련 데이터베이스를 연결하여 API를 호출할 수 있습니다.

 

6. API 호출하기

이제 모든 게 준비되었습니다. 이제 API를 호출하여 DB에 있는 정보를 얻어보겠습니다.

How to get database information with Notion API
노션 API로 데이터베이스 정보를 얻 방법

  1. API 호출 메소드는 POST여야 합니다.
  2. 호출할 API의 url은 다음과 같습니다.
    https://api.notion.com/v1/databases/{{데이터베이스 아이디}}/query
  3. header는 다음과 같이 3개를 입력해야 합니다.
Authorization api 시크릿 키를 입력해야 합니다.

Bearer {{api 시크릿 키}}
Notion-Version 노션 api 버전입니다. 최신버전으로 하시면 됩니다.
버전은 아래 링크에서 확인할 수 있습니다.
https://developers.notion.com/reference/changes-by-version
Content-Type application/json

참고로 Notion-Version을 잘못 입력하면 아래와 같이 응답이 옵니다.

Notion that gives a version guide in response if you receive the wrong version
잘못된 버전을 받을 경우, 응답으로 버전 가이드를 해주는 노션

 

결과

아래와 같이 결과가 json으로 옵니다. DB에 있는 모든 정보들이 내려오기 때문에, 필요한 데이터를 잘 뽑아 쓸 필요가 있습니다.

The result looks like coming down as json
결과가 json으로 잘 내려오는 모습

 

이대로 끝인가?

이번 포스팅으로 노션 API로부터 DB 정보를 얻는 방법을 알려드렸지만, 이 외 CRUD가 가능합니다.

그리고 프론트만 개발한다면 CORS 문제를 직면하게 되겠죠.

다음은 CORS 해결과 다방면으로 노션 DB API를 활용하는 방법에 대해 알아보겠습니다.

반응형