예를들어 user가 profile 페이지로 이동하면 그 request는 profile 페이지로 가고 user에게 profile 페이지를 줘야한다.
그러다 미들웨어를 활성화하면 그 사이에서 실행될 어떤 코드를 갖게 된다. 따라서 profile 페이지로 이동하기 전에 임의의 코드를 실행할 수 있다.
Fetch API의 Response 인터페이스는 request에 대한 response를 나타낸다.
matcher: ["/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)"]
Next.js에는 애플리케이션에서 사용할 수 있는 두 가지 서버 런타임이 있다.
1. Node.js 런타임(기본값): 생태계의 모든 Node.js API 및 호환 패키지에 액세스
2. Edge 런타임: 제한된 API를 지원하는 Edge 런타임
페이지 이동 전에 보여져야 할 것과 안 보여져야 할 것을 미리 구분할 수 있다는 점이 정말 편리하게 느껴졌다. 단순히 "중간에 끼어드는 코드"라는 개념을 넘어서, 보안, 최적화, 유저 경험 같은 다양한 측면에서 큰 역할을 할 수 있다는 점이 인상 깊었다.
실제로 사용하면 정말 유용할 것 같지만... 솔직히 아직은 조금 많이 어렵다...😅 그래도 배우면서 "언젠가 이걸 자유자재로 다룰 수 있다면 정말 멋질 것 같다!"라는 생각이 들었다.