엑셀처럼 표(table)로 정리된 DB를 SQL DB라고 하며 만들어진 표의 행(row)에 데이터를 저장하는 방식이다. 또한 SQL DB에서는 여러 표를 만들어 놓고 표 간의 데이터를 이어서 관계를 맺어줄 수 있다.
그렇기 때문에 관계형 데이터베이스(RDB)라고도 부르고 대표적으로 mySQL, oracle, postgres,msSQL이 있다.
서류봉투(collection)처럼 문서(document)로 정리된 DB를 No SQL이라고 하며 문서에 데이터를 객체 형태로 저장하고 저장된 문서는 collection에 보관한다.
다만, 각 문서는 독립된 객체로 관계를 맺을 수 없다.
대표적으로 mongoDB, firebase가 있다.
브라우저(Br)에서 BE로 데이터를 요청할 때는 apollo-client 혹은 axios가 필요한 것처럼 BE에서 DB로 요청할 때는 ORM, ODM을 필요로 한다.
ORM(object-relation-mapping)
관계형 DB에서 사용한다.
typeorm(TS), sequalize(JS), prisma 등
ODM(object-document-mapping)
문서형 DB에서 사용한다.
mongoose(mongoDB)
DB의 데이터를 관리하기 위한 프로그램을 말한다.
DBA는 DB관리 프로그램으로 DB는 아니다.
Node.js / Apollo-Server
node는 브라우저가 없이도 JS가 실행될 수 있게 해준다.
단, TS는 일반 Node로 실행이 불가능하고 Ts-node를 사용해야만 한다.
개발 완료 후 ts-node 사용 - 소스코드가 바뀌어도 화면 리랜더링 안됨
개발 중에는 ts-node-dev 사용 -소스코드가 바뀌면 화면 리랜더링