급여 시스템을 개발하거나 테스트할 때, 실제 직원 데이터를 사용할 수 없다. 개인정보 보호 때문이다. 그래서 현실적인 더미 데이터가 필요하다. 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 생성기를 활용해보자.