※ 데이터 관리가 필요한 이유
현대의 모든 시스템과 서비스는 “데이터”를 기반으로 동작합니다. 사용자의 정보, 상품 정보, 거래 기록, 로그 등 모든 것이 데이터이며, 데이터를 얼마나 효율적이고 안정적으로 관리하느냐가 시스템 품질을 결정합니다.
데이터를 단순히 파일에 저장하는 것만으로는 다음과 같은 문제가 발생합니다:
📁 중복 – 같은 데이터가 여러 파일에 존재해 관리가 어렵다.
❌ 불일치 – 일부 데이터만 업데이트되어 값이 달라진다.
🔍 검색 비효율 – 원하는 데이터를 빠르게 찾기 어렵다.
🔐 보안 취약 – 접근 제어나 권한 관리가 어렵다.
📉 데이터 활용성 저하 – 통계나 분석 작업이 어렵다.
→ 따라서 체계적인 방식으로 데이터를 저장·관리·활용할 수 있는 데이터베이스(Database)가 필수적입니다.
※ 효율적인 데이터 관리 조건
효율적인 데이터 관리를 위해서는 다음과 같은 조건을 만족해야 합니다.
| 조건 | 설명 |
|---|---|
| 일관성 (Consistency) | 데이터의 정확성과 무결성을 유지해야 한다. |
| 중복 최소화 (Non-Redundancy) | 중복을 줄여 저장 공간 낭비를 방지하고 유지보수를 쉽게 한다. |
| 검색성 (Retrievability) | 필요한 데이터를 빠르고 정확하게 찾을 수 있어야 한다. |
| 보안성 (Security) | 데이터 접근 권한을 제어하고 보호해야 한다. |
| 동시성 (Concurrency) | 여러 사용자가 동시에 접근해도 문제없이 동작해야 한다. |
| 복구성 (Recoverability) | 장애나 오류 발생 시 데이터를 복구할 수 있어야 한다. |
→ 이런 조건을 만족하는 시스템이 바로 DBMS(Database Management System)입니다.
※ Database 정의와 특징
Database(데이터베이스)란 특정 목적을 위해
구조적으로 저장되고, 효율적으로 관리되며, 필요할 때 쉽게 검색·활용할 수 있도록
만든 데이터의 집합입니다.
데이터베이스의 주요 특징
📊 통합성 (Integrated) – 여러 응용 프로그램이 공동으로 사용
📂 저장성 (Stored) – 비휘발성 장치에 영구 저장
🔍 공유성 (Shared) – 여러 사용자 및 프로그램이 동시에 접근
🔄 운용성 (Operational) – 항상 최신 상태 유지
→ 즉, 데이터베이스는 단순 저장소가 아니라 데이터 활용을 위한 인프라입니다.
※ CQRS (Command Query Responsibility Segregation)
CQRS란 “명령(Command)”과 “조회(Query)”를 서로 다른 모델 또는 DB로 분리하여 처리하는 아키텍처 패턴입니다.
기존에는 하나의 DB가 읽기·쓰기 모두 담당했지만, 트래픽이 커질수록 병목이 발생합니다.
이를 해결하기 위해 쓰기 전용 DB와 읽기 전용 DB를 분리하는 CQRS 구조를 사용합니다.
# 예시: CQRS 구조 개념 (의사코드)
# 쓰기 모델 (Command) - MySQL
def create_user(user):
mysql.insert("users", user)
# 읽기 모델 (Query) - MongoDB (또는 캐시)
def get_user(user_id):
return mongodb.find_one({"id": user_id})
→ CQRS를 적용하면 쓰기 성능과 조회 성능을 각각 최적화할 수 있으며,
확장성(Scalability)과 안정성(Availability)이 크게 향상됩니다.
※ DBMS(Database Management System)의 필요성과 기능
DBMS는 데이터베이스를 생성·관리·보호하는 소프트웨어입니다.
사용자는 DBMS를 통해 복잡한 하드웨어 접근 없이 데이터를 손쉽게 다룰 수 있습니다.
DBMS의 주요 기능
📁 데이터 정의 – 테이블, 인덱스, 뷰 등을 정의 (DDL)
✏️ 데이터 조작 – 삽입, 수정, 삭제, 조회 (DML)
🔐 데이터 보안 – 사용자 인증, 권한 부여
🔄 트랜잭션 관리 – ACID 보장 (원자성, 일관성, 격리성, 지속성)
💾 백업 및 복구 – 장애 발생 시 데이터 복원
📊 동시성 제어 – 다중 사용자 접근 관리
→ DBMS는 단순 저장소가 아닌, 데이터를 안전하고 효율적으로 관리하기 위한 핵심 소프트웨어입니다.
※ DBMS의 역사 (파일 시스템 → RDBMS → NoSQL)
데이터베이스 기술은 다음과 같은 단계를 거쳐 발전했습니다.
| 시대 | 기술 | 특징 |
|---|---|---|
| 1970년대 이전 | 파일 시스템 | 데이터를 텍스트/CSV 등 파일 형태로 관리. 검색과 동시성에 취약 |
| 1970~2000 | RDBMS (관계형 데이터베이스) | 테이블 구조, SQL 지원, 트랜잭션 보장. MySQL, Oracle, PostgreSQL 등 |
| 2000~현재 | NoSQL | 비정형 데이터, 대규모 트래픽 처리. MongoDB, Redis, Cassandra 등 |
→ 최근에는 RDBMS와 NoSQL을 함께 사용하는
폴리글랏 퍼시스턴스(Polyglot Persistence) 아키텍처가 보편화되었습니다.
'2025 현대오토에버 모빌리티 SW 스쿨(클라우드 2기) > 데이터베이스' 카테고리의 다른 글
| [Database] DDL과 제약 조건 (0) | 2025.10.07 |
|---|---|
| [Database] SQL 언어 완벽 정리 (3) – SubQuery와 Join (0) | 2025.10.07 |
| [Database] SQL 언어 완벽 정리 (2) – 함수와 GROUP BY (0) | 2025.10.07 |
| [Database] SQL 언어 완벽 정리 (1) – 개요 및 SELECT 기본 (0) | 2025.10.07 |
| [Database] 관계형 데이터베이스(RDBMS) 이해 (0) | 2025.10.07 |