노션 AI 벌크 업서트로 대량 데이터 처리 속도 10배 높이는 방법

노션 AI에서 대량 데이터를 빠르게 입력하고 싶으신가요? 벌크 업서트 병렬 처리를 활용하면 순차 대비 3~4배 속도 향상이 가능합니다. 실측 데이터 기반 배치 사이즈 가이드를 확인하세요.

Mar 19, 2026
📌
노션 AI로 데이터베이스에 수십 건의 페이지를 한꺼번에 입력할 때, 한 건씩 순차 처리하느라 답답하셨나요?
벌크 업서트(병렬 처리) 패턴을 적용하면 순차 대비 3~4배 속도 향상을 달성할 수 있습니다. 이 글에서는 실측 데이터를 기반으로 최적 배치 사이즈와 구현 전략을 정리합니다.

이 글에서 배울 내용 ⏳ 읽기 7분
  • 노션 AI 환경에서 순차 처리 vs 병렬 처리의 구조적 차이
  • 경량·중량·헤비 조건별 최적 배치 사이즈
  • 벌크 업서트를 스킬로 체계화하는 방법

노션 AI 환경에서 벌크 업서트가 필요한 이유

노션 공식 API는 초당 3회 Rate Limit이 걸려 있어 대량 데이터 처리 시 병목이 됩니다. 지연 삽입, 큐잉 등 다양한 우회 기법이 사용되죠.
그런데 노션 AI의 callFunction은 공식 API와 다른 내부 경로를 사용합니다. 따라서 Rate Limit 양상도 완전히 다릅니다.

노션 AI 환경의 실제 제약

  • 공식 API Rate Limit이 직접 적용되지 않음
  • 대신 턴당 병렬 호출 수의 한계타임아웃이 실질적 제약
  • 핵심 최적화 변수: 한 턴에 얼마나 많이 병렬로 호출하느냐
💡
: 노션 공식 API에서 유효한 최적화(지연 삽입, 큐잉 등)가 노션 AI에서는 불필요합니다. 완전히 다른 전략이 필요합니다.

순차 처리 vs 병렬 처리 구조 비교

Strategy A — 순차 처리 (건바이건)

for each item: querySql → 존재 확인 createPage or updatePage
  • N건 처리 시 최소 2N회 API 호출, 모두 순차 실행
  • 10건 기준: querySql 10회 + create/update 10회 = 20회 순차 호출

Strategy B — 벌크 병렬 처리

querySql 1회 → 전체 조회 create 대상 + update 대상 분류 전부 한 턴에 병렬 호출
  • N건 처리 시 querySql 1회 + N건 병렬 = 사실상 2턴
  • 10건 기준: querySql 1회 + create/update 10건 병렬 = 2턴

성능 비교표

항목
Strategy A (순차)
Strategy B (벌크)
API 호출 수 (10건)
20회
11회
턴 수 (10건)
20턴
2턴
구조적 속도비
1x
~10x
실측 속도비
1x
~3~4x
⚠️
주의: 실측이 이론치(10x)보다 낮은 이유는 병렬 호출이라 해도 서버 측 처리 시간이 존재하며, 응답 대기가 완전히 제거되지는 않기 때문입니다.

병렬 처리 한계 테스트 — 실측 결과

타임아웃 없이 몇 건까지 병렬 호출이 가능한지 단계적 극한 테스트를 진행했습니다.

경량 조건 (프로퍼티 4개, 콘텐츠 없음)

건수
결과
10건
✅ 전량 성공
50건
✅ 전량 성공
100건
✅ 전량 성공
200건
✅ 전량 성공
경량 조건에서는 200건까지 에러 0건으로, 사실상 한계를 찾지 못했습니다.

중량 조건 (프로퍼티 9개, 양방향 Relation 포함)

  • DB-A 프로젝트: title, text, number, select, multi_select, status, date, person, checkbox, url (10개 프로퍼티)
  • DB-B 태스크: title, text, number, select, status, date, person, checkbox, relation (9개 프로퍼티)
  • DB-A ↔ DB-B 양방향 Relation 연결 상태에서 테스트
