클라이언트-서버-DB 이 세 개의 구성으로 시스템(서비스)을 설계하는 개념이다.
서버가 데이터를 보관하고 조작하는 역할을, DB라는 별도의 공간에 분리하여 서버의 부담을 줄였다.
client -presentation layer
DB - data tier
server - application tier 라고도 부른다.
크게 2가지 이유로 볼 수 있다.
첫번째는 InMemory(인-메모리 컴퓨팅은 메모리 내에서 데이터의 저장 뿐 아니라 데이터의 연산까지 수행하는 최첨단 칩 기술) 방식으로 데이터를 저장하는 것의 단점 때문이다. (영속성)
기존의 섹션 1,2 스프린트를 보았을 때 데이터들을 모두 클라이언트 파일과 하나의 디렉토리 안에 둔 것을 확인할 수 있었는데, 이 경우, 파일을 켜 놓은 동안에만 데이터가 유효하고, 수정되거나 삭제된 사안은 파일을 끄는 순간(프로그램의 수명이 끝나는 순간) 다 휘발되어 버리는 문제가 있다.
두번째는 하나의 폴더에 저장을 해 두고 프로그램 실행시마다 모든 데이터를 다 불러오게 되면 과부하가 걸릴 수도 있기 때문이다.
실제 클라이언트와 상호작용을 할 때는 필요한 데이터만 가지고 오는 것이 전체 데이터를 불러오는 것보단 더 효율적인데, 하나의 파일에 데이터를 모두 저장해놓고 다 불러오게 된다면 부하가 크기 때문이다.
따라서 DB 쿼리문 개념을 사용하여 필요한 DB만 가지고 올 수 있도록 관리하는 것이 좋다.
DB에서는 데이터를 테이블에 저장하고 관리하기 때문에 데이터를 불러오기 더 수월하다.
structured query language: 데이터를 조회/처리/삽입/수정할 때 사용하는 구조화된 질의어이다.