728x90
반응형
타 회사에서 백엔드로 일하는 친구가 있는데 프론트로 사내에서 전향된 케이스가 하나 있습니다. 그 친구가 데이터 처리를 하는데 예제코드를 보여주더라구요
const a = data.split('-')[0]
const b = data.split('-')[1]
아무튼 대화를 하다가 저는 근데 이렇게 split 쓰는것보다 아래처럼 쓰기를 권장했습니다.
const a = data.split('-')
const x = a[0]
const y = a[1]
사실 대량의 텍스트 데이터를 갖고 저렇게 처리할일은 저는 없었다보니 그냥 친구가 보내준것처럼 가끔 작성하기도 했던것같습니다. 그래도 많은 배열 또는 많은 텍스트를 첫번째 예시같이 처리한다면 data 에 대해서 split 을 별도로 두번 실행하기때문에 실행시간 효율면에서 두번째 예제가 더 낫지 않겠나 라는 생각이 들었고 실제로 테스트를 해보았습니다.
console.time('double')
const a = test.split('-')[0];
const b = test.split('-')[0];
a === b
console.timeEnd('double')
console.time('single')
const y = test.split('-');
const x = a[0]
const z = a[0]
x === z
console.timeEnd('single')
- 로 연결된 엄청 긴 텍스트를 하나 작성했습니다. '1-2-3-4-5-6-7-...' 그리고 각각의 두 예제를 만들어서 시간을 테스트한결과
생각보다 꽤 많은 차이가 나는걸 확인 할 수 있었습니다. 그냥 뇌피셜로 당연히 그렇지 않을까 생각했었는데 일단 실제로도 충분히 차이가 나는 부분이었네요.
이런 작은 부분들이 쌓여서 코드의 실행 시간에 영향을 줄 수 있는걸 확인했으니 코드리뷰때나 스스로 코드를 작성할때나 신경써서 봐야할 부분이라고 다시한번 생각이 들었습니다.
728x90
반응형
'프론트엔드 > 한줄코딩' 카테고리의 다른 글
JS call-by-value, call-by-reference (0) | 2021.12.29 |
---|---|
JS - commaParser (0) | 2021.12.01 |
FEConf KOREA 2021 에서 받은 인사이트 (0) | 2021.11.07 |
함수선언식과 화살표 함수의 차이 (0) | 2021.10.25 |
짧고 다양한 자바스크립트 사용법 (0) | 2021.10.20 |