결과: 200건 전량 성공 (Relation 값 모두 정상 연결)

헤비 조건 (콘텐츠 본문 포함 + 양방향 Relation)

  • 중량 조건 스키마 + H2 헤딩 3개, 리스트 포함 본문 콘텐츠 추가
건수
결과
100건
✅ 전량 성공
200건
✅ 198건 성공 / 2건 인프라 오류 (성공률 99%)
헤비 조건에서도 200건 도전에 99% 성공했습니다. 2건의 실패는 서버 인프라 일시 오류로, 패턴 문제가 아닙니다.

실측 타이밍

  • 50건 경량 LIVE 삽입: 약 1분 30초 (스톱워치 측정)
  • 순차 대비 체감 속도: 약 3~4배 향상

조건별 최적 배치 사이즈 가이드

배치 사이즈를 어떻게 결정할지에 대한 설계 논의를 거쳐 하이브리드 방식(조건별 기본값 + AI 상황 판단)을 채택했습니다.
조건
배치 사이즈
근거
경량 (프로퍼티 5개 이하, 콘텐츠 없음)
100건
200건 무결점이지만 마진 확보
중량 (프로퍼티 6개+, 또는 Relation)
100건
Relation 포함 9개 프로퍼티 200건 무결점 실측
헤비 (콘텐츠 본문 포함)
50건
200건 실측 198건 성공 (99%). 병렬 딜레이·UX 고려 50건 권장

왜 하이브리드인가?

  • 하드코딩만 하면 새로운 조건에 유연 대응 불가
  • AI 자율 판단만 시키면 매번 불필요한 분석 오버헤드 발생
  • 조건별 기본값을 명시하되, 실측 근거를 함께 남겨 AI가 맥락을 이해할 수 있게 하는 방식이 최적
💡
: 배치를 나누는 비용은 거의 0인 반면, 대형 배치 실패 시 복구 비용은 높습니다. 조금 보수적인 배치 + 여러 번 나누기큰 배치 1방보다 안전합니다.

벌크 업서트를 스킬로 체계화하는 방법

벌크 업서트 방법론은 DB 작업 시에만 필요한 특화 방법론입니다. 노션 AI 개인화 지침에 통합할 때 다음과 같은 3단 구조를 권장합니다.

3단 흐름: 실험 → 스킬화 → 지침 라우터

  1. 가설 수립 → 실험 → 데이터 확보
  1. 방법론 정리 → 스킬 문서화 (독립 페이지)
  1. 전역 지침 라우터에 조건부 등록 (예: DB에 2건 이상 페이지 생성/업서트 작업 시)

스킬 분리의 장점

  • 전역 지침에 넣으면 비DB 작업 때도 컨텍스트를 차지하여 비효율
  • 스킬로 분리하면 트리거 조건에 의해 필요할 때만 로드
  • 실험 결과 추가 시 스킬만 업데이트하면 됨

핵심 인사이트 정리

노션 AI ≠ 노션 공식 API

같은 노션 생태계지만 제약 조건이 완전히 다릅니다. 공식 API 최적화 패턴을 그대로 가져오면 오히려 비효율적입니다.

실패 비용의 비대칭성

배치를 나누는 비용은 거의 0이지만, 대형 배치 실패 시 부분 실패 디버깅에 드는 복구 비용은 높습니다. 실측 데이터 기반의 보수적 배치 사이즈가 합리적 선택입니다.

감 → 시스템 전환

실험 → 스킬화 → 지침 라우터의 3단 흐름을 통해 "감으로 아는 것"을 "시스템이 실행하는 것"으로 전환할 수 있습니다.
📝
핵심 정리: 노션 AI 벌크 업서트의 핵심은 ① querySql 1회로 전체 조회 → ② create/update 대상 분류 → ③ 조건별 배치 사이즈(경량 100건 / 중량 100건 / 헤비 50건)로 병렬 호출입니다. 순차 대비 3~4배 속도 향상을 기대할 수 있습니다.