웹 서비스 구조
웹서비스는 Front-end 프로그램, Back-end 프로그램 그리고 DataBase로 이루어져있습니다.
그리고 이 구성으로 제작된 웹 서비스를 user는 Browser를 통해 이용하게 됩니다.
🔨 접속자가 적다면 한대에 이 세가지 프로그램을 다 설치해서 운영하는 것도 충분히 가능합니다.
접속자가 많아질 경우 각 접속자에 대한 메모리 할당량이 버거워질 수가 있어서
현대에 와서는 한 컴퓨터 당 하나의 프로그램을 설치하고 있습니다.
프런트엔드 서버 컴퓨터
백엔드 서버 컴퓨터
데이터 베이스 서버
이런 식으로 말입니다.
예를 들면
백엔드는 node.js
프런트는 next
데이터베이스는 postgres가 설치되어 있는 식입니다.
이 때, 서버라고 한다면
프로그램이 깔려서 24시간 동작하고 있는 컴퓨터! 라고 생각하시면 됩니다.
서버 프로그램이라면 포트가 있고 그 포트로 24시간 실행되고 있어야 합니다.
이 때 프런트엔드 서버 컴퓨터, 백엔드 서버 컴퓨터, 데이버베이스 서버 컴퓨터 등에서
컴퓨터 자는 생략해도 무방합니다.
🔨 서버 프로그램은 왜 24시간 켜놓고 끄면 안될까요?
서버는 접속을 기다립니다.
백엔드는 api를 만들어 놓고 기다리는데
기다리려면 24시간 기다려야 하고 포트 번호가 떠 있어야 합니다.
마찬가지로 database는 백엔드의 접속을 기다립니다.
백엔드가 무사히 접속할 수 있게끔 포트가 있고
24시간 기다려야 합니다. 그걸 데이터 베이스 서버 프로그램 이라고 합니다.
프런트엔드 서버는 브라우저가 주소창에 주소 치기를 기다리는 서버입니다.
SQL / NoSQL
DataBase 연결 방식에는 크게 두 가지가 있습니다.
ORM 과 ODM 으로 나뉘는데,
ORM은 데이터를 표(Table) 안에 객체 형태로 행과 열에 담아주며,
이런 방식을 관계형 데이터베이스라고 부릅니다.
대표적으로 Oracle, MySQL, Postgres가 있습니다.
ODM은 데이터를 서류 봉투 방식으로 담아줍니다.
이것을 NotOnlySQL 즉 NoSQL이라 합니다
대표적으로 MongoDB와 FireBase가 있습니다.
SQL 표 (Table)
표에 저장하는 방식
한줄한줄 행(row)
mysql
oracle
mssql
postgres
NoSQL 서류봉투(Collection)
서류 봉투에 a4 용지 담듯이 문서에 저장하는 방식입니다.
컬렉션 한장한장을 문서(document) 라고 하며
문서 한장 당 객체가 하나 씩 들어있다고 보면 됩니다.
mongo
firebase
브라우저에서 백엔드로 api 요청을 할 때 필요한 것이 apollpo client 또는 axios입니다.
백엔드에서 데이터베이스에 요청할 때는 필요한 것이 크게 ORM ODM 2가지 종류가 있습니다.
둘 중 하나를 설치해야 디비로 접속이 됩니다.
ORM
Object-Relation-Mapping
관계형 데이터베이스
typeorm 타스 사용자들이 가장 많이 사용합니다.
sequalize 자바스크립트 사용 시 사용합니다.
prisma
ODM
Object-Document-Mapping
몽고디비
mongoose
sql db는 표들을 만들고 표와 표 사이의 관계를 맺어줄 수 있습니다.
document들은 a4용지 장들마다 관계가 설정되지 않습니다.
즉 document는 한장한장 각각 독립됩니다.
sql은 그래서 관계형 데이터 베이스라고 하며
relation RDB 라고도 부릅니다.
'리액트 공부와 함께 하는 일상 > 4주차' 카테고리의 다른 글
[TIL] 4주차 - 6. 검색 (feat. ES, Redis / 디바운싱, 쓰로틀링) (0) | 2022.02.09 |
---|---|
[TIL] 4주차 - 5. 이미지 파일 업로드 (0) | 2022.02.08 |
[TIL] 4주차 - 4. Firebase BAAS 서비스 (0) | 2022.02.07 |
[TIL] 4주차 - 3. CORS (Cross-Origin Resource Sharing) (0) | 2022.02.07 |
[TIL] 4주차 - 1. 컴포넌트 생명주기 (feat. Class Component) (0) | 2022.02.03 |
댓글