🚀 React-Query로 검색 기능 구현 처음에 구현을 했을 때는 처음 검색은 되는데, 이후에 다른 검색어로는 검색 결과가 제대로 받아지지 않았었습니다. 그 해결방법으로 쿼리 키를 하나 더 사용하는 방법을 이용했습니다. 📜 Hooks/Queries/get-search.js 파일 const getSearch = async params => { const res = await MovieApi.getSearch(params) return res.data } const useGetSearch = params => { const { data, error, status, isLoading } = useQuery( [QUERY_KEY.GET_SEARCH, params.title], () => getSearch(pa..
🚀 영화 목록 조회 프로젝트를 회고 하기 전에 본 프로젝트는 코리아 it 학원에서 프론트엔드 수업을 하며 과제로 나왔던 주제입니다. 저 포함 4명의 팀원들과 함께 진행했으며, 이번 회고 시리즈에서는 제가 한 부분과 다른 분께서 했지만 다시 정리해 보면 좋을 내용들을 포함해 보려고 합니다 :) 프로젝트 설명 영화 트레일러 오픈 API를 활용한 영화 목록 조회 웹 사이트입니다. 기능 구현 사항 react-query를 사용하여 데이터를 캐싱 로딩 중에는 skeleton UI를 나타낼 것 목록을 불러올 때는 react-query의 useInfinitieQuery를 사용하여 무한 스크롤링으로 불러올 것 페이지 리스트 페이지 각 영화의 평점 및 짧은 미리보기(소개)가 나타나야 함 미리보기는 길이가 길다면 특정 글자..
🚀 Suspense ? Suspense는 컴포넌트의 렌더링을 어떤 작업이 끝날 때까지 잠시 중단시키고 다른 컴포넌트를 먼저 렌더링할 수 있습니다. 어떤 컴포넌트가 읽어야 하는 데이터가 아직 준비가 되지 않았다고 리액트에게 알려주는 방법이 되겠습니다. 쉽게 말해서, 우리가 서버에서 데이터를 받아올 때 클라이언트의 상태는 요청 → 대기 → 응답 순이 될 겁니다. 이 대기할 때 Suspense의 fallback이라는 속성에 따로 지정해둔 컴포넌트를 화면에 보여주고 응답이 왔을 때는 원래대로 보여주고 싶었던 데이터를 보여주는 방법이라고 볼 수 있습니다. 기본 문법 컴포넌트를 위와 같이 Suspense로 감싸주면 컴포넌트의 렌더링을 특정 작업 이후(위에서는 데이터를 받아오기 전까지) 미루고, 그 작업이 끝날 때까..
🚀 에러 핸들링 ? 리액트에 오류가 발생했을 때 유저 혹은 개발자에게 어떤 방식으로 표출할지에 대한 내용입니다. 여기서 오류는 api 요청에 대한 오류 메시지일 수도 있고, 리액트에서 캐치한 오류일 수도 있습니다. 또한 에러가 발생할법한 상황들을 생각해보고 유저에게 에러 발생을 알리는 것 뿐만 아니라, 가능하다면 어떻게 대응할지도 전달해주는 것이 사용성 측면에서도 좋다고 볼 수 있습니다. 어떤 식으로 에러를 알리는가 ? 유저에게는 toast UI를 통해 에러 상황을 알려주거나 상황에 따라서는 다시시도 버튼 혹은 로그인 모달을 제공할 수도 있겠습니다. 또한 개발자에게 개발 환경에서는 에러 발생 시 console.error()로 알려주고, 배포 환경에서 에러 발생시 Sentry로 알려주어 대응합니다. 위와 ..
🚀 React-Query ? React-Query는 서버로부터 받은 데이터의 전역 상태 관리를 위한 라이브러리입니다. 서버의 데이터 요청을 캐싱하여 지속적으로 동기화하고 업데이트 하는 작업을 도와줍니다. 사용하는 이유 postList를 get하는 요청을 해서 목록 페이지에 보여준다고 해봅시다. 그러면 우리는 useEffect(() => {}, []) 안에 get 요청을 하는 코드를 작성해서 화면에 렌더링이 되면 get 요청을 보내서 응답을 받고 그걸 다시 useState로 해둔 state로 저장하게 될 것입니다. 그런데 postList가 바뀌지 않았는데 화면이 마운트될 때 마다 요청을 보내고 받고 요청을 보내고 받고 하는 것은 불필요한 요청같아 보입니다. React-Query에서는 이 서버로부터 받은 데..
🚀 Recoil ? → 간결한 코드로 전역 상태 관리가 가능한 라이브러리 Recoil은 페이스북이 2020년 5월에 소개한 React 전용 상태 관리 라이브러리입니다. 상태 관리 라이브러리에는 Redux도 있었는데요. Redux는 아래와 같은 문제점을 가지고 있습니다. React 전용 라이브러리가 아니다 복잡한 보일러 플레이트 (초기 세팅) 비동기 데이터에 대해서 추가 미들웨어 설치 필요 위와 같은 문제점을 개선하고자 Recoil이 등장하게 되었습니다. Recoil의 경우 context API와 달리 전역 상태에 대한 atom을 생성하고, 해당 atom을 구독하고 있는 구성요소만 리렌더링 됩니다. 따라서 불필요한 리렌더링도 방지할 수 있습니다. Atom Recoil에서 atom은 상태 관리의 최소 단위를..
- Total
- Today
- Yesterday
- frontend
- TypeScript
- rtl
- 자바스크립트 기초
- HTML
- CSS
- react-query
- Python
- 자바스크립트
- 머신러닝
- 딥러닝
- testing
- 디프만
- 프론트엔드 공부
- jest
- react
- 자바
- 리액트
- 타입스크립트
- JSP
- 프론트엔드 기초
- 스타일 컴포넌트 styled-components
- next.js
- styled-components
- 데이터분석
- 파이썬
- 인프런
- 리액트 훅
- 프론트엔드
- 프로젝트 회고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |