홈
Taewok
취소

[React] React Query 기본 사용법 정리

React Query란? React Query는 서버에서 가져온 데이터를 관리하기 위한 라이브러리입니다. React의 useState와 useEffect만으로도 API 데이터를 가져올 수 있지만, 로딩 상태, 에러 상태, 캐싱, 재요청, 동기화까지 직접 처리하려면 코드가 금방 복잡해집니다. React Query를 사용하면 이런 서버 상태 관리 로...

[React] Recoil 기본 사용법 정리

Recoil이란? Recoil은 React에서 전역 상태를 관리하기 위한 라이브러리입니다. 컴포넌트 여러 곳에서 같은 상태를 읽거나 수정해야 할 때 props를 계속 내려보내지 않고 상태를 공유할 수 있게 도와줍니다. Recoil의 핵심 개념은 atom과 selector입니다. 설치하기 npm install recoil 또는 yarn을...

[React] Query String 이해하기

Query String이란? Query String은 URL 뒤에 ?를 붙이고 key-value 형태의 값을 전달하는 방식입니다. /search?keyword=react 여기서 keyword=react가 query string입니다. 검색어, 필터, 정렬 조건처럼 페이지 조회 조건을 URL에 담을 때 자주 사용합니다. 기본 형태 Que...

[React] Path Parameter 이해하기

Path Parameter란? Path Parameter는 URL 경로 안에 들어가는 동적인 값입니다. 예를 들어 게시글 상세 페이지 URL이 아래처럼 생겼다고 해볼게요. /posts/15 여기서 15는 게시글 id입니다. 이처럼 URL 경로 일부를 변수처럼 사용하는 값을 path parameter라고 부릅니다. 언제 사용할까요? P...

[JavaScript] Optional Chaining과 Nullish Coalescing

들어가며 프론트엔드에서 API 데이터를 다루다 보면 아직 값이 없거나, 특정 필드가 내려오지 않는 상황을 자주 만납니다. 이때 안전하게 값을 읽기 위해 사용하는 문법이 Optional Chaining ?.입니다. 그리고 기본값을 넣을 때 자주 사용하는 문법이 Nullish Coalescing ??입니다. 두 문법을 함께 사용하면 방어 코드를 훨...

[JavaScript] 호이스팅 이해하기

호이스팅이란? 호이스팅은 JavaScript가 코드를 실행하기 전에 선언을 먼저 인식하는 동작을 말합니다. 말 그대로 코드가 실제로 위로 이동하는 것은 아니지만, 실행 컨텍스트가 만들어지는 과정에서 선언 정보가 먼저 준비됩니다. 그래서 어떤 코드는 선언보다 앞에서 사용해도 동작하고, 어떤 코드는 에러가 발생합니다. var의 호이스팅 var...

[JavaScript] async와 await 기본 사용법

async와 await가 필요한 이유 JavaScript에서는 API 요청, 타이머, 파일 처리처럼 시간이 걸리는 작업을 비동기로 처리합니다. 예전에는 Promise의 then을 이어 붙여서 처리하는 경우가 많았습니다. fetchUser() .then((user) => fetchPosts(user.id)) .then((posts) =...

[Error] value prop without onChange handler 경고 해결하기

발생한 경고 React에서 input을 만들다가 다음 경고를 만날 때가 있습니다. You provided a `value` prop to a form field without an `onChange` handler. 이 경고는 input에 value는 넣었는데, 값을 변경할 수 있는 onChange가 없을 때 발생합니다. 문제가 된 코드 ...

[Error] TypeScript에서 is not a function 해결하기

발생한 에러 부모 컴포넌트에서 만든 state와 setState 함수를 자식 컴포넌트로 넘기는 과정에서 다음과 같은 에러가 발생했습니다. setCount is not a function 값은 잘 넘어오는 것처럼 보이는데, setCount()를 호출하는 순간 함수가 아니라는 에러가 난 상황입니다. 문제가 된 코드 처음에는 자식 컴포넌트를 ...

[Error] Cannot destructure property 'data' of undefined 해결하기

발생한 에러 API 요청을 처리하던 중 다음과 같은 에러를 만났습니다. Cannot destructure property 'data' of '(intermediate value)' as it is undefined. 보통 이런 코드를 작성했을 때 발생할 수 있습니다. const { data } = await api.get("/users/me"...