티스토리 뷰
✏️React를 경험해보자 3탄
2편에서 Axios를 통해 get을 호출했는데 Cors에러가 발생해서 API호출에 성공하지 못했다.
3편에서는 이처럼 Cors 에러를 해결할 수 있는 Proxy 설정을 하려고 한다.
- Cors??
우선 Cors에러가 발생하는 이유는, 다음과 같다.
Front서버는 localhost:3000 포트를 사용 중이고, Backend는 localhost:5000 포트를 사용중이다.
이처럼 다른 포트를 사용중일 때, 보안 상의 이유로 Cross Origin Resource Sharing 에러가 발생한다.
이 문제를 해결할 수 있는 방법은 여러가지가 있지만, 나는 Proxy를 통해 해결하려고 한다.
- Proxy ??
네이버에 Proxy 단어를 검색했을 때 나오는 뜻은 "대리, 대리인" 등의 뜻이 나온다.
대리인의 역할, 즉 중간 역할을 해준다고 생각하면 될 것 같다.
그렇다면 중간 역할이 왜 필요할까?
사용자가 요청을 할 때 IP가 전달이 되는데, Proxy가 유저의 IP를 받아 임의로 바꿔버릴 수 있다.
그래서 인터넷에 접근하는 사람의 IP를 모르게 해준다.
Proxy 사용 이유를 검색해보았을 때 이러한 이유가 대표적이다.
1. 특정인 (회사 직원, 혹은 아이들) 인터넷 사용 제어
2. 캐싱을 이용한 더 빠른 인터넷 이용 제공
3. 보안 제공
4. 이용 제한된 사이트 접근 가능
- Proxy 설정을 통해 Cors 이슈를 해결해보자.
npm install http-proxy-middleware --save
create-react-app.dev/docs/proxying-api-requests-in-development/
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function(app) {
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:5000',
changeOrigin: true,
})
);
};
http-proxy-middleware 설치 후 src 폴더 안에 setupProxy.js 파일을 생성하고,
위 코드를 붙여넣어준다. target에 서버 포트를 입력해주면 된다.
그리고 Backend 서버와 Front 서버를 켜서 Cors이슈가 뜨는지 확인해보면?!
Cors 에러 없이 정상적으로 get API가 작동하여 데이터를 가져오는 것을 확인해볼 수 있다.
'React.js' 카테고리의 다른 글
React를 경험해보자. 6탄 (2) | 2020.11.05 |
---|---|
React를 경험해보자. 5탄 (0) | 2020.11.03 |
React를 경험해보자. 4탄 (0) | 2020.11.02 |
React를 경험해보자. 2탄 (0) | 2020.10.30 |
React를 경험해보자. 1탄 (2) | 2020.10.29 |
- Total
- Today
- Yesterday
- Cypress
- vuetify
- pagination
- vue3
- Redux
- vue.js
- react native
- CORS
- react
- 호이스팅
- three.js
- 퍼블리셔
- Store
- react query
- pinia
- e2e
- JS
- typescript
- frontend
- react-query
- Core Components
- vue
- 타입스크립트
- vuex
- 자바스크립트
- composition
- 포트폴리오
- Front
- backend
- NUXT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |