Mission: 무한 스크롤과 배열 질문 정리
📌
1. 데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할점은?
- 성능: 많은 데이터를 한 번에 렌더링하지 말고 화면에 보이는 일부만 처리하여 성능 유지.
- 가상화: 화면에 보이는 아이템만 렌더링하는 가상화 기술 사용하여 성능 최적화.
- 데이터 로딩: 초기 로딩 시 일부 아이템만 로드하고 스크롤 시 추가 데이터 비동기적 로드.
- 스크롤 이벤트: 스크롤 이벤트 관리하여 빈번한 호출 방지 및 데이터 로드 최적화.
- 네트워크 요청: 효율적인 데이터 요청과 응답 처리로 네트워크 속도 개선.
- 로딩 상태: 로딩 중임을 시각적으로 보여주는 로딩 스피너나 메시지 사용.
- 에러 핸들링: 데이터 요청 오류 시 사용자에게 알림 제공.
- 사용자 경험: 자연스러운 스크롤, 부드러운 UX 제공.
- 메모리 관리: 사용하지 않는 데이터 메모리 해제하여 누수 방지.
- 브라우저 호환성: 다양한 브라우저에서 테스트 및 호환성 유지.
2. 배열의 필요성을 말해보아요- 배열은 연속적인 메모리 위치에 데이터를 저장하는 자료구조입니다. 배열은 데이터의 순서를 유지할 수 있으며, 데이터에 빠르게 접근할 수 있습니다.
- 하지만, 배열의 크기는 고정되어 있기 때문에, 데이터가 많아지면 배열을 재할당해야 하는데 최종적으로 데이터 갯수가 확정되어 있고, 데이터 읽기와 수정이 많고 새로운 데이터가 추가되거나 삭제되지 않는 경우 사용하기 적합하기에 배열은 필요합니다.
- 실제로 이런 원리를 기억하면 어떨 때 어떤 자료구조를 사용해야 하는가는 따로 외우지 않아도 유추해서 배열을 통해 적합한 자료구조를 사용할 수 있습니다.
2-1. 다른 비선형 자료구조는 무엇이 있을까요?- 비선형 자료구조 중 하나인 링크드 리스트는 일반적인 리스트로 불리며, 노드로 연결된 데이터를 저장하는 자료구조입니다. 링크드 리스트는 데이터의 순서를 유지할 수 없지만, 데이터를 추가하거나 삭제하는 것이 쉽습니다. 또한, 배열과 달리 배열의 크기를 우리가 지정하거나 변경할 필요가 없습니다.
2-2. 배열과 리스트는 언제 사용하기 적합할까요?- 시간복잡도와 상황에 맞게 적절하게 사용하면 됩니다.
- 리스트
- 일반적으로 데이터의 추가, 삭제가 많은 경우 리스트를 사용하는 것이 효율이 좋습니다.
- 배열
- 데이터가 자주 추가, 삭제 되지 않고, 읽고 수정하는 경우가 많 을 때 배열을 사용하는 것이 효율이 좋습니다.
사실 명확하게 이 때는 이걸 써라! 라고 할 수 없지만, 중요한건 배열과 리스트의 원리를 이해하고 현재의 로직에 적절한걸 쓰면 됩니다.