본문 바로가기
리액트 공부와 함께 하는 일상/4주차

[TIL] 4주차 - 2. 웹 서비스 구조 / SQL / NoSQL

by fefe94 2022. 2. 7.
웹 서비스 구조

웹서비스는 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 라고도 부릅니다.

댓글