개발자

next.js의 dynamic은 island architecture가 아닌가요?

2022년 09월 21일조회 333

안녕하세요. 프론트엔드에서 island architecture와 next.js의 dynamic이 다른 점이 무엇인가요? 필요한 JS를 나중에 불러온다라는 개념은 똑같은 것 같아서 여쭤봅니다. 혹시 아시는 개발자님들 계시면 답변 부탁드려요~~

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

손정현님의 프로필 사진

저도 island architecture를 깊이 알지는 못하지만 Next의 원리랑은 차이가 있는 것 같아서 답글 남깁니다. 질문자님의 말처럼 필요한 JS를 나중에 불러온다는 개념은 비슷하지만 작동 방식에서 오는 차이가 있습니다. Next의 경우, SSR에서 만들어진 HTML, CSS, JS 뼈대를 클라이언트로 보내주고 클라이언트는 hydration 과정을 거친 뒤 사용자가 웹과 상호작용을 할 수 있게됩니다. 이때 dynamic import된 컴포넌트들이 필요하면 개별 JS 파일을 또 요청하는 식이구요. island architecture를 적용한 프레임워크들 (Astro, Marko, Qwik, deno fresh)은 서버에서 내려줄때 모든 구조를 HTML, CSS로 내려주는 것으로 알고 있습니다. React처럼 JS 기반으로 동작하는 앱이 아니면 JS 파일을 보낼 필요가 없고 hydration 과정도 안거치기 때문에 더 빠른 것으로 이해하고 있어요. 유저 상호작용에 의해서 JS가 필요해지면 그때 요청을 하는 것으로 알고 있습니다. 그전까지는 해당 위치에 placeholder를 보여준다고 합니다. (progressive hydration이라고 하네요) 그래서 Next에서 dynamic으로 컴포넌트를 불러온다고 해도, 최초 요청시에는 웹앱의 근간이 되는 React를 처리하기 위해 hydration 과정을 거치게 됩니다. 그리고 island architecture를 고려하고 설계된 프레임워크가 아니라서 동일한 효과를 기대하기는 무리인 것 같습니다. 즉, next dynamic은 ‘코드 스플릿’을 구현하기 위한 기능이고 island architecture는 ‘코드 스플릿’을 포함한 웹 서비스 설계에 대한 전반적인 개념인 것 같아요. 제가 참고한 링크 첨부합니다 https://mainawycliffe.dev/blog/island-architecture/ https://www.builder.io/blog/why-progressive-hydration-is-harder-than-you-think?utm_source=twitter

profile picture

익명

작성자

2022년 10월 17일

자세한 답변과 참고 링크 감사드립니다!!

이국범님의 프로필 사진

-

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!