CodeSOD: 다시 되돌리기, 아주 먼 과거로
Windows Presentation Foundation는 Windows용 UI 프레임워크로, 컨트롤을 데이터 바인딩할 수 있게 해줍니다. 즉, 텍스트 상자를 모델 클래스의 숫자 필드에 연결할 수 있습니다. 이 프레임워크는 사용자 지정 유형을 변환하는 방법에 대한 지침이 필요하며, 여기서 IValueConverter 인터페이스가 사용됩니다. 이 인터페이스는 Convert와 ConvertBack의 두 가지 메서드를 가지고 있으며, 이를 사용하여 유형 간에 데이터를 변환할 수 있습니다. 이 인터페이스를 구현하는 클래스는 예를 들어 색상을 브러시로 변환하는 데 사용될 수 있습니다. 그러나 이 인터페이스의 API는 호감받지 못하며, 명명 규칙이 혼란스러울 수 있습니다. Fredrika의 제출은 텍스트 상자를 double 필드에 바인딩할 때 빈 문자열을 null로 변환하지 않는 내장 컨버터의 문제를 강조합니다. 이 문제를 해결하기 위해 사용자 지정 컨버터가 작성되었지만, 변수 이름이 잘못 지정되고 논리가 불분명하여 구현이 이상적이지 않습니다. 컨버터는 변환할 때 값을 double로 캐스팅하고, 다시 변환할 때 문자열로 캐스팅하므로 혼란을 야기할 수 있습니다. WPF에서 컨버터를 사용하는 전반적인 접근 방식은 호감받지 못하며, 이 구현은 문제를 명확히 하는 데 도움이 되지 않습니다. 빈 텍스트 상자를 null 값으로 취급하기 위해 컨버터를 사용하는 것은 향후 문제를 야기할 수도 있습니다. 전반적으로 컨버터 API와 이 경우의 구현은 잘 설계되지 않았으며 혼란과 잠재적인 문제를 야기할 수 있습니다.