소스코드 성능개선

Jinmin Kim·2025년 1월 21일

문자열의 불변성

JavaScript에서 문자열은 불변(immutable)입니다. 문자열을 수정하려고 하면, 기존 문자열을 수정하지 않고 새로운 문자열을 생성합니다.
즉, += 연산을 사용할 때마다 메모리에 새로운 문자열 객체가 만들어집니다.

let str = "A";
str += "B"; // 새로운 문자열 "AB"가 생성됨
str += "C"; // 또 다른 새로운 문자열 "ABC"가 생성됨

join 메서드의 동작 방식

Array.prototype.join은 배열의 요소를 한 번에 연결하여 하나의 새로운 문자열을 만듭니다.

내부 동작:
배열의 각 요소를 순회하며 문자열을 생성하는 대신, 하나의 버퍼를 만들어 요소를 모두 연결한 뒤 최종 문자열을 반환합니다.
이 과정에서 문자열 복사 작업이 최소화됩니다.

성능차이

// 문자열 덧셈
let result1 = "";
for (let i = 0; i < 100000; i++) {
  result1 += "A";
}

// join
let result2 = new Array(100000).fill("A").join("");

문자열 덧셈: 매 반복마다 새로운 문자열 생성 → 시간이 오래 걸림.
join: 배열에 요소를 추가한 뒤 한 번에 연결 → 더 빠르고 메모리 효율적.

  • 브라우저 테스트 결과:
    덧셈(+=)은 메모리 사용량이 많고, 실행 시간이 join에 비해 더 느립니다.
    join은 메모리를 효율적으로 사용하며 실행 속도가 더 빠릅니다.
profile
Let's do it developer

0개의 댓글