백엔드에서 사용되는 데이터베이스(database) 기본 개념을 설명합니다~ 중요한 DB 용어들을 잘 알고 있어야 기본기를 탄탄하게 다지는데 도움이 되겠죠? :)
백엔드 개발을 하다 보면 데이터베이스(Database, DB) 개념을 반드시 이해해야 합니다.
데이터베이스를 정확히 알지 못하면 효율적인 데이터 저장, 관리, 조회를 하는 데 어려움을 겪을 수 있기 때문에!
제가 본 영상에서는 데이터베이스의 기본 개념부터 DBMS, 메타데이터, 데이터 모델, 스키마와 상태(schema & state) 등의 개념을 정리하고 쉽게 설명해주고 있습니다.
이렇게 설명하면 이해하기 어려울 수 있으니 한 부분씩 천천히 살펴보겠습니다.
소셜 네트워크 서비스(예: 페이스북, 인스타그램, 스레드)를 사용한다고 가정해봅시다.
이 모든 것들이 하나의 서비스 안에서 생성되고 사용되는 데이터입니다.
같은 서비스에서 생성되는 연관된 데이터들을 우리는 "관련 있는 데이터들" 이라고 부릅니다.
책을 아무렇게나 쌓아둔다면 원하는 책을 찾기가 어렵겠죠?
하지만 책장에 카테고리별로 정리하면 원하는 책을 쉽게 찾을 수 있습니다.
데이터베이스도 마찬가지입니다.
잘 정리된 데이터 → 검색 속도가 빠름
중복된 데이터 방지 → 데이터 무결성 유지
데이터를 체계적으로 정리하는 것이 "조직화된 집합"이라는 개념입니다.
데이터가 컴퓨터(디지털 환경)에서 저장되고 사용될 때 우리는 이를 "전자적으로 저장되고 사용된다" 라고 합니다.
데이터베이스는 단순한 데이터 모음이 아니라 이를 전자적으로 저장하고 효율적으로 관리하는 시스템입니다.
대표적인 DBMS는 PostgreSQL, MySQL, 오라클 등이 있습니다.
이 DBMS를 통해 개발자는 데이터를 정의하고, 저장하고, 검색하고, 관리할 수 있습니다.
여기서 DB를 정의하다 보면 부가적인 데이터가 발생할 수도 있어요.
부가적인 데이터를 뭐라고 부르냐면 metadata 라고 부릅니다.
사진을 찍으면? → 사진 데이터
사진의 정보는? → 해상도, 촬영 시간, 위치 정보 (이게 메타데이터!)
메타데이터는 데이터 자체가 아니라 데이터를 설명하는 추가적인 정보입니다.
이러한 메타데이터도 DBMS가 함께 관리합니다.
데이터의 유형 (정수, 문자열, 날짜 등)
데이터베이스의 구조
제약 조건 (Primary Key, Foreign Key 등)
보안 정보
저장 방식
사용자 그룹
단순히 데이터베이스만을 의미하는 것이 아니라 이를 관리하는 DBMS 및 그와 연결된 모든 애플리케이션까지 포함하는 개념입니다.
❗ 문맥에 따라 Database가 Database System을 의미할 수도 있으니 주의해야 합니다!
백엔드 개발에서 가장 중요한 개념 중 하나는 DB 시스템이 어떻게 동작하는지입니다.
전체적인 동작 과정은 아래와 같습니다.

이 과정이 DB 시스템이 작동하는 기본 원리입니다.
데이터베이스에 데이터를 요청하거나 수정하기 위해 사용하는 명령어
데이터를 효과적으로 저장하고 관리하기 위해 데이터 모델을 사용합니다.
데이터 모델을 기반으로 데이터베이스의 구조를 기술한 것

이미지로 예를 들자면
relational data model에서의 데이터베이스 스키마입니다.
데이터베이스의 데이터를 나타내는 student와 book이 있고, 각각의 데이터에는 어떤 속성을 가지는지 기술이 되어 있습니다.
현재 특정 시점의 데이터베이스의 상태
Schema는 변하지 않는 구조, State는 시간이 지나면서 변화하는 데이터라고 이해하면 쉽습니다.