데이터베이스를 학습하기 전에는 데이터를 서버 컴퓨터의 in-memory 방식으로 저장하고, 클라이언트의 HTTP 요청에 따라 서버에서 알맞은 데이터를 응답했다. in-memory 방식은 서버 프로그램이 실행중일 때, 변수에 값을 할당하여 저장하는 것을 의미한다. 이 방식에서는 서버 프로그램을 재실행하거나 종료하면, 이전에 변수에 저장한 값이 휘발된다.
in-memory 방식이 아니라면? Node.js의 fs 모듈 중 readFile이나 writeFile method 등을 이용해 데이터를 파일에 저장할 수도 있다.
파일을 읽는 방식으로 작동하는 형태를 말한다. 엑셀 시트나 CSV 같은 파일의 형태는 In-Memory에 비해 데이터를 저장하는 방식으로 적절해 보이지만, 아래와 같은 한계가 존재한다.
새로운 tier를 하나 더 추가하여, 정보를 보다 더 전문적인 영역에서 관리하는 방법이다. 서버에서 데이터를 저장하는 방법이 in-memory에서 파일로, 파일에서 데이터베이스로 바뀌는 것이다. database는 data를 관리하고 필터하는데 특화된 서버라고 볼 수 있다.
SQL(Structured Query Language): 구조화된 쿼리 언어. 데이터베이스 언어의 기준이다. 쿼리(Query)는 질의문이라는 의미이다. 데이터베이스 언어의 쿼리는 원하는 데이터를 가져올 수 있도록 무엇을 요청하는지 작성한 언어.
하나의 언어인 Structured Query Language (SQL)은 데이터베이스 언어로, 주로 관계형 데이터베이스에서 사용한다. 예를 들어 MySQL, Oracle, SQLite, PostgreSQL 등 다양한 데이터베이스에서 SQL 구문을 사용할 수 있있다.
SQL이란 데이터베이스 용 프로그래밍 언어이다. 데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
NoSQL은 데이터가 고정되어 있지 않은 데이터베이스를 가리킨다. 관계형 데이터베이스에서는 데이터를 입력할 때 스키마에 맞게 입력해야 하는 반면, NoSQL에서는 데이터를 읽어올 때 스키마에 따라 데이터를 읽어 온다. 이런 방식을 'schema on read'라고도 한다. 읽어올 때에만 데이터 스키마가 사용된다고 하여, 데이터를 쓸 때 정해진 방식이 없다는 의미는 아니다. 데이터를 입력하는 방식에 따라, 데이터를 읽어올 때 영향을 미친다.
대표적인 NoSQL은 몽고DB, Casandra 등이 있다.
스프린트 과제를 진행하기 전 해당 사이트에서 간단히 sql 기본 문법을 연습하였다.(링크)