본문 바로가기
-- 오늘 있었던 개발 일기

더미 데이터에 시퀀스?

by code study 2026. 1. 29.

더미데이터와 테스트 데이터 ID 충돌 해결하기

문제 발견

Spring Boot 프로젝트에서 더미데이터를 data.sql에 넣고 개발을 시작했다. 그런데 Postman으로 새 데이터를 추가하려고 하니 문제가 발생했다. 처음 문제를 발견했을 때는 멤버를 새로 추가하지를 않았기 멤버에 시퀀스멤버가 겹치는것이 뭐가 문제인지 바로 인지하지 못하였다. 하지만 휴가를 신청하려고 하니 휴가 신청 번호가 시퀀스를통해 1번부터 시작되는 것을 알았고 기존 더미데이터에 대부분이 id같은 pk키가 1,2,3,4 순으로 저장되있다는걸 알게됬다...

-- data.sql의 더미데이터
INSERT INTO members (member_id, ...) VALUES (1, '김인사', ...);
INSERT INTO members (member_id, ...) VALUES (2, '이채용', ...);

Postman으로 직원을 추가하면 JPA가 자동으로 member_id를 1부터 생성한다. 당연히 충돌이 발생한다.

더미데이터: member_id = 1, 2, 3...
Postman 테스트: member_id = 1, 2, 3...
→ Primary Key 중복 오류!

해결 방법 고민

처음에는 시퀀스를 더미데이터 다음부터 시작하도록 설정하려고 했다.

-- 더미데이터가 1~100번이면
ALTER SEQUENCE member_seq RESTART WITH 101;

하지만 이 방식은 문제가 있었다.

첫째, 테이블마다 시퀀스 시작값을 다르게 계산해야 한다.
둘째, 더미데이터를 추가할 때마다 시퀀스 값을 수정해야 한다.
셋째, H2 데이터베이스에서 시퀀스가 생성되기 전에 ALTER를 실행하면 오류가 발생한다.

Sequence "DEPARTMENT_SEQ" not found

최종 해결책

더미데이터 ID를 1000번대로 변경했다.

-- 수정 후
INSERT INTO members (member_id, ...) VALUES (1001, '김인사', ...);
INSERT INTO members (member_id, ...) VALUES (1002, '이채용', ...);
INSERT INTO members (member_id, ...) VALUES (1003, '박매니저', ...);

-- 크리에이터는 2000번대
INSERT INTO members (member_id, ...) VALUES (2001, '감스트', ...);
INSERT INTO members (member_id, ...) VALUES (2002, '또간집', ...);

이렇게 하면 Postman 테스트는 자연스럽게 1번부터 시작되고, 더미데이터와 절대 충돌하지 않는다.

더미데이터:
- 직원: 1001~1014
- 크리에이터: 2001~2009
- 기타 테이블: 모두 1000번대

Postman 테스트:
- 모든 테이블: 1번부터 자동 증가

→ 충돌 없음!

추가 장점

나중에 테스트 데이터만 삭제하고 싶을 때도 편리하다.

-- 테스트 데이터만 삭제 (1~999)
DELETE FROM members WHERE member_id < 1000;
DELETE FROM vacation WHERE vacation_id < 1000;

-- 더미데이터(1000번대)는 그대로 유지

데이터를 보기도 편해졌다. 1000번대는 더미데이터, 1번대는 내가 만든 테스트 데이터라는 게 한눈에 보인다.


배운 점

개발 환경 설정은 생각보다 중요하다. 처음부터 더미데이터와 테스트 데이터의 ID 범위를 분리해두지 않았다면, 개발 중에 계속 충돌 오류를 만났을 것이다.

간단한 규칙 하나가 개발 효율을 크게 높일 수 있다는 걸 배웠다.

 

'-- 오늘 있었던 개발 일기' 카테고리의 다른 글

ReFresh Token 에서 Refresh Token Rotation까지 사용하자  (0) 2026.02.11
트랜잭션의 격리 수준  (0) 2026.02.01
테이블 설계...  (0) 2026.01.28
spring MVC에 대해서  (0) 2026.01.16
aws에 대해하여!  (0) 2026.01.06