유틸리티

더미 데이터 생성과 급여 시스템 테스트 자동화

급여 시스템을 개발하거나 테스트할 때, 실제 직원 데이터를 사용할 수 없다. 개인정보 보호 때문이다. 그래서 현실적인 더미 데이터가 필요하다. Lorem Ipsum 생성기처럼 텍스트 더미를 만드는 도구가 있는데, 급여 데이터용으로는 좀 더 구조화된 접근이 필요하다.

Faker 라이브러리

JavaScript에서는 @faker-js/faker 라이브러리로 다양한 더미 데이터를 생성한다.

import { faker } from "@faker-js/faker/locale/ko"; const employee = { name: faker.person.fullName(), email: faker.internet.email(), department: faker.commerce.department(), salary: faker.number.int({ min: 30000000, max: 100000000 }) };

한국어 로케일을 지정하면 한국식 이름과 주소가 생성된다.

현실적인 급여 분포

모든 직원 연봉이 3000~1억 사이에 균등 분포하면 비현실적이다. 실제 연봉 분포는 정규분포에 가깝고, 고액 연봉자는 적다. 이걸 반영하려면 Box-Muller 변환 같은 걸 쓴다.

gmaile.kr/lorem-ipsum에서 텍스트 더미를 생성하듯, 급여 더미도 통계적으로 의미 있게 생성해야 한다.

엣지 케이스 포함

테스트 데이터에는 엣지 케이스를 포함해야 한다.

  • 최저 연봉 (최저임금 수준)
  • 고액 연봉 (억대 연봉)
  • 중도 입사자 (일할 계산 필요)
  • 휴직자 (무급휴직, 육아휴직)
  • 퇴사자 (정산 필요)

시드 고정

테스트의 재현성을 위해 난수 시드를 고정한다. 같은 시드면 같은 데이터가 생성되어, 버그 재현이 쉽다.

faker.seed(12345); // 이후 생성되는 모든 데이터가 동일

대량 데이터 생성

성능 테스트를 위해 수만 명의 더미 직원 데이터가 필요할 수 있다. 배치로 생성하고 CSV나 SQL로 내보내서 DB에 로드한다.

데이터 마스킹

프로덕션 데이터를 복사해서 테스트에 쓸 때는 민감 정보를 마스킹한다. 이름, 계좌번호, 주민번호 등을 더미 데이터로 교체한다. Lorem Ipsum 같은 무의미한 텍스트로 바꾸는 것도 방법이다.

정리하면

급여 시스템 테스트에는 현실적이면서도 안전한 더미 데이터가 필수다. 텍스트 더미가 필요할 때 온라인 Lorem Ipsum 생성기를 활용해보자.