자동 급여 데이터를 자동 생성하는 자동화 도구를 만든 방법
Source: Dev.to
소개
대부분의 사람들은 QA(품질 보증)나 SDET(테스트 엔지니어)라고 하면 앱 테스트, 버그 찾기, 자동화 프레임워크 작성 등을 떠올립니다. 하지만 제가 경력에서 배운 가장 큰 교훈 중 하나는 이것입니다: 자동화는 단순히 소프트웨어를 테스트하는 것이 아니라, 어디서든 반복되는 고통을 없애는 것입니다.
저에게 그 “고통”은 급여 CSV 파일 형태로 나타났습니다. 겉보기엔 CSV 파일이 무해해 보이죠—그냥 행과 열일 뿐입니다. 하지만 QA 관점에서 보면, CSV는 특히 급여나 근무시간표에 사용할 때 오류와 시간 낭비의 지속적인 원천입니다.
흔히 겪는 문제
- 스키마 불일치 – 하나의 컬럼이 빠지면 전체 파일이 실패
- 데이터 무결성 – 잘못된 날짜, 유효하지 않은 직원 ID, 음수 시간
- 포맷 quirks – 여분의 콤마, 인코딩 문제, 텍스트 필드 내 줄바꿈
- 수동 입력 – 근무시간표 데이터를 CSV에 손으로 복사하는 것은 느리고 오류가 발생하기 쉬움
- 확장성 문제 – 10명 직원에게는 관리 가능하지만 수백 명이 되면 악몽
이러한 문제 하나하나가 급여 처리 지연, 직원 불만, 그리고 “그냥 작동했어야 할” 파일을 고치는 데 소모되는 시간을 초래합니다.
목표
- 수동 데이터 입력 제거
- 급여 시스템에 도달하기 전에 데이터 검증
- 다양한 팀과 포맷에 쉽게 확장 가능하도록 만들기
도구 구축: 아이디어에서 프로토타입까지
다음과 같은 핵심 요구사항을 염두에 두고 시작했습니다:
- 스키마 검증 – 모든 파일은 급여 시스템이 기대하는 정확한 구조를 따라야 함
- 유연한 데이터 소스 – 데이터는 스프레드시트, API, 혹은 수동 입력에서 올 수 있음
- 오류 처리 – 급여 시스템이 파일을 거부하기 전에 문제를 포착
- 확장성 – 10행이든 10,000행이든 효율적으로 처리
기술적인 부분
- 첫 번째 버전을 Python으로 구축했으며, CSV 처리와 검증에 적합합니다
- Pandas를 사용해 벡터화된 데이터 처리를 구현
- CSV 검증을 위한 단위 테스트 추가 (네, 테스트 데이터 생성기도 테스트합니다)
- 출력은 커스터마이징 가능하게 만들어, 서로 다른 급여 시스템이 자체 스키마를 정의할 수 있도록 함
고수준 의사코드: 도구 작동 방식
# Simplified pseudocode
load_base_csv_template()
for test_case in test_cases:
cloned_row = copy(base_csv_row)
update_required_columns(cloned_row, test_case.inputs)
validate_schema(cloned_row)
validate_business_rules(cloned_row)
append_to_output(cloned_row)
export_csv(output_file)
영향
- 급여 처리 시간이 수작업 정리 몇 시간에서 자동 생성 몇 분으로 단축
- 데이터 오류가 급격히 감소 — 음수 시간이나 유효하지 않은 ID가 더 이상 통과되지 않음
- QA와 HR 팀이 깨진 파일을 고치는 대신 결과 검토에 집중 가능
작은 파일럿 프로젝트만으로도 매달 수십 시간을 절감했습니다. 규모가 커지면 그 영향은 엄청날 수 있습니다.
다음 단계
도구를 계속 다듬고, 통합을 추가하며, 오픈소스로 공개해 다른 사람들도 활용할 수 있게 할 계획입니다. QA, 개발, DevOps, HR 기술 분야에 계신 분들의 피드백을 기다립니다:
- 여러분이 겪은 급여 또는 근무시간표 관련 고통은 무엇인가요?
- 이런 CSV 도구가 더 유용해지려면 어떤 기능이 필요할까요?
마무리 생각
CSV 파일은 결코 화려하지 않을지 모르지만, 실제 사람들을 위한 실질적인 문제를 해결하는 것이 바로 제가 자동화 엔지니어로서 흥미를 느끼는 혁신입니다.