DATABASE 8

샤딩 vs 파티셔닝, 무엇을 언제 선택해야 할까? – 데이터 분산 전략

파티셔닝과 샤딩은 단순한 성능 향상을 위한 기술이 아닙니다. 이 글에서는 두 전략의 개념과 차이를 명확히 구분하고,Airbyte, LINE 등 실무 사례를 통해 실제 기업들이 왜 각각의 전략을 선택했는지를 살펴봅니다.마지막엔 분산 전략을 선택할 때 고려해야 할 판단 기준도 함께 정리했습니다.1. 왜 분산 저장이 필요한가?서비스가 성장하면서 점점 더 많은 사용자 요청과 데이터가 쌓이게 됩니다. 이때 단일 DB 인스턴스에 모든 데이터를 저장하고 조회하려고 하면 시스템이 감당하지 못하고 병목이 발생하게 됩니다. 그 병목은 성능 저하뿐 아니라, 운영 이슈, 데이터 정합성 문제로 이어질 수 있죠. 이 섹션에서는 왜 데이터를 분산시켜야 하는지 근본적인 이유부터 살펴봅니다.🔥 문제 정의서비스 이용자가 늘어나면, 데..

Database 2025.04.09

NoSQL의 모든 것: 개념, 종류, MongoDB와 Redis 맛보기

1. 개요: 왜 NoSQL인가?프로젝트에서 대용량 데이터를 다루거나 수평적 확장이 필요한 상황이라면, RDBMS 대신 NoSQL을 검토해본 적이 있을 것입니다.📌 NoSQL의 의미NoSQL은 'Non-SQL' 또는 'Not only SQL'로 해석되며, SQL처럼 특정 쿼리 언어를 지칭하는 것이 아닌 새로운 데이터베이스 패러다임을 의미합니다. 전통적인 관계형 데이터베이스의 제약에서 벗어나 데이터를 더 자유롭고 유연한 형태로 저장하고 관리하는 접근 방식입니다. 이 글에서는 NoSQL의 주요 네 가지 종류를 구체적으로 비교하고,왜 NoSQL이 주목받는지, MongoDB와 Redis의 기본 사용법까지 실습 방법을 공유합니다.📖 참고: 이 글은 『이것이 취업을 위한 컴퓨터 과학이다』 CHAPTER 06, p..

Database 2025.04.08

정규화(Normalization): 중복 없는 데이터베이스 설계 (1NF - BCNF)

📘 정규화 단계 정리1. 개요데이터베이스 설계를 하다 보면, 모든 정보를 한 테이블에 넣고 싶어질 때가 있어요. 그런데 그렇게 만들면 어떤 문제가 생길까요?데이터가 중복되고수정할 때 실수하고삭제했더니 같이 날아가고 😵이런 문제를 막기 위해 등장한 게 바로 정규화(Normalization) 입니다. 정규화는 테이블을 잘게 나누고, 각 속성을 적절한 자리에 배치해서 데이터의 무결성과 유지보수성을 높이는 설계 방식입니다.정규화를 하면 단순히 중복만 줄이는 게 아니라,데이터 일관성(consistency) 유지삽입/삭제/수정 이상(Anomaly) 방지테이블 구조가 더 확장성 있게 설계됨같은 이점이 있습니다.📖 참고: 이 글은 『이것이 취업을 위한 컴퓨터 과학이다』 CHAPTER 06, p.593 ~ p.60..

Database 2025.04.07

효율적 쿼리란? - 서브쿼리와 조인, 뷰, 인덱스로 쿼리 최적화

