불대수는 수학자 조지 불의 이름을 딴 논리 체계로, 논리적인 상황을 수학처럼 다룰 수 있게 해주는 체계이다.
이 체계의 핵심은 우리가 평소 수학에서 다루는 숫자 대신, 참(True)과 거짓(False)이라는 진리 값을 다룬다는 점이다. 이 진리 값은 참과 거짓의 상태만으로 논리적 연산을 할 수 있게 하며, 컴퓨터 과학에서 논리 회로, 프로그래밍의 조건문, 데이터베이스 검색 등에 광범위하게 쓰인다.
불대수에서 다루는 값은 숫자가 아니라 참과 거짓을 나타내는 진리 값이다. 참과 거짓이라는 두 가지 상태는 ‘진리표’를 통해 표현되며, 이를 통해 논리 연산을 계산할 수 있다. 이 연산에는 AND, OR, 그리고 NOT 세 가지가 있다. 각 연산은 수학에서 더하기나 곱하기를 하듯이 진리 값을 기반으로 한 논리를 계산하는 방식이다.
불대수를 이해하기 위해서는 먼저 ‘명제’라는 개념을 알아야 한다. 명제는 참 또는 거짓을 명확하게 판단할 수 있는 문장이다. 예를 들어:
이처럼 명제는 사실을 기반으로 하며, 참인지 거짓인지 확실하게 구분될 수 있어야 한다. 반면, 다음과 같은 문장은 명제가 될 수 없다.
즉, 명제는 객관적인 진리를 가질 수 있는 문장만을 의미한다. 이러한 명제를 통해 우리는 논리적인 참과 거짓을 구분할 수 있으며, 불대수의 기본 연산을 수행할 수 있다.
불대수의 연산에는 세 가지가 있다. 각각을 자바스크립트 코드와 함께 살펴보자.
&&
)AND 연산은 두 명제가 모두 참일 때만 전체 연산의 결과가 참이 되는 연산이다. 둘 중 하나라도 거짓이라면 결과는 거짓이 된다. AND 연산을 진리표로 정리해 보면 다음과 같다.
x | y | x AND y |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
자바스크립트 코드 예시:
const x = true; // 예: 오늘 날씨가 맑다
const y = false; // 예: 오늘은 주말이다
const result = x && y; // 둘 중 하나가 거짓이라면 전체 결과는 false
console.log(result); // false
위의 예시에서, x
가 true
(참)이고 y
가 false
(거짓)이라서 x && y
는 false
이다. 이는 불대수에서 AND 연산의 특성을 보여주는데, 즉 두 조건이 모두 참이어야만 전체 결과가 참이 되는 것이다.
||
)OR 연산은 둘 중 하나만 참이어도 전체 결과가 참이 되는 연산이다. 둘 다 거짓이어야만 결과가 거짓이 된다. OR 연산을 진리표로 표현하면 다음과 같다.
x | y | x OR y |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
자바스크립트 코드 예시:
const x = false; // 예: 오늘은 비가 온다
const y = true; // 예: 오늘은 평일이다
const result = x || y; // 둘 중 하나만 참이면 전체 결과는 true
console.log(result); // true
이 예시에서는 y
가 true
라서 x || y
는 true
이다. OR 연산은 둘 중 하나만 참이면 전체 결과를 참으로 만들어 준다. 따라서 OR 연산은 논리적으로 “둘 중 하나만 맞아도 된다”는 상황에 적합하다.
!
)NOT 연산은 단일 값에 적용되는 연산으로, 참을 거짓으로, 거짓을 참으로 뒤집는다. 이는 하나의 진리 값을 부정하는 방식이다.
x | NOT x |
---|---|
true | false |
false | true |
자바스크립트 코드 예시:
const x = true; // 예: 오늘 숙제를 다 했다
const result = !x; // x가 true면 NOT x는 false로 뒤집힘
console.log(result); // false
이 예시에서 x
가 true
라면 !x
는 false
로 뒤집히게 된다. NOT 연산은 단일 진리 값을 반전시키며, 주로 조건이 충족되지 않음을 표현할 때 유용하게 쓰인다.
불대수의 연산은 단일 연산자뿐만 아니라 복합적인 논리식에서도 사용된다. 예를 들어 다음과 같은 복합 조건을 생각해 보자.
const isWeekend = false; // 주말이 아님
const isSunny = true; // 날씨가 맑음
const haveFreeTime = true; // 여유 시간이 있음
const canGoHiking = isWeekend && isSunny && haveFreeTime;
console.log(canGoHiking); // false (주말이 아니라서 전체 조건이 false)
위 예시에서 주말이고 날씨가 맑으며 여유 시간이 있을 때만 산책을 간다는 조건을 적용해 본다. 주말 조건이 거짓이므로, 전체 결과는 false
가 된다. 이런 식으로 불대수는 여러 조건을 종합해서 참/거짓을 결정하는 데 쓰인다.
불대수는 참(True)과 거짓(False) 두 가지 값만을 다루는 논리 체계다. 이를 통해 명제의 진리 값을 기반으로 논리 연산을 수행할 수 있고, 주요 연산에는
AND
,OR
,NOT
이 있다.컴퓨터 과학에서는 이런 논리를 기반으로 논리 회로나 프로그래밍의 조건문 등을 구성하는데 불대수가 사용된다. 불대수를 이해하면 논리적인 조건 판단이 필요한 다양한 상황에서 참과 거짓을 체계적으로 구분하고 활용할 수 있다.