JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[규칙 4] 데이터 중복이 발생하는 컬럼이 있는 지 확인해라

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
DB 설계
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 DB 설계 입문/실전
slug
rule-4-check-data-duplication
type
post
updatedAt
Dec 6, 2025 05:57 AM

✅ 데이터 중복이 발생하는 지 시뮬레이션을 돌려봐라.

📖
DB 설계 시 꼭 기억해야 할 핵심 원칙 1가지
위 수업에서 DB 설계의 핵심 원칙은 ‘중복 없애기’라고 했었다. 초안으로 구성된 테이블에서 데이터 중복이 발생하는 구성인지 임의로 데이터를 넣어봐야 한다. 무슨 말인지 아래 예시를 통해서 설명하겠다.
 
요구 사항을 보고 아래와 같이 게시글 테이블을 만들었다고 해보자.
posts (게시글)
id
제목
내용
작성자
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
ㅤ
 
위 테이블을 잘 만든건지 확인을 해봐야 한다. DB 설계에서 중복 데이터만 발생하지 않는다면 잘 설계됐다고 판단할 수 있다. 따라서 아래 테이블에 임의의 데이터를 여러개 넣어볼 것이다. (이 과정이 익숙해지면 머릿속으로 임의의 데이터를 넣어보고 중복 데이터가 발생할 수 있는 구조인지 생각할 수 있게 된다.)
posts (게시글)
id
제목
내용
작성자
1
[속보] 개발자 채용 확대
내용1
박재성
2
취업 꿀팁 공유합니다!
내용2
박재성
3
어제 면접 보고 온 썰
내용3
박재성
데이터를 넣다보니 작성자 컬럼에서 중복 데이터가 발생했다. 데이터 중복이 발생하면 안 좋은 점이 박재성이라는 이름을 개명했을 때 전부 일일이 찾아서 고쳐야 한다는 불편한 점이 있다고 했다. 그리고 그 과정에서 실수가 발생할 수도 있다고 했다. 따라서 데이터 중복이 발생하지 않게 설계해야 한다. 어떻게 설계를 보완할 수 있을까?
 
특정 컬럼에서 데이터 중복이 발생했다면 테이블 분리로 해결하면 된다.
 
 

✅ 테이블 분리를 활용해 데이터 중복 제거

테이블을 분리해서 아래와 같이 구조를 바꿨더니 데이터 중복이 없어졌다. 이 구조에서는 박재성이라는 이름을 개명할 때 users 테이블에 있는 딱 1개의 데이터만 수정하면 된다. 그러면 게시글에서 표시되는 작성자의 이름은 전부 한 번에 실수 없이 바뀐다.
 
posts (게시글)
id
제목
내용
작성자 id (FK)
1
[속보] 개발자 채용 확대
내용1
1
2
취업 꿀팁 공유합니다!
내용2
1
3
어제 면접 보고 온 썰
내용3
1
** ‘FK의 중복’은 중복이라고 판단하지 않는다.
 
users (사용자)
id
이름
1
박재성
 

✅ 이 경우도 데이터 중복이지 않나?

게시글 테이블의 다른 부분에서 중복 데이터가 발생할 수는 없는 지 고민해보기 위해, 억지로 중복 데이터가 발생하게끔 게시글 테이블에 데이터를 넣어봤다.
posts (게시글)
id
제목
내용
작성자 id (FK)
1
AWS 배포 과정 정리
내용1
1
2
AWS 배포 과정 정리
내용2
1
3
어제 면접 보고 온 썰
내용2
1
위 데이터를 보면 제목 컬럼에서 데이터 중복이 발생한 것처럼 보이고, 내용 컬럼에서 데이터 중복이 발생한 것처럼 보인다. 과연 이것도 데이터 중복일까? 다음 강의에서 알아보도록 하자.
 
 

✅ 정리

  • 특정 컬럼에서 데이터 중복이 발생한다면 테이블을 분리해서 데이터 중복이 발생하지 않게 만들어야 한다.
 
 
 
author
category
DB 설계
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 DB 설계 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:57 AM
📎
이 글은 비전공자도 이해할 수 있는 DB 설계 입문/실전 강의의 수업 자료 중 일부입니다.