개발자
예를 들어 어떤 데이터를 정렬 또는 필터링해서 사용자에게 보여주려고 할 때 서버에서 데이터를 미리 처리해서 프론트로 보내주고 바로 렌더링 시켜주는 것이 속도가 빠를지 프론트에서 바로 처리되지 않은 데이터를 받고 프론트 단에서 처리를 해주고 보여주는 것이 렌더링 속도가 빠를지 의문점이 생기네요! 경우에 따라 다를까요? 카테고리 같은 경우에는 프론트에서 처리 해주려면 프론트에서 데이터를 계속 들고 있거나 서버에서 매번 대용량 데이터를 받아와야 하니 서버에서 처리하는 것이 빠를까요? 단순 순서 정렬은 서버에서 하나 프론트에서 하나 똑같을까요?
답변 1
문의 주신 모든 것의 답은 서버에서 하는 게 더 적절하며 에러가 적다 입니다. 중간에 데이터의 갱신 삭제 변경이 일어났을 경우 들고 있는 데이터가 맞다 라고 가정할 수 없을 뿐더러 성능을 요하는 작업의 경우 클라이언트 보다 서버가 훨신 빠르고 정확합니다. 이미 받은 데이터를 정렬 혹은 필터링 할 시 프론트에서 처리하는 방법도 가능하나 이 경우 데이터의 갱신이 없다면 해당 정보가 최신화 된 정보인지 알 수 없습니다. 대용량 데이터의 경우 여러가지 기능을 사용해 보통 분할해서 받을 수 있습니다. 프론트 기준으로 무한스크롤, 페이지네이션등 방법은 다양하며 필요 시 순차적으로 데이터를 받는다면 큰 규모의 통신을 억제할 수 있습니다. 👍
김태우
작성자
Founding Engineer • 2023년 12월 18일
아! 최신화를 딱 보고 아차 싶었네요! 답변 감사드립니다~
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 12월 17일
서버와 클라이언트(프론트)에서의 데이터 처리는 그에 따른 네트워크 오버헤드, 서버와 클라이언트의 컴퓨팅 파워, 그리고 사용자 경험, 등에 따라 달라질 수 있습니다. 1. **네트워크 오버헤드**: 서버에서 데이터를 미리 처리하면 처리된 데이터만큼 클라이언트로 보내기 때문에 네트워크 트래픽을 줄일 수 있으며, 이는 특히 대용량 데이터를 다루는 경우 중요합니다. 반대로 프론트에서 처리할 경우, 원본 데이터를 모두 받아와야하기 때문에 더 많은 네트워크 리소스를 필요로 합니다. 2. **컴퓨팅 파워**: 클라이언트 사이드에서 필터링 및 정렬을 하는 것은 클라이언트의 컴퓨팅 파워에 의존하게 됩니다. 일부 사용자들은 고성능 장비를 가지고 있지 않을 수 있으므로 서버에서 미리 처리하는 것이 좀 더 안전한 방법일 수 있습니다. 3. **사용자 경험**: 프론트에서 처리할 경우, 일단 원본 데이터를 받아오는 시간이 걸리지만, 이후에는 서버와의 통신 없이도 필터링 및 정렬을 변경할 수 있습니다. 따라서 사용자 입장에서는 더 나은 반응성을 제공하게 됩니다. 위에서 언급한 것처럼 데이터 처리 위치는 상황에 따라 달라져야 합니다. 가령, 유동적으로 변하는 정렬이나 필터링 기능을 많이 제공해야 하는 경우 프론트에서 처리하는 것이 효율적일 수 있습니다. 반대로 고정된 카테고리를 보여주는 등의 경우에는 서버에서 미리 처리해서 보내주는 것이 효과적일 수 있습니다. 단순 순서 정렬 같은 경우에도 위와 비슷합니다. 하지만 대부분의 경우, 데이터베이스 쿼리 수준에서의 정렬은 매우 최적화 되어있기 때문에, 큰 데이터셋의 경우 서버(데이터베이스)에서 정렬하여 결과를 가져오는 것이 일반적으로 더 빠르며 효율적입니다. 결론적으로, 복잡함과 복잡도, 네트워크 비용 및 사용자 경험 등 다양한 요소들을 고려하여 결정해야 합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!