📬 서버 상태(Server State)서버 상태란 클라이언트가 아닌 서버나 그 밖의 외부 공간에 저장되어 있는 데이터로, 일반적으로 클라이언트가 요청을 보내 데이터를 사용합니다.서버 상태의 특징은 다음과 같습니다.서버에 저장되므로 클라이언트가 종료되어도 데이터가 사라지지 않습니다.보통 클라이언트에서 API 요청을 보내 데이터를 받아서 사용하며권한이 있는 클라이언트라면 누구나 서버 상태 데이터에 접근할 수 있습니다.네트워크 요청이 요구되므로 데이터에 접근하고 업데이트하는 데 시간이 걸릴 수 있습니다.서버 상태에는사용자와 관련된 정보(프로필, 권한의 정도)데이터베이스에 저장된 각종 데이터API를 통해 가져와야 하는 데이터비동기 데이터등이 존재합니다. 📬 클라이언트 상태(Client State)클라이언트 ..
React
🏝️ React-Query란웹 애플리케이션에서 서버 상태를 가져오고, 캐싱하고, 동기화하고, 업데이트하는 것을 쉽게 만들어주는 상태 관리 라이브러리입니다.- TanStack Query리액트로 애플리케이션을 개발하면, 보통 useState와 useEffect를 사용하여 데이터와 상태를 관리합니다.이 과정에서 상위 컴포넌트에서 하위 컴포넌트로 props를 깊게 내려줘야 하는 상황('props drilling')이나 공통된 데이터를 여러 컴포넌트에서 사용하는 경우가 존재합니다. 이때 리액트의 컨텍스트(context API)를 사용할 수 있지만, 애플리케이션의 규모가 크거나 구조가 복잡하다면 컨텍스트만으로 상태를 관리하는 것은 한계가 있습니다. 따라서 반복적인 데이터 fetching 코드 감소기존 데이터 캐싱..
🔮 디자인 패턴이란디자인 패턴이란 프로그램을 개발하는 과정에서 사용되는 설계 패턴들을 정의한 것입니다.과거의 웹 사이트보다 훨씬 복잡해지고 다양한 개발 프레임워크를 사용하는 지금, 효율적인 웹 사이트의 구축이나 유지보수를 위해 컴포넌트 단위의 활용은 더욱 중요한 사항이 되었습니다. 따라서 컴포넌트를 구성하는 방법에 대한 다양한 디자인 패턴이 생겨나게 되었으며,패턴마다 장단점이 존재하므로 프로젝트의 특성에 맞는 디자인 패턴을 선택해야 합니다. 리액트의 주요한 디자인 패턴은 다음과 같습니다.컴포넌트 기반 아키텍처(component-based architecture)상태 관리 패턴(state management pattern)프레젠테이션-컨테이너 패턴(presentation-container pattern)..
🌱 생명주기란?리액트의 생명주기란 컴포넌트가 생성되어 사용되고 소멸되는 일련의 과정을 뜻합니다.모든 리액트 컴포넌트에는 생명주기 이벤트가 발생합니다.이 이벤트를 기반으로 컴포넌트가 수행할 동작과 실행 시점을 제어하고 정의할 수 있습니다. 생명주기 이벤트에는 3가지 종류가 존재합니다.생성(mounting) 이벤트: 리액트 요소가 처음으로 돔에 추가될 때 발생갱신(updateing) 이벤트: 속성이나 상태가 변경되어 리액트 요소가 갱신될 때 발생제거(unmounting) 이벤트: 리액트 요소가 돔에서 제거될 때 발생함수형 컴포넌트에서 이벤트를 발생시키기 위해 주로 사용하는 훅은 'useState'와 'useEffect'입니다.아래에서 아이템을 추가할 수 있는 쇼핑 리스트 애플리케이션을 예시로 각 이벤트를 ..