C#/문자열 다루기

C# StringBuilder: Append와 AppendFormat 완벽 가이드

개발하는 늑대 2025. 4. 26. 07:10
728x90
728x90

 

C# StringBuilder: Append와 AppendFormat 완벽 가이드

📌 핵심 요약

  • ✔️ StringBuilder는 문자열 조작을 위한 효율적인 클래스
  • ✔️ Append는 단순 연결, AppendFormat은 서식 지정 가능
  • ✔️ 빈번한 문자열 수정 시 String보다 성능이 우수

StringBuilder 개요

using System.Text;
StringBuilder sb = new StringBuilder();
  • 가변적인 문자열을 다룰 때 사용하는 클래스입니다.
  • string과 달리 문자열 조작 시 새로운 객체를 생성하지 않아 메모리 효율적입니다.
  • System.Text 네임스페이스에 포함되어 있습니다.

Append vs AppendFormat 차이점

1. Append 메서드

StringBuilder sb = new StringBuilder();
sb.Append("안녕하세요 ");
sb.Append("롬멜님"); // 결과: "안녕하세요 롬멜님"
  • 단순히 문자열을 끝에 추가합니다.
  • 기본적인 문자열 연결 작업에 사용됩니다.
  • 오버로드가 다양하여 숫자, 문자 등 다양한 타입 추가 가능합니다.

2. AppendFormat 메서드

StringBuilder sb = new StringBuilder();
string name = "롬멜";
int age = 35;
sb.AppendFormat("이름: {0}, 나이: {1}세", name, age); // 결과: "이름: 롬멜, 나이: 35세"
  • 형식 문자열을 사용하여 서식화된 문자열을 추가합니다.
  • string.Format과 유사한 방식으로 작동합니다.
  • 복잡한 문자열 포맷팅에 유용합니다.

성능 비교 예제

// Bad Practice (String)
string result = "";
for(int i = 0; i < 1000; i++)
{
    result += i.ToString();
}

// Good Practice (StringBuilder)
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 1000; i++)
{
    sb.Append(i);
}
string result = sb.ToString();

실무 활용 팁

  • 💡 대량의 문자열 연산이 필요한 경우 반드시 StringBuilder를 사용하세요.
  • 💡 대량의 로그 작성 시 유용합니다.
  • 💡 초기 용량을 알 수 있다면 생성자에서 지정하여 성능을 최적화할 수 있습니다.

 

StringBuilder sb = new StringBuilder(capacity: 1000);

마치며

StringBuilder는 C# 개발에서 문자열 처리 성능을 최적화하는 핵심 도구입니다. 특히 대량의 문자열 처리가 필요한 경우 필수적으로 사용해야 하는 클래스입니다.

728x90

 

728x90