서버 상태와 클라이언트 상태는 웹 애플리케이션 개발에서 관리하는 두 가지 주요 상태 유형입니다. 이 둘은 역할과 관리 방식에서 중요한 차이가 있습니다.
서버 상태는 외부 서버에서 제공하는 데이터나 리소스에 대한 상태를 의미합니다. 이 상태는 클라이언트 애플리케이션이 직접 관리하지 않고 서버로부터 받아오는 정보를 사용합니다. 예를 들어, 데이터베이스에 저장된 사용자 정보나 API로부터 받아오는 상품 목록 등이 서버 상태에 해당합니다.
클라이언트 상태는 애플리케이션 내부에서 관리되는 상태로, 서버와는 무관하게 애플리케이션 내에서 생성되고 유지되는 상태를 의미합니다. 이 상태는 주로 사용자 인터페이스의 동작이나 사용자 입력에 의해 변화합니다.
서버 상태 (Server State)클라이언트 상태 (Client State)
출처 | 외부 서버 또는 API | 애플리케이션 내부 |
데이터 소유 | 외부 서버가 소유 | 클라이언트가 소유 |
동기화 | 주기적인 리페칭 필요 | 실시간으로 동기화 가능 |
수명 | 외부 변화에 영향을 받음 | 애플리케이션 실행 중에만 유지 |
캐싱 필요성 | 네트워크 비용 절감을 위해 중요 | 보통 캐싱 불필요 |
관리 방식 | React Query, SWR 등 서버 상태 관리 도구 사용 | useState, Redux 등 클라이언트 상태 관리 도구 사용 |
서버 상태는 외부 서버에서 데이터를 가져와 관리하는 상태로, 네트워크 요청, 비동기 처리, 캐싱 등이 필요하며 데이터가 외부에서 변경될 가능성이 큽니다. 반면 클라이언트 상태는 애플리케이션 내에서 관리되는 상태로, UI 상호작용이나 로컬 상태 관리와 관련되어 있으며 즉각적이고 단기적인 특성을 갖습니다.
테스트 코드를 작성하면서 개발할 때 장점과 단점에 대해 (0) | 2024.10.04 |
---|---|
Storybook을 사용할 때 기대할 수 있는 장점에 대해 (0) | 2024.10.04 |
React Query가 만들어진 이유와 React Query를 사용할 때 얻게 되는 이점에 대해 (0) | 2024.09.25 |
두번째 프로젝트 회고 :: 링크 저장 Linkbrary (1) | 2024.09.19 |
Authorization Code를 활용하는 구글 소셜 로그인을 실행하기 까지 유저, 프론트엔드, 백엔드, OpenID Connect 프로바이더 사이에 어떤 과정을 거칠까? (0) | 2024.08.22 |