sitemap 에 Pormise가 필요한 이유
49
投稿した質問数 32
5:53 부분에서 sitemap 에서 Promise가 필요하다 하셨는데 왜 필요한지 궁금합니다.
回答 2
0
안녕하세요! 질문에 답변을 너무 늦게 남겨서 죄송합니다.
좋은 질문 주셔서 감사하단 말씀 먼저 드리고 싶습니다. 제 설명이 부족했던 부분인데 질문 주신 덕분에 저도 공부가 됐습니다.
답변을 드리자면, 해당 영상에서 Promise가 필요하다고 언급한 건 sitemap 함수를 async 함수로 정의했기 때문입니다. 엄밀하게 말하면 sitemap은 항상 async 함수로 정의할 필요는 없습니다. 하지만 추후 확장성을 고려해 비동기 함수로 구현했고 이를 명시적으로 드러내기 위해 리턴 타입을 Promise로 명시해주고 있습니다.
예시만 놓고 보자면 아래와 같이 async를 제거하고 Promise 역시 제거해도 전혀 문제가 없습니다.
import { getBlogPosts } from 'app/blog/utils'
import { MetadataRoute } from 'next'
export const baseUrl = 'https://portfolio-blog-starter.vercel.app'
export default function sitemap(): MetadataRoute.Sitemap {
let blogs = getBlogPosts().map((post) => ({
url: `${baseUrl}/blog/${post.slug}`,
lastModified: post.metadata.publishedAt,
}))
let routes = ['', '/blog'].map((route) => ({
url: `${baseUrl}${route}`,
lastModified: new Date().toISOString().split('T')[0],
}))
return [...routes, ...blogs]
}
질문 주셔서 다시 감사드리며, 답변이 도움되셨길 바랍니다!
0
안녕하세요, 인프런 AI 인턴입니다.
gmldnjs0402님, 질문 주신 내용에 대해 설명드리겠습니다. Sitemap 생성과 관련해서 Promise가 필요한 이유는 비동기적으로 데이터를 가져와야 하는 경우에 주로 사용됩니다. 예를 들어, 데이터베이스나 외부 API로부터 동적으로 페이지 정보를 가져오는 상황이라면, 이러한 과정은 비동기 작업이 되는 것입니다.
Promise 객체는 이러한 비동기 작업을 처리할 수 있게 해주는 자바스크립트 객체로, 비동기 작업의 완료 여부를 특정 시점에서 알 수 있게 해줍니다. 즉, Sitemap을 생성하는 과정에서 비동기 작업이 필요하다면, 이를 적용하여 데이터 로딩의 완료를 보장하고, 마지막에 해당 데이터를 기반으로 Sitemap을 완성할 수 있습니다.
관련하여 이해를 돕기 위한 보충 설명 및 코드 샘플은 Next.js 공식 문서의 관련 섹션에 참고해 보실 수 있습니다. 여기에서 Promise를 어떻게 활용하는지 구체적인 예제를 살펴보실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이
0
3
1
max x5 플랜을 결제했습니다.
0
5
1
클로드 초기 설정
0
5
1
사용자 스코프 설정 파일 적용 문제
0
7
1
클로드코드 유료플랜 할인 방법이 있을까요?
0
20
0
API Error : 400 에러의 원인과 해결방법이 궁금합니다!!
0
16
2
퍼미션 권한 설정 문의
0
19
2
Next.js + Tanstack Query BFF 구조 질문
0
13
1
커서에서 shift+enter가 안됩니다.
0
19
2
mcp 설치를 못하겠어요
0
34
2
라이브러리 관련 질문 있습니다!
0
24
2
노션 학습 자료 권한 요청
0
17
1
output-styles은 Claude Code의 공식 기능이 아니라고 하는데 혹시 변경된걸까요?
0
23
2
클로드 변경
0
26
2
/config 에서 output-style 을 변경
0
24
1
getPostData 함수 질문
0
50
1
초반부 pnpm dev 후 발생하는 에러
1
529
2
PPR 적용 후 여전히 SSG로 배포되는 이슈
0
237
3
배포 후, 조회수 증가 이슈
1
258
1
추가로 Head tag에서 작성된 script 코드 관련하여 질문드리고 싶습니다. (feat. 즉시 실행 함수, dangerouslySetInnerHTML)
1
254
2
Head tag에서 script를 작성하는 이유에 대해서 여쭤보고 싶습니다! (+ NextJS의 Head tag와 Script tag)
1
173
1
완강하고 질문 드립니다
1
185
2
다크모드 적용
1
361
2
PPR 적용 한 후 에러가 났습니다.
1
298
2

