CodeSOD: 열기가 고조되고 있다 노트

CodeSOD: 열기가 고조되고 있다

미니 스플릿 시스템은 비용 효율성과 에너지 효율이 뛰어나 오래된 주택을 개조할 때 널리 사용되지만, 적외선(IR) 리모컨에 의존해야 한다는 점 때문에 홈 오토메이션과의 연동이 복잡해집니다. 이러한 시스템 내부의 온도 변환 로직, 특히 섭씨와 화씨 간 변환 과정에서 흔히 문제가 발생합니다. 미니 스플릿을 홈 오토메이션에 통합하려는 한 오픈소스 프로젝트에서 결함이 있는 온도 변환 방식이 밝혀졌습니다.이 프로젝트의 코드는 섭씨에서 화씨, 화씨에서 섭씨로 변환하는 데 조회 테이블을 사용합니다. 이 테이블에는 구체적이면서도 종종 부정확한 매핑이 포함되어 있어, 표준 변환 공식과 비교했을 때 불일치가 발생합니다. 예를 들어, 18°C는 (반올림 시) 더 정확한 64°F 대신 65°F로 잘못 매핑됩니다. 이러한 조회 테이블의 설계는 정밀한 수학적 계산보다는 변환값을 대략적으로 추정하려는 시도를 시사합니다.저자는 처음에 이것이 취미 프로젝트의 미숙한 최적화라고 생각했으나, 코드 내 주석에 따르면 이는 “리모컨을 기반으로 한 직접 매핑”임이 밝혀졌습니다. 이는 부정확성이 리모컨 자체에서 비롯되었음을 시사합니다. 리모컨은 부동소수점 연산을 효율적으로 처리하지 못할 수 있는 임베디드 마이크로컨트롤러의 한계로 인해 조회 테이블을 사용하는 것으로 보입니다.결과적으로, 사용자가 리모컨에서 72F와 같은 온도를 설정하면, 리모컨은 내부적으로 이를 대략적인 섭씨 값(예: 22.5C)으로 변환한 후 장치에 명령을 전송합니다. 이러한 근사값은 대부분의 상황에서는 “충분히 괜찮은” 수준이지만, 정밀한 자동화에는 불일치를 초래합니다. 저자에 따르면, 근본적인 문제는 취미 프로젝트의 코드나 리모컨 자체가 아니라, 전 세계적으로 비표준 단위(화씨)가 계속 사용되고 있어 이러한 부정확한 변환이 불가피하게 되는 데 있습니다.