inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라먹는 Next.js

3.7) 한입북스 UI 구현하기

params의 type에서 string[]배열타입이 필요한 이유가 있을까요?

해결된 질문

156

codingforfun

작성한 질문수 7

0

안녕하세요 강사님,

혹시 한입 북스 UI 구현하기에서, params의 type을

image.png

string[] 타입이 필요한 이유가 따로 있을까요?

react typescript next.js

답변 2

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. kurt님!

강의에 나온 코드에서 params 객체의 id 속성이 string | string[] 타입을 가지는 것에 대해 궁금하신 것 같네요. 이 부분은 Next.js의 라우팅과 관련이 있습니다.

Next.js에서 기본적으로 라우트 매칭은 문자열과 배열을 모두 지원합니다. 특히 동적 라우트의 경우, 특정 경로가 여러 개의 세그먼트를 가질 수 있을 때 사용됩니다. 예를 들어, pages/books/[...slug].tsx 같은 경로에서 [...slug]는 1개 이상의 세그먼트로 이루어진 URL을 매칭하기 위해 배열 형태로 취급됩니다. 이는 유연한 라우팅을 가능하게 만들어 주며, params에 들어오는 값이 때때로 배열로 전달될 수 있는 이유입니다.

따라서 idstring일 수도 있고 string[]일 수도 있는 것입니다. 일반적인 단일 ID의 경우 string으로 전달되지만, 여러 세그먼트를 포함하는 경우에는 배열로 전달되게 됩니다.

강의를 들으며 기본 이상으로 이해를 확장하고 싶으시다면, Next.js의 동적 라우팅(Dynamic Routing) 문서를 참고해 보시는 것도 좋을 듯합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

이정환 Winterlood

안녕하세요 이정환입니다.

여러개의 URL Parameter가 배열 형태로 전달되는 상황에 대응하기 위함입니다. Next.js에서는 동적 경로를 캐치올 라우트(세그먼트) 혹은 옵셔널 캐치올 라우트(세그먼트)로 설정할 경우 URL Paramter가 문자열 배열 형태로 전달됩니다. 따라서 이럴 경우 params.id의 타입을 string | string[] 로 정의할 필요가 있습니다. 그러나 캐치올, 옵셔널 캐치올 라우트를 사용하지 않아 단 하나의 URL 파라미터만 제공될 것이 확실한 상황에서는 string[] 을 제외한 string 타입으로 정의하셔도 무방합니다.

풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문

0

52

2

next.js 프로젝트

0

50

1

Next.js + Tanstack Query BFF 구조 질문

0

47

2

Next.js 사전렌더링 이해하기 부분

0

52

2

모달 관련 질문

0

56

3

렌더링 관련 질문

0

92

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

78

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

76

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

90

2

npx prisma db push 시 에러가 뜹니다.

0

107

3

vercel 배포를 실패하였습니다.

0

119

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

73

2

getServerSideProps 함수와 SSR의 관계

0

87

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

70

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

123

2

일반적인 nextjs project architecture에 대하여..

0

97

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

82

2

배포 시 오류 발생

0

97

2

백엔드 서버 오류납니다.

0

95

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

102

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

113

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

69

2

빨간줄 설정

0

87

2

익스텐션 질문

0

64

1