Python 테스트 반복 속도를 10배 높이는 방법
역량 개발 · 벤츨링 테크 · 2023.07.21
프로젝트 규모가 커지면서 dependency가 늘어나면 테스트 실행 전 준비 시간이 길어지는 문제가 발생하곤 합니다. Benchling 엔지니어링 팀은 이를 해결하기 위해 `os.fork()`를 활용한 방식을 도입했는데요. 모든 모듈을 매번 다시 로드하는 대신, dependency가 이미 로드된 상태에서 프로세스를 복제(fork)하여 테스트 코드만 실행하는 방식입니다. 또한, `gc.freeze()`를 사용하여 Copy-on-Write(CoW) 효율을 높임으로써 메모리 사용량까지 최적화했답니다. 이 방법을 통해 테스트 반복 시간을 10초에서 1초로, 무려 90% 이상 단축하는 놀라운 성과를 거두었습니다!