대용량 데이터 환경에서 직면한 문제와 해결 과정 설명
대규모 데이터를 처음 다뤘을 때 가장 먼저 마주한 건 로컬에서 돌리던 코드가 메모리 오류로 멈추는 상황이었습니다. 전체 파일을 한 번에 읽는 방식으로 짜여 있었는데, 데이터 크기가 10배 이상 커지니 기존 코드가 그대로 작동하지 않았습니다. 청크 단위로 나눠 읽고 처리하는 배치 방식으로 전환했고, 중간 결과를 디스크에 저장하면서 마지막에 합치는 구조로 변경했습니다.
메모리 오류가 발생했을 때 어디까지 처리됐는지 추적이 어려웠는데, 체크포인트를 저장하는 방식으로 재시작이 가능하게 만든 것이 이후 작업에도 도움이 됐습니다. 처리 속도 개선이 필요할 때는 병렬 처리보다 IO 병목을 먼저 확인하는 것이 순서라고 배웠습니다. 스케일을 올리기 전에 소규모로 먼저 검증하는 습관이 예상치 못한 오류를 줄여줬습니다.
데이터가 커질수록 구조 설계가 코드보다 더 중요해집니다.