본문 바로가기

카테고리 없음

[오픈소스 컨트리뷰션] Node - fs.cpSync 벤치마킹 파일 수정

 

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