본문 바로가기
▼ 코딩 공부하기/▼▼ 백엔드

왜 카카오와 네이버는 RDBMS를 쓸까? 관계형 DB의 핵심 완벽 정리

by mdeeno 2026. 1. 18.
반응형

요즘 NoSQL(MongoDB 등)이 핫하다고 하지만,

여전히 전 세계 시스템의 70% 이상은 관계형 데이터베이스(RDBMS)를 사용합니다.

은행, 쇼핑몰, 회사 ERP까지 중요한 데이터는 왜 꼭 RDBMS에 저장할까요?

 

오늘은 백엔드 개발자 면접 단골 질문인

"관계형 데이터베이스를 사용하는 이유"7살도 이해하는 쉬운 비유실무 SQL 예시로 완벽하게 정리해 드립니다.


목차

  1. 관계형 데이터베이스(RDBMS)란?
  2. 왜 사용할까? (핵심 장점 3가지)
  3. 7살도 이해하는 설명: 레고 정리함
  4. 실무 SQL 코드 예시 (JOIN의 마법)


1. 관계형 데이터베이스(RDBMS)란?

데이터를 표(Table) 형태로 정리하고, 이 표들 사이의 관계(Relationship)를 정의하여 저장하는 방식입니다. 대표적으로 MySQL, PostgreSQL, Oracle 등이 있습니다.

엑셀 시트 여러 개가 서로 연결되어 있다고 상상하면 쉽습니다. '학생 명부'와 '성적표'가 따로 있지만, '학번'이라는 키(Key)로 서로 연결되는 구조입니다.


2. 왜 사용할까? (핵심 장점)

✅ 첫째, 데이터의 정확성 (무결성, Data Integrity)

RDBMS는 규칙이 엄격합니다. 숫자가 들어갈 칸에 문자를 넣거나, 필수 정보가 빠지면 저장을 거부합니다. 덕분에 "쓰레기 데이터"가 들어가는 것을 원천 봉쇄합니다. 은행 잔고가 마이너스가 되거나, 없는 사용자의 주문이 생성되는 일을 막아줍니다.

✅ 둘째, 중복의 최소화 (Normalization)

같은 정보를 여러 곳에 저장하지 않습니다. 예를 들어, 사용자의 주소가 바뀌면 '회원 테이블'만 수정하면 됩니다. 주문 내역마다 주소를 일일이 바꿀 필요가 없습니다. 이는 데이터 관리 비용을 획기적으로 줄여줍니다.

✅ 셋째, 강력한 데이터 결합 (JOIN)

필요할 때만 테이블을 연결(JOIN)해서 복잡한 데이터를 뽑아낼 수 있습니다. "30대 남성이 가장 많이 산 물건" 같은 복합적인 질문에 답하기 최적화되어 있습니다.



3. 7살도 이해하는 설명: "마법의 레고 정리함"

👶 7살 버전 설명

"친구야, 네 방에 레고가 마구 섞여 있으면 찾기 힘들지? 그래서 우리는 '마법의 정리함'을 쓸 거야.

1. 규칙이 있어: 빨간 블록 통에는 절대 파란 블록을 넣을 수 없어. (데이터 무결성)
2. 이름표가 있어: 바퀴 통에는 '바퀴'만 모여 있어. 자동차를 만들고 싶으면 '몸통 통'에서 하나, '바퀴 통'에서 네 개를 꺼내서 합체(JOIN)시키면 돼.

이렇게 정리하면 잃어버리는 블록도 없고, 언제든 멋진 자동차를 금방 만들 수 있단다!"


4. 실무 SQL 코드 예시

실제 현업에서는 데이터를 쪼개서 저장하고, 필요할 때 합칩니다. 사용자(User)주문(Order) 테이블을 예로 들어보겠습니다.

1) 테이블 구조 (데이터 저장)


-- [1번 표] 사용자 정보 (한 번만 저장됨)
CREATE TABLE Users (
    user_id INT PRIMARY KEY,
    name VARCHAR(50),
    address VARCHAR(100)
);

-- [2번 표] 주문 내역 (사용자 ID만 기록)
CREATE TABLE Orders (
    order_id INT PRIMARY KEY,
    user_id INT,  -- Users 테이블과 연결고리
    product_name VARCHAR(50),
    FOREIGN KEY (user_id) REFERENCES Users(user_id)
);

2) 데이터 조회 (JOIN의 마법)

주문 내역을 볼 때, 두 테이블을 연결하여 '누가' '무엇을' 샀는지 한눈에 봅니다.


-- "철수(user_id: 1)가 무엇을 샀는지 보여줘!"
SELECT Users.name, Orders.product_name
FROM Users
JOIN Orders ON Users.user_id = Orders.user_id;

-- 결과:
-- | name | product_name |
-- |------|--------------|
-- | 철수 | 아이폰 15    |
-- | 철수 | 맥북 에어    |


🚀 결론: 언제 RDBMS를 써야 할까?

데이터가 돈과 관련되어 있거나(결제), 구조가 명확하고(회원정보), 실수가 용납되지 않는다면(은행)

무조건 RDBMS가 정답입니다.

안정성과 신뢰성이 최우선인 프로젝트라면 고민하지 말고 관계형 데이터베이스를 선택하세요.

반응형