대기 및 날씨 데이터 시각화 시 리액트 렌더링 성능 최적화 방안: 실시간 데이터 처리에서의 로딩 속도 개선을 위한 실험적 접근 #18
Recyclingbottle
started this conversation in
Deepdive
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
주제 선정 배경
현재 진행 중인 "숨쉬는 다람쥐" 일명 "숨다" 서비스를 MVP 개발까지 진행하였습니다. MVP 개발 된 기능 중 주요 기능인 현재 위치나 선택된 지역의 '날씨' 와 '대기 오염' 정보를 조회하는 페이지입니다. 개발 초기 단계에서는 목업 데이터를 사용해 로딩 속도가 빨랐지만, 실제로 구현된 벡엔드 서버와 연결하면서 실제 데이터를 요청하고 응답을 시각화 하는 과정에서 시간이 더 증가했습니다. 이를 개선하기 위해서 어떤 방법이 있는 지, 어떻게 해야 좀 더 빠르게 사용자가에 보여질 수 있는 지를 연구해보고 싶습니다.
리액트에서 로딩이란?
먼저, 리액트에서 로딩이라는 게 무엇인지 개념을 정의하고 진행하는 게 좋을 거 같아서 로딩을 정의하고자 한다.
Loading 이라는 영단어를 검색하면 단어 사전으로 뜻을 찾아보았다. Load 와 ing 의 합쳐서 Loading 이 되었으니 Load 의 뜻을 살펴보았다.
여러 뜻 중에 싣다[태우다/적재하다], (짐이) 실리다[적재되다] 가 눈에 띈다. 즉, Loading 은 "어딘가" 에 "무언가" 를 적재, 싣는 것이라고 할 수 있다. 이를 리액트, 내 상황에 접목 시키면 이렇게 이야기 할 수 있지 않을까?
[ "날씨" 와 "대기 오염" 데이터 ] 를 [ 화면 ] 에 싣는 것 이라고.
리액트 공식 문서에서 사용되는 단어를 사용해서 "리액트" 환경에서 로딩은 컴포넌트의 상태(state) 나 props 가 화면에 그려지면서 발생하는 과정이라고 한다. 그럼 API 로 부터 데이터를 가져오거나 가져온 데이터를 표시하는 과정에서 로딩이 발생하고, 빠르게 사용자에게 보여주기 위해서 이 로딩을 빠르게 속도를 개선하는 과정이다.
리액트의 주요 개념 정리
리액트에서 랜더링, 즉 로딩을 최적화하기 위해서 로딩과 관련된 필요한 개념들을 Wiki 와 React Docs 를 보고 정리해야한다.
알아야 할 최소의 개념은
이 정도로 정리할 수 있을 거 같다. 그럼 순서대로 개념을 간단하게 정리해보자.
리액트 컴포넌트
리액트 상태 (State)
useState
와 같은 훅을 사용하여 상태를 정의하고, 상태가 변화하면 useState 는 화면을 다시 그린다.렌더링
컴포넌트 마운트 및 언마운트
데이터 패칭 (Fetching Data)
리액트 생명주기 (Lifecycle)
useEffect
로, 클래스형 컴포넌트에서는 생명 주기 메서드로 관리한다. 때문에 함수형 컴포넌트를 사용하면 생명 주기 메소드를 일일히 지정해주지 않아도 되기에 함수형 컴포넌트를 자주 사용한다. 생명 주기 메소드를 일일히 호출하지 않아도 되기에 코드가 줄어들고, 가독성이 늘기에 함수형 컴포넌트가 많은 개발자가 사용한다.===========================================================================================
Beta Was this translation helpful? Give feedback.
All reactions