행복한 딸기 🍓

[Computer Science] 배열 / 비선형 자료구조 / 리스트 / 무한 스크롤 본문

TIL

[Computer Science] 배열 / 비선형 자료구조 / 리스트 / 무한 스크롤

🍀먹고 자란 🍓 2023. 8. 31. 19:25

질문

왜 배열이 필요할까?

답변

배열은 연속적인 메모리 위치에 데이터를 저장하는 자료구조입니다. 배열은 데이터의 순서를 유지할 수 있으며, 데이터에 빠르게 접근할 수 있습니다. 하지만, 배열의 크기는 고정되어 있기 때문에, 데이터가 많아지면 배열을 재할당해야 하는데 최종적으로 데이터 갯수가 확정되어 있고, 데이터 읽기와 수정이 많고 새로운 데이터가 추가되거나 삭제되지 않는 경우 사용하기 적합하기에 배열은 필요합니다. 실제로 이런 원리를 기억하면 어떨 때 어떤 자료구조를 사용해야 하는가는 따로 외우지 않아도 유추해서 배열을 통해 적합한 자료구조를 사용할 수 있습니다.

 

 


꼬리질문

다른 비선형 자료구조는 무엇이 있을까요?

답변

비선형 자료구조 중 하나인 링크드 리스트는 일반적인 리스트로 불리며, 노드로 연결된 데이터를 저장하는 자료구조입니다. 링크드 리스트는 데이터의 순서를 유지할 수 없지만, 데이터를 추가하거나 삭제하는 것이 쉽습니다. 또한, 배열과 달리 배열의 크기를 우리가 지정하거나 변경할 필요가 없습니다.

 


꼬리질문

그렇다면 배열은 언제 사용할 수 있고 리스트는 언제 사용가능할까요?

답변

시간복잡도와 상황에 맞게 적절하게 사용하면 됩니다.

리스트

일반적으로 데이터의 추가, 삭제가 많은 경우 리스트를 사용하는 것이 효율이 좋습니다.

배열

데이터가 자주 추가, 삭제 되지 않고, 읽고 수정하는 경우가 많 을 때 배열을 사용하는 것이 효율이 좋습니다.

사실 명확하게 이 때는 이걸 써라! 라고 할 수 없지만, 중요한건 배열과 리스트의 원리를 이해하고 현재의 로직에 적절한걸 쓰면 됩니다.

 


Q9. 데이터 10,000개를 가지고 무한 스크롤 구현시에 가장 중요하게 고려해야 할점은

  1. 성능과 로딩 속도: 빠른 데이터 로딩을 보장해야 함.
  2. 데이터 청크 처리: 작은 청크로 데이터 로드를 나눠 부드러운 스크롤 제공.
  3. 가시성 및 경험: 화면 갱신을 부드럽게 처리하여 사용자 경험 유지.
  4. 스크롤 위치 관리: 이전 스크롤 위치 복원 기능 필요.
  5. 로딩 표시와 피드백: 로딩 상태 표시로 사용자에게 피드백 제공.
  6. 데이터 관리와 최적화: 메모리 관리를 통한 데이터 최적화 필요.
  7. 검색 및 필터링: 데이터 검색과 필터링 기능 고려.
  8. 에러 핸들링: 데이터 로딩 중 오류 처리 방안 마련.
  9. SEO 고려: 검색 엔진 최적화 방법 고민.
  10. 테스트와 사용자 피드백: 다양한 환경에서 테스트하고 사용자의 의견 수렴하여 개선.
무한 스크롤 구현에서 가장 중요한 요소는
성능과 로딩 속도
입니다. 사용자가 웹 페이지를 사용하는 동안 빠른 데이터 로딩을 제공하지 않으면 사용자 경험이 나빠지고 페이지의 유용성이 감소할 수 있습니다. 대량의 데이터를 다루는 경우에도 빠른 로딩을 유지하기 위해 서버와 클라이언트 간의 효율적인 데이터 통신과 처리 방식을 설계해야 합니다.