개요
다들 한 번씩 노션을 사용해 보셨을 겁니다.
노션 안에는 표나 갤러리, 리스트 등 노션 데이터베이스 기능이 있습니다.
이 기능을 잘 쓰면 사용자나 팀원에 좋은 데이터베이스가 되죠.
만약 노션에 있는 데이터가 정말 유용한 데이터라면, 이 데이터를 이용해 서비스를 구축할 수 있습니다. 노션의 데이터베이스를 그대로 사용하면 되기 때문에 따로 데이터베이스를 만들 필요 없습니다.
물론 서비스가 커진다면 DB를 구축해야겠지만, 프로토타입을 위해 빠른 개발이 필요하다면, 노션 데이터베이스를 사용하는 것이 좋은 선택이 될 수 있습니다.
가벼운 사이드 프로젝트를 만드는데도 좋은 선택이 될 수 있습니다. 따로 DB를 구축하지 않고 그 과정에서 생기는 과금도 생길 일이 없습니다.
저도 노션 데이터베이스로 몇몇 사이드 프로젝트에 적용했습니다.
노션 DB를 이용한 개발이 필요한 사람
- 아주 가볍고 간단한 사이드 프로젝트를 만드는데 DB는 필요한 사람
- 나는 백엔드를 개발해 본 경험이 없는 ‘Only 프론트엔드 개발자’
- 가벼운 사이드 프로젝트를 만드는데 DB환경을 구축하기 번거롭고, 그 과정에서 과금이 없었으면 하는 사람.
- 빠르게 프로토타입을 만들어야 하는 사람.
그렇다면 노션 DB를 어떻게 내 서비스와 연동할 수 있을까요?
노션 API를 이용하여 내 노션 DB를 가져올 수 있습니다. 노션 API를 개발하기 위한 문서는 아래 링크에서 확인할 수 있습니다.
https://developers.notion.com/
노션 DB 연동 방법
1. 노션 계정이 있어야 한다.
노션 계정이 있어야 하는 것은 당연합니다. 노션 계정이 없다면 만들어야겠죠?
노션 계정이 없다면 만드시고, 있다면 다음으로 넘어갑니다.
2. 데이터베이스 생성하기
노션 계정이 있다면 데이터베이스를 만들어봅니다. 이미 연결할 데이터베이스를 만들어 두었다면, 그 DB가 있는 워크스페이스가 뭔지 기억하고 다음으로 넘어갑니다.
만약 데이터베이스가 없다면 먼저 페이지를 만들고 그 안에 데이터베이스를 추가해 봅시다.
페이지 안에서 /
를 입력하고 데이터베이스
라고 치면 만들 수 있습니다.
3. 노션 API키를 발급받는다.
그다음 노션 API 키를 발급받아야 합니다. 본인 계정으로 아래의 링크를 통해 새로운 API를 만듭니다.
https://www.notion.so/my-integrations
링크를 들어가면 위와 같은 화면을 볼 수 있습니다. 여기서 새로운 API를 만들어줍니다.
- 사용하실 API의 이름을 작성해줘야 합니다. 특별하게 형식이 없기 때문에 마음대로 작성하시면 됩니다.
- 로고도 맘대로 하셔도 되지만, 저 로고가 만드신 API를 식별하기 위한 수단이 될 수 있습니다.
그래서 API를 많이 만드시게 된다면, API의 로고들을 모두 같게 하지 않고 다르게 하는 게 보기 좋습니다.
3. 연결할 데이터베이스가 있는 워크스페이스를 선택해 주세요. 중요합니다.
그렇게 노션 API가 만들어지면 시크릿 KEY를 발급받습니다.
이 KEY를 이용하여 노션 DB에 연결할 수 있습니다.
4. 만들어진 API를 페이지와 연결
그렇게 만들어진 API를 데이터베이스가 있는 페이지에 연결해야 합니다.
이렇게 연결하면 페이지 하위의 페이지까지 모두 연결이 되니 상단에 연결하는 것이 좋습니다.
5. 노션 데이터베이스 아이디 얻기
원하는 데이터베이스의 정보를 받아보려면 먼저 데이터베이스 아이디를 얻어야 합니다.
노션 데이터베이스 아이디는 링크 복사를 통해서 얻을 수 있습니다.
위처럼 링크 복사하면 아래와 같은 링크를 얻을 수 있습니다.
복사한 링크의 저 부분이 데이터베이스 아이디입니다. 저 링크를 이용하여 관련 데이터베이스를 연결하여 API를 호출할 수 있습니다.
6. API 호출하기
이제 모든 게 준비되었습니다. 이제 API를 호출하여 DB에 있는 정보를 얻어보겠습니다.
- API 호출 메소드는 POST여야 합니다.
- 호출할 API의 url은 다음과 같습니다.
https://api.notion.com/v1/databases/{{데이터베이스 아이디}}/query
- header는 다음과 같이 3개를 입력해야 합니다.
Authorization | api 시크릿 키를 입력해야 합니다. Bearer {{api 시크릿 키}} |
Notion-Version | 노션 api 버전입니다. 최신버전으로 하시면 됩니다. 버전은 아래 링크에서 확인할 수 있습니다. https://developers.notion.com/reference/changes-by-version |
Content-Type | application/json |
참고로 Notion-Version을 잘못 입력하면 아래와 같이 응답이 옵니다.
결과
아래와 같이 결과가 json으로 옵니다. DB에 있는 모든 정보들이 내려오기 때문에, 필요한 데이터를 잘 뽑아 쓸 필요가 있습니다.
이대로 끝인가?
이번 포스팅으로 노션 API로부터 DB 정보를 얻는 방법을 알려드렸지만, 이 외 CRUD가 가능합니다.
그리고 프론트만 개발한다면 CORS 문제를 직면하게 되겠죠.
다음은 CORS 해결과 다방면으로 노션 DB API를 활용하는 방법에 대해 알아보겠습니다.
'개발 아카이브 > 개발 관련 지식' 카테고리의 다른 글
REST (Representational State Transfer)란 무엇인가? (1) | 2023.07.31 |
---|---|
V8 Liftoff와 웹 어셈블리: 웹 성능을 향상시키는 강력한 조합 (0) | 2023.04.20 |
자바스크립트 엔진인 V8에 대해 알아보자 (1) | 2023.02.26 |
정규식을 이용한 공격 - ReDos (0) | 2022.12.24 |
Postman 대신 사용하는 VS Code API Test Extention - Thunder Client (1) | 2022.11.13 |