본문 바로가기
728x90

Developer/Javascript 해부학10

무한스크롤에서 가상스크롤까지 (가상스크롤편) 목차가상스크롤 알아보기가상스크롤 만들기설계하기무한스크롤과 비교하기더 생각해보기요소 높이와 스타일링라이브러리 사용하기참고  가상스크롤 알아보기이번에는 가상 스크롤에 대해 알아보겠습니다. 지난 편에서는 화면에 많은 요소가 있는 상황을 가정하며 가상 스크롤을 소개했고, 대표적인 예로 SNS에서 콘텐츠 목록을 끊임없이 스크롤하는 경우를 들 수 있습니다. 그러나 실제로 사용자가 보는 요소는 전체 중 극히 일부에 불과합니다. 이러한 점을 활용해 가상 스크롤은 보이는 요소만 렌더링하는 방식을 무한 스크롤 기법에 적용한 기술입니다. 먼저 화면에 많은 요소가 표시된 상황을 구현해 직접 그 느낌을 체험해보겠습니다. 이를 위해 이전에 구현했던 무한 스크롤의 목록을 대폭 늘려보겠습니다.현재 40만 개의 DOM 노드를 렌더링해.. 2024. 11. 24.
무한스크롤에서 가상스크롤까지 (무한스크롤편) 목차무한스크롤 알아보기배경GPT에게 물어보자무한스크롤 만들기설계하기코드더 생각해보기스크롤 위치 기억하기보이는 요소만 그리기무한스크롤 알아보기배경회사는 현재 서비스 개발 환경을 개선하기 위해 RN에서 Next.js로 전환 중입니다. 이 과정에서 흩어져 있던 컴포넌트를 모아 공통 컴포넌트를 추출하고 구현하는 작업도 함께 진행하고 있습니다. 그 중 제가 담당한 무한 스크롤 개발을 하면서 알게 된 내용을 정리해 이 글을 작성하게 되었습니다.GPT에게 물어보자무한 스크롤이란 무엇이며, 어디서부터 시작된 걸까? GPT에게 물어봤더니 용어 설명과 배경뿐만 아니라 특징과 추가로 고려해야 할 점까지 답변해주었다. 이 글에서는 먼저 무한 스크롤의 개념과 배경을 알아보고, 특징과 더 생각해볼 부분은 구현 후에 따로 살펴보겠.. 2024. 10. 13.
클래스 컴포넌트에서 함수 컴포넌트로 전환기 목차 전환 배경 상태 변이 콜백 함수 Context Api 마무리 참조 배경 사내 코드에 아직 클래스 컴포넌트로 이루어진 프로젝트가 있습니다. 현재 그 프로젝트는 정상적으로 동작하고 간단한 기능 추가 및 유지보수에는 문제 없습니다. 하지만 서비스가 고도화 될수록 복잡한 기능 구현하기 위해 hook으로 지원하는 라이브러리를 자유롭게 사용하지 못했습니다. 고차 컴포넌트(HOC)를 이용하여 사용하는 방법이 있긴 하지만 매 라이브러리마다 고차 컴포넌트를 만드는 것은 유지보수 비용을 더 크게 만드는 것 같다고 판단하여 함수 컴포넌트로 전환하기로 결정했습니다. 이 전환 과정에서 고려해야하는 점들이 있어서 글로 작성하였습니다. 상태 변이 콜백 함수 클래스 컴포넌트의 상태변이는 콜백을 지원합니다. 이 콜백함수는 상태가.. 2024. 3. 17.
fireEvent와 userEvent 구현체 살펴보기 목차 userEvent는 fireEvent를 사용하여 구현되어있었다. userEvent는 async, await가 왜 필요한 것일까? Testing Library를 공부하던 중 fireEvent와 userEvent의 다른점을 학습하면서 fireEvent는 왜 필요한 것일까라는 궁금증을 시작으로 탐구하게 되었다. userEvent는 fireEvent를 사용하여 구현되어있었다. 이 두가지를 비교하거나 소개하는 오래된 글들을 보면 userEvent가 fireEvent로 구성되어있다고 이야기합니다. 하지만 이는 버전에 따라 맞을수도 있고 틀릴수도 있습니다. React-testing-library: fireEvent vs userEvent 먼저 fireEvent의 구현체를 확인해보겠습니다. 실제 fireEvent.. 2024. 1. 21.
728x90