리액트 앱이나 일반적인 브라우저 앱에서
실행되는 자바스크립트 코드는
데이터베이스와 직접 통신하면 안된다.
왜?
기술로는 어려울 수 있겠지만
클라이언트 내부에서 데이터베이스에 직접 연결을 하거나
브라우저의 자바스크립트 코드를 통해 직접 연결을 하면
그 코드로 데이터베이스의 인증정보를 노출하게 된다.
브라우저에서 실행되는 모든 자바스크립트 코드는
브라우저 뿐만 아니라 웹사이트 사용자도 개발자도구를 통해 접근하고 읽을 수 있다.
데이터베이스 접근을 허가하는 인증 정보등이 노출될 수 있다.
그 외에 성능문제도 발생될 수 있는데 가장 큰 이슈는 보안이다.
직접이 아닌 다른 방식을 사용해야 한다.
예를 들어 백엔드 어플리케이션이다. ( NodeJS App, PHP App, ...)
브라우저가 아닌 다른 서버에서 실행된다.
여러 언어로 만들 수가 있다.
이 데이터베이스와 통신하는 백엔드 어플리케이션은
사용자가 백엔드 코드를 확인할 수 없기 때문에
데이터베이스의 인증정보를 안전하게 저장할 수 있다.
다른 서버에 있으므로 사용자는 코드를 절대 볼 수 없다.
리액트앱은 백엔드 서버, 백엔드 API라고 불리는
서로 다른 URL로의 요청을 전송하는 서버와 통신한다.
'공부기록 > [강의노트] Udemy React 완벽가이드 101~200' 카테고리의 다른 글
# 188 [udemy React 완벽 가이드 노트] http오류 처리하기 (0) | 2022.10.03 |
---|---|
# 184 [udemy React 완벽 가이드 노트] SWAPI (The Star Wars API) axios, fetch API, async await (0) | 2022.10.02 |
# 179 [udemy React 완벽 가이드 노트] 클래스 기반 컴포넌트를 써야할 때 : Error Boundaries (try-catch 문) (1) | 2022.09.30 |
# 177 [udemy React 완벽 가이드 노트] 클래스 컴포넌트와 컨텍스트 (1) | 2022.09.30 |
# 175 [udemy React 완벽 가이드 노트] 클래스 컴포넌트 Lifecycle (0) | 2022.09.29 |