핵심 요약
- 한 이론 컴퓨터 과학자가 프로그래밍에서 흔히 쓰이는 참/거짓(Boolean) 타입을 싫어한다고 밝혀 화제가 되었습니다.
- 불리언은 값 자체 외에 맥락이나 증명 정보를 담지 못해 '명제'와 '불리언'을 혼동하게 만드는 '불리언 블라인드니스'를 유발하기 때문이라고 설명합니다.
- 수학적 증명이 필요한 명제와 단순 계산 결과인 불리언 값의 엄밀한 구분이 소프트웨어 타입 설계에서 중요하다고 강조합니다.
요약 컴퓨터 과학자이자 타입 이론 분야의 권위자인 저자는 "불리언(Boolean, 참/거짓) 데이터 타입을 극도로 싫어한다"는 도발적인 선언으로 글을 시작합니다. 컴퓨터가 비트와 논리 게이트로 동작하는데 컴퓨터 과학자가 불리언을 싫어한다는 것이 역설적으로 보일 수 있지만, 저자는 이론 컴퓨터 과학계를 언어와 의미론을 연구하는 '논리학파'와 알고리즘과 복잡도를 다루는 '조합론학파'로 나누어 설명합니다. 후자는 비트를 좋아하지만, 논리학파는 참/거짓 값 자체에는 아무런 맥락이나 정보가 담겨 있지 않다는 점에서 불리언을 지루하고 빈약한 타입으로 봅니다.\n\n핵심적인 문제는 학계나 교과서에서 '명제(Proposition)'와 '불리언(Boolean)'을 혼동한다는 점입니다. 명제는 증명이나 반례를 필요로 하는 논리적 주장인 반면, 불리언은 단순한 데이터 값(true 또는 false)에 불과합니다. 예컨대 두 값이 같은지 판별하는 동등성 검사(e = e')는 그 자체로 두 값이 같다는 명제가 아니라, 단지 불리언 값을 반환하는 함수일 뿐입니다. 이러한 구분을 놓치면 Dan Licata가 명명한 '불리언 블라인드니스(Boolean Blindness, 불리언 실명)' 현상에 빠지게 됩니다. 불리언 결과를 받고 나면 그 값이 어떤 증명이나 맥락을 거쳐 나왔는지에 대한 정보가 완전히 사라져 버리기 때문입니다. 저자는 이를 함수 간의 동등성 판별 문제 등에 빗대며, 계산 가능한 불리언과 수학적 증명이 필요한 명제의 본질적 차이를 엄밀히 인식해야 한다고 역설합니다.
Sponsored · 광고