Data/DataBase 5

프록시 DB란? 읽기·쓰기 분리

대규모 서비스를 운영하다 보면, 트래픽이 늘어날수록 DB 부하가 병목이 되는 순간이 찾아옵니다.트래픽 스파이크나 정기 리포트 배치처럼 단순 조회성 쿼리가 몰리면 “운영 데이터베이스의 안정성”이 흔들리기 시작하죠.이럴 때 자주 등장하는 해결책 중 하나가 바로 프록시 DB(Proxy DB) 입니다.단순히 DB 앞단에 장비를 하나 더 세우는 것이 아니라, 읽기/쓰기 특성을 분리하고 운영 전략을 명시적으로 가져가겠다는 선언에 가깝습니다.이번 글에서는 프록시 DB의 기본 개념부터, 운영 중 겪는 실전 이슈, 그리고 개발자 입장에서의 사용 패턴까지 정리해보려 합니다. 📖 프록시 DB란 무엇일까?말 그대로 본 DB(Primary) 앞단에 서서 요청을 중계하는 “중간 계층”입니다. 애플리케이션은 Proxy 하나만..

Data/DataBase 2025.11.19

Nested Set Model: 효율적인 트리 구조

실무에서 Nested Set Model로 구성된 데이터를 관리하면서 겪은 경험과 개념을 정리해보고자 합니다.👩🏻‍💻  Nested Set Model이란?데이터베이스에서 트리 구조를 저장하는 방법에는 여러 가지가 있지만, Nested Set Model은 lft, rgt 값을 이용해 한 번의 SQL 쿼리로 전체 트리 구조를 빠르게 조회할 수 있는 방식입니다.많은 경우, 부모-자식 관계를 나타내는 Adjacency List 방식을 사용하지만, 이 방법은 하위 노드를 조회할 때 반복적인 SQL 실행이 필요하다는 단점이 있습니다. 반면, Nested Set Model은 하나의 SQL로 모든 하위 노드를 조회할 수 있다는 강력한 장점이 있습니다.(물론 둘을 혼용하여 쓰는 방법도 있습니다. 🤔) Nested ..

Data/DataBase 2025.03.14

데이터베이스 Anti-Pattern 피하기

데이터베이스 설계는 애플리케이션 성능과 안정성을 결정짓는 중요한 요소입니다. 하지만 초기 설계 단계에서 잘못된 방향으로 진행되면 성능 저하, 데이터 무결성 문제, 높은 유지보수 비용을 초래할 수 있습니다. 이러한 잘못된 설계를 Anti-Pattern이라고 합니다. 이번 글에서는 데이터베이스 설계에서 자주 발생하는 Anti-Pattern과 이를 피하기 위한 방법을 정리해보겠습니다.🙂  Anti-Pattern이란?Anti-Pattern은 처음에는 효과적인 해결책처럼 보이지만, 장기적으로 문제를 야기하는 잘못된 설계 패턴입니다.문제점:성능 저하데이터 무결성 위반유지보수 어려움예방 방법: 문제를 조기에 인식하고 개선된 설계 원칙을 적용해야 합니다. 대표적인 Anti-Pattern과 해결 방법1. 중복 데이터 ..

Data/DataBase 2024.11.25

[DataBase] 샤딩(Sharding), 파티셔닝(Partitiong), 레플리케이션(Replication)

데이터베이스에서 대량의 데이터를 효율적으로 관리하고 성능을 최적화하기 위한 기법들에 대해 알아보겠습니다. 🤗 샤딩(Sharding)샤딩은 데이터 베이스를 수평으로 나누어 여러 서버에 분산 저장하는 기법입니다.데이터가 여러 서버에 분산되어 저장되므로, 시스템의 부하를 줄이고 성능을 향상할 수 있습니다. 샤딩의 장점부하 분산여러 서버에 데이터가 분산되어 요청을 병렬로 처리할 수 있습니다.확장성데이터가 늘어날 때 서버를 추가하여 쉽게 확장할 수 있습니다.장애 대응특정 서버에 장애가 발생해도 다른 서버가 계속 작동하므로 시스템의 가용성이 높아집니다.샤딩의 단점복잡성 증가샤딩을 구현하면 데이터 관리와 쿼리 로직이 복잡해질 수 있습니다.특히 데이터가 여러 샤드에 분산되어 있기 때문에 데이터 조회 시 여러 샤드를 ..

Data/DataBase 2024.10.20

[DB] RDBMS와 NoSQL의 개념과 차이점

RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 두 가지 주요 데이터베이스 유형입니다. RDBMS(관계형 데이터베이스 관리 시스템) RDBMS는 데이터를 관리하고 저장하기 위한 소프트 웨어 시스템으로, 관계형 데이터 모델을 기반으로 합니다. 이 모델에서 데이터는 테이블(Table)이라 불리는 2차원 구조의 엑셀 시트와 같은 형태로 저장됩니다. 여기서 테이블은 행(Row)과 열(Column)로 이루어져 있습니다. 다음은 RDBMS에 대한 주요 특징과 개념들입니다. 테이블(Table) 데이터가 저장되는 가장 기본적인 단위로, 2차원 행과 열의 구조를 가지고 있습니다. 테이블은 명확한 스키마(구조 및 데이터 유형 정의)를 가지고 있습니다. 열(Col..

Data/DataBase 2024.01.12