Node - File System 모듈의 cpSync 메소드에 대한
벤치마킹 코드 가독성을 0.000001% 개선한 경험을 공유하고자 함
오케이 레츠고!
무슨 이슈를 해결했는가?
fs.cpSync 가 force 라는 옵션을 파라미터로 받는데
그 옵션의 디폴트값이 force:true 란 말임
그런데 벤치마킹 코드에서 force:true 를 명시해서 보내고 있는 것임?!
그래서 가독성 높이고자 force:true 를 없애는 PR 을 올림
여기서 등장하는 개념 정리
✅ fs.cpSync 가 뭔데?
Node 의 File System 모듈에서 제공하는 메소드로
파일이나 디렉토리를 다른 위치로 복사하는 기능임
여기서 force 옵션이 등장하는데
복사하려는 타겟 위치에 이미 파일이나 디렉토리가 존재하는 경우,
이를 덮어쓸 지 여부를 결정하는 옵션임(* force:true 면 덮어씀)
✅ 벤치마킹 작업이 뭔데?
특정 메서드의 성능을 측정하는 작업임
이 메서드가 얼마나 빠르게 수행되는 지, 누군가 이 메서드를 수정하는 PR을 올렸을 때 성능 저하가 발생하지는 않는 지 등등..
알고리즘 사이트에서 문제 풀 때 보면 여러 input 값을 넣어가며 성능 테스트가 이뤄지는데
이것도 같은 개념이라고 보면 됨
특정 메서드에 대해 여러 input 값을 넣어가며 성능 테스트가 진행되는 작업인것임
Node 레포지토리의 benchmark 폴더 내에 보면
모듈 별로 메소드에 대한 벤치마킹 파일이 존재함 (멋지다...!!!!!)
여기서 나는 /node/benchmark/fs 쪽을 수정한 것
어떻게 해결했는가?
fs.cpSync 문서를 보면
파라미터 옵션 중 하나인 force 필드의 디폴트값은 true 라고 문서에 명시되어 있음
그런데 벤치마킹 코드에서 force: true 값을 굳이 명시해서 fs.cpSync 를 호출하고 있길래
제거하는 PR 을 넣었음
➡️ 기여한 PR 링크: https://github.com/nodejs/node/pull/54203