효율적 쿼리란 무엇일까?데이터베이스는 수많은 데이터를 저장하고, 이 데이터에 대해 빠르고 정확한 응답을 제공해야 합니다. 하지만 단순히 작동하는 SQL 문을 작성하는 것만으로는 부족합니다. "어떻게 하면 더 빠르게, 더 적은 비용으로 원하는 결과를 가져올 수 있을까?" 가 바로 효율적인 쿼리를 고민해야 하는 이유입니다.📖 참고: 이 글은 『이것이 취업을 위한 컴퓨터 과학이다』 CHAPTER 06, p.573 ~ p.592의 내용을 기반으로 한 설명입니다. 더보기[참고] 쿼리 실행 과정  SQL 문은 단순한 명령어처럼 보이지만, DB 내부에서는 복잡한 과정을 거칩니다. 실행 과정을 크게 요약하면 다음과 같습니다.파싱(Parsing) – SQL 문법 분석 및 내부 표현으로 변환최적화(Optimization..

Database 2025.04.07

웹 개발자라면 꼭 알아야 할 데이터베이스 기초 정리

1. 왜 데이터베이스가 중요한가?웹 서비스를 개발하다 보면 사용자 정보, 게시글, 주문 내역 등 수많은 데이터를 다루게 됩니다. 이 데이터를 안전하고 안정적으로 관리하기 위해 반드시 필요한 것이 바로 데이터베이스(Database) 입니다. 데이터베이스란, 여러 사람이 공유하고 사용할 목적으로 체계화된 데이터의 집합이며, 이러한 데이터를 효율적으로 저장, 수정, 조회할 수 있도록 돕는 프로그램이 바로 DBMS(Database Management System) 입니다.✅ 데이터베이스는 단순한 저장 공간이 아니라, 웹 서비스의 핵심 기반 인프라입니다.2. DBMS의 종류와 RDBMS가 중요한 이유DBMS는 크게 두 가지로 나뉩니다:관계형 DBMS(RDBMS): MySQL, Oracle, PostgreSQL 등..

Database 2025.04.07

데이터베이스 트랜잭션 ACID 특성과 BASE 데이터 일관성 모델

목차들어가며트랜잭션이란ACID와 BASE의 개념이러한 모델이 필요한 이유ACID 트랜잭션ACID 개념 소개Atomicity (원자성)Consistency (일관성)Isolation (격리성)Durability (지속성)ACID가 적합한 시스템 요구사항 및 사례ACID가 적합한 시스템 요구사항대표 데이터베이스예제요약BASE 트랜잭션BASE 개념 소개Basically Available (기본적 가용성)Soft state (소프트 상태)Eventually consistent (최종적 일관성)BASE가 등장한 배경BASE가 적합한 시스템 요구사항 및 사례BASE가 적합한 시스템 요구사항대표 데이터베이스예제BASE의 특징 요약ACID vs BASE 비교데이터 일관성 vs 가용성성능과 확장성선택 기준비즈니스 요구사..

Database 2025.02.27

CMS 및 내부정산 시스템 데이터베이스 선택

1. 들어가며BFIND 프로젝트의 백엔드 개발을 시작하기에 앞서, 데이터베이스 아키텍처 설계 과정과 의사결정 내용을 정리했다. 현재 프론트엔드 일부만 구현된 상태에서, 백엔드 개발을 위한 데이터베이스 설계를 고민해보았다. BFIND는 웹툰, 웹소설 콘텐츠를 제공하는 웹 콘텐츠 플랫폼이다. 콘텐츠 관리 시스템(CMS)과 내부 정산 시스템을 기반으로 하며, Java/Kotlin과 Spring을 활용해 구축하기로 했다.1.1 기술 스택 선정 배경Java/Kotlin, Spring 선택 이유안정성과 신뢰성대규모 웹툰 플랫폼에서 검증된 기술 스택결제/정산과 같은 금전적 트랜잭션의 안정적 처리 보장Spring의 선언적 트랜잭션 관리로 데이터 정합성 확보확장성과 유연성트래픽 증가에 따른 수평적 확장 용이MSA 전환 ..

Project 2025.02.25

DBMS의 선택과 기준 - DB 종류 및 특징

DBMS 선택 가이드프로젝트 요구사항에 맞는 최적의 데이터베이스 시스템 선택하기적절한 DBMS(Database Management System)의 선택은 프로젝트의 성공을 좌우하는 핵심 요소다. 이 글에서는 주요 DBMS들의 특징을 비교하고, 프로젝트 상황에 맞는 DBMS를 선택하는 방법을 알아본다.DBMS와 고려해야 할 기준DBMS는 데이터를 효율적으로 저장, 관리, 검색할 수 있게 해주는 소프트웨어 시스템이다. 프로젝트에 적합한 DBMS를 선택하기 위해서는 다음과 같은 요소들을 고려해야 한다.데이터 모델: 관계형? 문서형? 키-값?확장성: 수직적 확장과 수평적 확장 가능성일관성: 강한 일관성이 필요한가, 결과적 일관성으로 충분한가가용성: 고가용성이 필수적인가비용: 라이선스 비용과 운영 비용개발 생산성..

Database 2025.02.23