해결된 질문
작성
·
23
0
안녕하세요, app router에 대해 계속 공부하다가 route handlers 에 대한 궁금증이 해결되지 않아 질문하게 됐습니다.
Next app router에서 정확히 route handlers를 사용해야 하는 이유가 무엇인가요?
제가 생각했을 땐 서버 데이터 캐싱이나 API 엔드포인트를 숨길 수 있다는 장점이 있는데 이건 서버 컴포넌트에서 fetch하는 것으로도 대체가 되는데 route handlers를 사용해야 하는 특별한 이유가 따로 있는 것인가요?
모든 API를 route handlers로 하면 Next서버에 부하가 걸릴텐데 어떻게 해결할 수 있을까요?
이 부분은 공식문서에서 제가 못 찾은 것 같은데, 만약 외부 백엔드 API가 있고 여기에 데이터 요청을 할 때
클라이언트 컴포넌트에서의 모든 API 요청을 1차로 route handler에 하고 여기서 외부 백엔드 API로 요청하게되면 route handlers에 요청이 몰리게 되는데 이때 Next 서버에 걸리는 부하를 어떻게 해소할 수 있을까요?
답변 2
0
2024. 11. 01. 23:49
route handlers를 쓰면 간단한 웹 서버의 경우에는 백엔드 서버를 대체할 수도 있습니다. 그리고 BFF의 역할을 하여 백엔드 api를 route handlers에서 가공할 수도 있습니다.
next 서버에 부하가 걸리는 것은 next 서버도 오토스케일링을 해서 여러 인스턴스를 둔다든가 하면 됩니다. 백엔드 서버 관리법과 똑같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. kraf님.
route handlers에 대한 궁금증을 해결하셨으면 좋겠습니다. 주신 질문에 대해 답변드리겠습니다.
Next.js의 Route Handlers 사용 이유:
Route Handlers는 Next.js에서 API 엔드포인트를 쉽게 생성할 수 있게 도와줍니다. 서버 데이터 캐싱이나 API 엔드포인트를 숨기는 데 도움을 줄 수 있는 장점이 있습니다. 서버 컴포넌트만으로 데이터를 처리할 수도 있지만, Route Handlers를 사용하면 클라이언트-서버 간의 데이터 흐름을 보다 세밀하게 제어할 수 있습니다. 또한, 간단한 기능 구현 시 별도의 서버 설정 없이 Next.js만으로 작업할 수 있다는 장점이 있습니다.
Next 서버 부하 관리:
모든 API 요청을 Route Handlers로 처리할 경우, Next.js 서버에 부하가 걸릴 수 있습니다. 이를 해결하기 위해선 적절한 캐싱 전략을 사용하거나, 부하의 분배를 위한 로드 밸런서를 활용할 수 있습니다. 또한, 클라이언트에서 서버로의 직접적인 API 통신도 병행하여 사용하면 부하를 줄일 수 있습니다. 클라우드 서비스의 로드 밸런싱 기능을 활용하거나, Next.js의 기능 중 ISR(Incremental Static Regeneration)을 통해 정적 페이지로 일부 트래픽을 흡수하는 방법도 고려해 볼 수 있습니다.
관련 내용을 상세히 설명한 이전의 질문과 답변들이 있습니다. 유사한 궁금증을 해결하는 데 도움이 될 것입니다:
이 두 답변은 Route Handlers 사용 시의 효율적인 관리에 대해 더 깊이 있게 논의하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.