안녕하세요, J.Lab입니다. 개발 일지를 쓰고 있는 요즘, 저는 자동화의 매력에 푹 빠져 있습니다. 특히 Notion과 Google Apps Script(GAS)를 연동해서 반복 작업을 줄이는 것에 큰 즐거움을 느끼고 있죠. 제 작은 루틴 중 하나는 바로 중요한 이슈들을 Notion 데이터베이스에 기록하고, 매일 특정 시각에 'IssueLog'라는 이름으로 발행하는 스크립트입니다.
이 'IssueLog'는 제가 놓치지 말아야 할 우선순위 높은 항목들을 자동으로 정리해주는 소중한 도우미 역할을 톡톡히 하고 있었습니다. 그런데 최근, 뭔가 이상하다는 걸 감지했습니다. 분명히 Notion 데이터베이스에는 매일 3건의 이슈를 등록했는데, 발행되는 포스트에는 왠지 모르게 항상 1건만 올라오는 게 아니겠어요? 처음엔 대수롭지 않게 생각했지만, 며칠이 지나도 증상이 반복되자 이건 뭔가 잘못됐다는 확신이 들었습니다. 저의 삽질 여정이 이렇게 시작되었습니다.
발단: 사라진 우선순위 항목들
제가 운영하는 'IssueLog'는 Notion 데이터베이스에서 특정 조건(예: 오늘 날짜, 완료되지 않음)을 만족하는 항목들을 GAS 스크립트가 조회하여 가공한 뒤 발행하는 시스템입니다. 처음 만들었을 땐 아무 문제 없이 잘 작동했어요. 매일 아침 제가 확인해야 할 중요한 이슈 3가지가 꼬박꼬박 발행되곤 했죠.
하지만 언젠가부터 발행 건수가 3건에서 1건으로 줄어드는 기이한 현상이 나타나기 시작했습니다. 처음엔 제가 Notion에 입력을 잘못했나 싶어 데이터베이스를 일일이 확인해봤습니다. 하지만 데이터는 분명히 존재했고, 조건에도 완벽히 부합했습니다. '대체 뭐가 문제지?' 온갖 시나리오를 떠올리며 스크립트 로그를 뒤져보고, Notion API 응답을 직접 확인하기 시작했습니다. 그야말로 미궁에 빠진 듯한 기분이었습니다.
원인 추적: Notion API page_size의 함정
스크립트 코드와 Notion 데이터베이스를 아무리 뜯어봐도 답이 나오지 않았습니다. 모든 것이 정상적으로 보였지만, 결과물만 비정상이었죠. 답답한 마음에 Notion API 공식 문서를 처음부터 다시 정독하기 시작했습니다. 한 줄 한 줄 꼼꼼히 훑어보던 중, 제 눈에 딱 들어온 부분이 있었습니다. 바로 Notion 데이터베이스 조회 시 사용하는 쿼리 파라미터 중 하나인 page_size였습니다.
Notion API의 기본 page_size 값은 20이었습니다. 그리고 저는 이 값을 명시적으로 설정하지 않았거나, 혹은 과거에 20으로 설정해두고 잊고 있었을 겁니다. '설마…' 하는 마음에 Notion 데이터베이스를 다시 살펴보니, 제가 발행하려 했던 3건의 우선순위 항목 중 2건이 전체 목록에서 21번째 이후에 위치하고 있었습니다. 즉, Notion API가 기본적으로 20개까지만 데이터를 반환했고, 그 이후에 있는 중요한 항목들은 아예 조회 대상에서 빠져버렸던 겁니다.
이건 정말이지 너무나 간단하면서도 치명적인 실수였습니다. 제가 항상 중요하게 생각하던 우선순위 항목들이 API 조회 범위 밖에서 허공에 맴돌고 있었다니, 등골이 오싹해지는 순간이었습니다. 'Notion API page_size'라는 키워드가 머릿속을 맴돌았고, 이게 바로 핵심 문제임을 깨달았습니다. 페이지네이션 개념을 너무 안일하게 생각했던 제 잘못이었습니다.
해결: page_size를 100으로 확장
문제의 원인을 파악하고 나니 해결책은 의외로 간단했습니다. Notion API의 page_size 파라미터 값을 20에서 최대 허용치인 100으로 변경하는 것이었습니다. GAS 스크립트 내에서 Notion 데이터베이스를 조회하는 부분에 page_size: 100을 명시적으로 추가했습니다. 이 변경 하나로 제 IssueLog 스크립트는 다시 완벽하게 작동하기 시작했습니다.
이제 3건의 우선순위 항목이 모두 문제없이 발행됩니다. 단순히 쿼리 파라미터 하나를 바꿨을 뿐인데, 이렇게나 큰 차이를 만들다니 놀라웠죠. 저는 이 경험을 통해 다른 프로젝트들도 점검해야겠다고 생각했습니다. 'KidStory'나 'Jin's Lab'처럼 Notion과 연동되어 데이터를 가져오는 다른 자동화 스크립트들도 혹시 모를 page_size 함정에 빠져있을 가능성이 있었기 때문입니다.
실제로 다른 스크립트들도 확인해보니, 비슷한 형태로 page_size가 기본값에 머물러 있는 경우가 있었습니다. 즉시 모두 100으로 수정했습니다. 이로써 저의 모든 Notion 데이터베이스 조회 로직은 이제 더욱 견고해졌습니다. 간단한 설정 하나가 이렇게 중요한 결과를 가져올 수 있다는 것을 다시 한번 깨닫게 되었습니다.
마치며: 작은 파라미터가 주는 큰 교훈
이번 'Notion API page_size 함정' 사건은 저에게 여러모로 큰 교훈을 안겨주었습니다. 특히 API를 활용할 때는 기본값에 대한 맹신을 경계해야 한다는 점을 다시 한번 상기시켜주었습니다. 단순히 작동하는 것처럼 보여도, 내부적으로는 특정 조건에서 중요한 데이터가 누락될 수 있다는 점을 항상 염두에 두어야 합니다.
이 경험을 통해 J.Lab은 앞으로 GAS Notion 연동 작업을 할 때, 특히 Notion 데이터베이스 조회와 관련된 부분에서는 페이지네이션 파라미터를 더욱 세심하게 확인할 것을 다짐했습니다. 만약 여러분도 Notion API를 사용하고 계신다면, 혹시 모를 page_size 문제로 중요한 데이터가 누락되고 있지는 않은지 꼭 한번 점검해보시길 바랍니다. 때로는 가장 사소해 보이는 부분이 가장 큰 문제를 야기할 수 있으니까요. 다음에는 더 유익한 개발 일지로 찾아오겠습니다!