SQL 쿼리를 위한 문자열 연결은 흔한 문제의 원인입니다. 저자는 원시 SQL 문자열 대신 SQL 빌더 API를 사용할 것을 주장합니다. 이 빌더는 필요할 때 SQL로 렌더링될 수 있는 구문 트리를 구성하여 직접적인 문자열 조작의 문제를 피합니다. ORM도 옵션이지만, 저자는 이를 누수 추상화로 간주합니다. 팀은 Java를 사용했으며, SQL 문자열이 아닌 빌더를 사용한다는 규칙을 따랐습니다. 그러나 구성에 StringBuilder를 사용했는데, 이는 기술적으로 빌더의 정의에 부합합니다. 이 StringBuilder 접근 방식은 단지 추가 단계가 있는 문자열 연결에 불과했습니다. 예제 코드는 쿼리를 생성하는 데 사용된 StringBuilder를 보여주지만, 결과 SQL 문자열은 의도된 목적에 근본적으로 잘못되었고 불완전했습니다. 이 잘못된 코드가 즉각적인 탐지 없이 프로덕션에서 실행되었다는 사실은 심각한 우려 사항입니다. 이는 오류가 조용히 무시되었거나, 결함 있는 출력이 경고를 발생시킬 만큼 중요하지 않았음을 시사합니다. 저자는 이를 "WTF" 순간으로 강조하며, 강력한 오류 처리 또는 검증의 부족을 강조합니다.
StringBuilder를 사용했는데, 이는 기술적으로 빌더의 정의에 부합합니다. 이StringBuilder접근 방식은 단지 추가 단계가 있는 문자열 연결에 불과했습니다. 예제 코드는 쿼리를 생성하는 데 사용된StringBuilder를 보여주지만, 결과 SQL 문자열은 의도된 목적에 근본적으로 잘못되었고 불완전했습니다. 이 잘못된 코드가 즉각적인 탐지 없이 프로덕션에서 실행되었다는 사실은 심각한 우려 사항입니다. 이는 오류가 조용히 무시되었거나, 결함 있는 출력이 경고를 발생시킬 만큼 중요하지 않았음을 시사합니다. 저자는 이를 "WTF" 순간으로 강조하며, 강력한 오류 처리 또는 검증의 부족을 강조합니다.