Notion API 변경으로 인한 morethan-log 오류 해결
date
Feb 2, 2026
slug
notion-api-structure-change-morethan-log
author
status
Public
tags
Blog
summary
type
Post
thumbnail
category
💻 Frontend
updatedAt
Feb 12, 2026 02:28 AM
최근 Notion API 응답 구조가 살짝 바뀌면서,
morethan-log 기반 블로그에서 게시물이 안 뜨는 현상이 생겼습니다.저는 현재 원본 레포를 그대로 쓰는 게 아니라 포크해서 커스텀해둔 상태라서, 자동 업데이트를 기대할 수 없는 상황이기에, 이번엔 직접 원인 파악하고 수동으로 고쳤습니다.
이 글은 저와 같은 사람들의 빠른 해결을 위한 수정 내역입니다.
원인: value가 한 단계 더 깊어짐
기존에는 Notion 응답에서 block 데이터를 아래같은 방식으로 접근하였습니다.
block[id].value
근데 업데이트 이후엔 구조가 한 단계 더 깊어져서 실제 데이터가 내부
value로 들어가 있습니다.block[id].value.value
즉, 기존 코드가 전부 “겉 value”만 보고 있었기에 파싱이 실패했던 것입니다.
해결: 코드 수정 (2곳)
이번 이슈는 핵심적으로 접근 경로만 바꿔주면 해결할 수 있습니다.
1) src/apis/notion-client/getPosts.ts 수정
게시물 목록을 가져오면서 schema / metadata를 읽는 구간에서 깨졌습니다.
Before
const collection = Object.values(response.collection)[0]?.value const block = response.block const schema = collection?.schema const rawMetadata = block[id]?.value // ... properties.createdTime = new Date(block[id].value?.created_time).toString() properties.fullWidth = (block[id].value?.format as any)?.page_full_width ?? false
After
const collection: any = Object.values(response.collection)[0]?.value const block = response.block const schema = collection?.value?.schema const rawMetadata = (block[id].value as any)?.value // ... properties.createdTime = new Date((block[id].value as any)?.value?.created_time).toString() properties.fullWidth = ((block[id].value as any)?.value?.format as any)?.page_full_width ?? false
변경 포인트는 딱 두 가지입니다.
schema접근 경로:collection?.schema→collection?.value?.schema
- block 메타데이터:
block[id].value→block[id].value.value
그리고 타입이 맞지 않는 부분은 일단
as any로 우회했습니다.2) src/libs/utils/notion/getPageProperties.ts 수정
페이지 속성(properties)을 뽑아오는 유틸에서도 동일하게 깨졌습니다.
Before
const rawProperties = Object.entries(block?.[id]?.value?.properties || []) // ... const Block = block?.[id].value
After
const rawProperties = Object.entries( (block?.[id]?.value as any)?.value?.properties || [] ) // ... const Block = (block?.[id].value as any)?.value
여기도 핵심은 동일합니다.
block[id].value.properties가 아니라
block[id].value.value.properties로 내려가야 합니다.
마무리
위의 수정 사항을 적용한 뒤, 로컬에서 다시 실행해보니 블로그가 정상적으로 로드되는 것을 확인할 수 있었습니다.
결과적으로는 단순히 접근 경로가 한 단계 더 깊어졌던 문제였지만, 처음 마주했을 때는 원인이 쉽게 보이지 않았습니다. 기능이 깨진 건지, 데이터가 없는 건지, 어디서부터 확인해야 할지 잠깐 멈칫하게 되는 순간이었습니다.
외부 API를 사용하는 이상 이런 변경은 언제든 발생할 수 있다는 걸 다시 한 번 느꼈고, 결국 답은 응답 구조를 직접 확인하고, 가정했던 경로를 하나씩 점검하는 것이었습니다.
비슷한 문제를 겪고 있는 분들이 있다면, 먼저 API 응답 구조부터 차분히 확인해보길 권하고 싶고, 저 역시도 이런 작은 오류들을 하나씩 고쳐가면서, 코드에 대한 이해를 조금 더 깊게 만들어가려고 합니다.