내일배움캠프

내일배움캠프 Unity - TIL : 25.04.16

달시_Dalsi 2025. 4. 16. 22:46
728x90

오늘 학습한 내용

1) StringBuilder를 사용한 문자열 처리 성능 최적화

C#에서 문자열을 반복적으로 더하거나 조작할 때는 + 연산자보다 System.Text.StringBuilder를 사용하는 것이 성능상 유리하다는 점을 학습했습니다. 특히 반복문 내에서 문자열을 누적할 때 StringBuilder는 메모리 할당을 줄여 더 나은 성능을 제공합니다.


문제 및 해결 과정

1) 문제 (문자열 누적 시 성능 저하 발생)

반복문을 사용해 긴 문자열을 생성할 때 + 연산을 사용하면, 문자열이 불변(immutable) 특성을 가지기 때문에 매번 새로운 문자열 객체가 생성되어 메모리 할당이 많아지는 현상이 있었습니다.

 

시도한 해결 방법

  • string result = ""; 방식으로 반복 누적
  • StringBuilder sb = new StringBuilder(); 를 사용하여 .Append()로 누적

결과

StringBuilder를 사용하니 메모리 사용량이 줄고, 특히 대량의 문자열을 처리할 때 그 차이가 눈에 띄게 나타났습니다.


새롭게 알게 된 점

 

  • 문자열 연결 시 + 연산은 새 객체를 계속 생성하므로, 반복적인 문자열 처리에는 적합하지 않음
  • StringBuilder는 내부 버퍼를 사용하여 문자열을 효율적으로 누적
  • Append, AppendLine, Clear, ToString 등의 메서드를 적절히 활용하면 더욱 깔끔한 코드 작성이 가능

 

728x90