1. Redux toolkit
리덕스 툴킷은 우리가 이전에 배운 리덕스를 개량한 것
코드는 더 적게, 그리고 리덕스를 더 편하게 쓰기 위한 기능들을 흡수해서 만든 것이 리덕스툴킷 입니다. 줄여서 RTK 라고도 합니다.
Redux Devtools
현재 프로젝트의 state 상태라던가, 어떤 액션이 일어났을 때 그 액션이 무엇이고, 그것으로 인해 state가 어떻게 변경되었는지 등 리덕스를 사용하여 개발할 때 아주 편리하게 사용할 수 있습니다.
Flux pattern
Flux는 redux의 데이터 흐름 패턴입니다.
참고자료: https://bestalign.github.io/translation/cartoon-guide-to-flux/
Flux로의 카툰 안내서
원문: https://medium.com/code-cartoons/a-cartoon-guide-to-flux-6157355ab207 Flux…
bestalign.github.io
2. json-server
아주 간단한 DB와 API 서버를 생성해주는 패키지
front-end 개발시에 back-end에서 서버 개발이 되지 않았어도 개발을 할 수 있도록 독립적,임시적으로 사용할 수 있는 서버
db.json이라는 파일에 db를 저장하고 사용한다.
api란? 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말
Axios
- Axios란? http를 이용해서 서버와 통신하기 위해 사용하는 패키지
- Axios 메소드
- GET: 서버의 데이터를 조회할때 사용
- POST: 서버의 데이터를 추가할때 사용
- DELETE: 서버에서 데이터를 지울 때 사용
- PATCH: 서버의 데이터를 수정할 때 사용
- 더 알아보면 좋을 키워드
- axios instance 란 무엇이고, 왜 사용할까?
- 반복적으로 사용하는 axios를 좀더 간편하게 사용하고, 유지보수에 용이하게 하기 위헤 instance를 만든다.
- axios intercepter란 무엇이고, 왜 사용할까?
- Axios는 HTTP 요청과 응답을 가로채는 Interceptor를 지원
- Axios 인스턴스는 요청과 응답에 대해 각각 Interceptor 관리자를 가지고 있고, 이 관리자들은 요청이나 응답을 가로챌 때 실행할 핸들러를 관리
- fetch에 비해 axios가 더 좋은 점은 무엇인가?
- Fetch 와 axios는 모두 promise 기반의 HTTP 클라이언트입니다. 즉 이 클라이언트를 이용해 네트워크 요청을 하면 이행(resolve) 혹은 거부(reject)할 수 있는 promise가 반환됩니다.
- fetch
- 장점
- 자바스크립트의 내장 라이브러리 이므로 별도로 import 할 필요가 없습니다.
- Promise 기반으로 만들어졌기 때문에 데이터 다루기 편리합니다.
- 내장 라이브러리이기 때문에 업데이트에 따른 에러 방지가 가능합니다.
- 단점
- 지원하지 않는 브라우저가 존재 (IE11...)
- 네트워크 에러 발생 시 response timeout이 없어 기다려야 합니다.
- JSON으로 변환해주는 과정 필요합니다.
- 상대적으로 axios에 비해 기능이 부족합니다.
- 장점
- axios
- 장점
- response timeout (fetch에는 없는 기능) 처리 방법이 존재입니다.
- Promise 기반으로 만들어졌기 때문에 데이터 다루기 편리합니다
- 크로스 브라우징 최적화로 브라우저 호환성(구형 브라우저 지원)이 뛰어납니다.
- 단점
- 사용을 위해 모듈 설치 필요합니다. (npm install axios)
- 장점
- http status code는 어떤 것들이 있고, 각 code는 어떤 의미로 약속됐을까?
- request headers와 response headers의 정보들은 각각 어떤 정보들일까?
- axios instance 란 무엇이고, 왜 사용할까?
비동기 처리를 다루는 방법
- promise
- 내용은 실행 되었지만 결과를 아직 반환하지 않은 객체
- Promise의 3가지 상태
- Pending (대기): 비동기 처리가 아직 완료되지 않음
- Fulfilled (이행): 비동기 처리가 완료되었음
- Rejected (실패): 실패하거나 오류가 발생
- async와 await
- 기존의 callback 이나 Promise 의 단점을 해소하고자 만들어진 비동기 처리 문법
- await 는 async 함수 안에서만 동작한다.
- async/await 은 Promise 와는 다르게 에러를 핸들링 할 수 있는 기능이 없다. 따라서 try-catch() 문을 활용하여 에러를 핸들링 하여 주어야 한다.
- promise와 async/await의 차이점
- Promise 를 활용할 시에는 .catch() 문을 통해 에러 핸들링이 가능하지만, async/await 은 에러 핸들링 할 수 있는 기능이 없어 try-catch() 문을 활용해야 한다
- async/await 은 비동기 코드가 동기 코드처럼 읽히게 해준다. 코드 흐름을 이해 하기 쉽다.
- 코드가 길어지면 길어질수록, async/await 를 활용한 코드가 가독성이 좋다.
'Hanghae99' 카테고리의 다른 글
| 221220 TIL 미니프로젝트 5 (2) | 2022.12.21 |
|---|---|
| 221219 TIL 미니프로젝트 4 (1) | 2022.12.20 |
| 221218 TIL 미니프로젝트 3 (0) | 2022.12.18 |
| 221217 TIL 미니프로젝트 2 (0) | 2022.12.18 |
| 221216 TIL 미니프로젝트 1 (0) | 2022.12.17 |