[JavaScript] 불 대수

Moon·2024년 10월 28일
0

JavaScript | 기초

목록 보기
13/48
post-thumbnail

불대수는 수학자 조지 불의 이름을 딴 논리 체계로, 논리적인 상황을 수학처럼 다룰 수 있게 해주는 체계이다.

이 체계의 핵심은 우리가 평소 수학에서 다루는 숫자 대신, 참(True)거짓(False)이라는 진리 값을 다룬다는 점이다. 이 진리 값은 참과 거짓의 상태만으로 논리적 연산을 할 수 있게 하며, 컴퓨터 과학에서 논리 회로, 프로그래밍의 조건문, 데이터베이스 검색 등에 광범위하게 쓰인다.


진리 값과 불대수의 기본 연산

불대수에서 다루는 값은 숫자가 아니라 참과 거짓을 나타내는 진리 값이다. 참과 거짓이라는 두 가지 상태는 ‘진리표’를 통해 표현되며, 이를 통해 논리 연산을 계산할 수 있다. 이 연산에는 AND, OR, 그리고 NOT 세 가지가 있다. 각 연산은 수학에서 더하기나 곱하기를 하듯이 진리 값을 기반으로 한 논리를 계산하는 방식이다.


명제란 무엇인가?

불대수를 이해하기 위해서는 먼저 ‘명제’라는 개념을 알아야 한다. 명제는 참 또는 거짓을 명확하게 판단할 수 있는 문장이다. 예를 들어:

  • “대한민국의 수도는 서울이다.” → 참인 명제
  • “2는 1보다 작다.” → 거짓인 명제

이처럼 명제는 사실을 기반으로 하며, 참인지 거짓인지 확실하게 구분될 수 있어야 한다. 반면, 다음과 같은 문장은 명제가 될 수 없다.

  • “한국의 수도는 어디인가?” → 질문이므로 명제가 아님
  • “짜장면보다 짬뽕이 맛있다.” → 주관적 의견이므로 참/거짓을 판단할 수 없어 명제가 아님

즉, 명제는 객관적인 진리를 가질 수 있는 문장만을 의미한다. 이러한 명제를 통해 우리는 논리적인 참과 거짓을 구분할 수 있으며, 불대수의 기본 연산을 수행할 수 있다.


불대수의 연산

불대수의 연산에는 세 가지가 있다. 각각을 자바스크립트 코드와 함께 살펴보자.

1. AND 연산 (&&)

AND 연산은 두 명제가 모두 참일 때만 전체 연산의 결과가 참이 되는 연산이다. 둘 중 하나라도 거짓이라면 결과는 거짓이 된다. AND 연산을 진리표로 정리해 보면 다음과 같다.

xyx AND y
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

자바스크립트 코드 예시:

const x = true;  // 예: 오늘 날씨가 맑다
const y = false; // 예: 오늘은 주말이다

const result = x && y;  // 둘 중 하나가 거짓이라면 전체 결과는 false
console.log(result);  // false

위의 예시에서, xtrue(참)이고 yfalse(거짓)이라서 x && yfalse이다. 이는 불대수에서 AND 연산의 특성을 보여주는데, 즉 두 조건이 모두 참이어야만 전체 결과가 참이 되는 것이다.


2. OR 연산 (||)

OR 연산은 둘 중 하나만 참이어도 전체 결과가 참이 되는 연산이다. 둘 다 거짓이어야만 결과가 거짓이 된다. OR 연산을 진리표로 표현하면 다음과 같다.

xyx OR y
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

자바스크립트 코드 예시:

const x = false; // 예: 오늘은 비가 온다
const y = true;  // 예: 오늘은 평일이다

const result = x || y;  // 둘 중 하나만 참이면 전체 결과는 true
console.log(result);  // true

이 예시에서는 ytrue라서 x || ytrue이다. OR 연산은 둘 중 하나만 참이면 전체 결과를 참으로 만들어 준다. 따라서 OR 연산은 논리적으로 “둘 중 하나만 맞아도 된다”는 상황에 적합하다.


3. NOT 연산 (!)

NOT 연산은 단일 값에 적용되는 연산으로, 참을 거짓으로, 거짓을 참으로 뒤집는다. 이는 하나의 진리 값을 부정하는 방식이다.

xNOT x
truefalse
falsetrue

자바스크립트 코드 예시:

const x = true;  // 예: 오늘 숙제를 다 했다

const result = !x;  // x가 true면 NOT x는 false로 뒤집힘
console.log(result);  // false

이 예시에서 xtrue라면 !xfalse로 뒤집히게 된다. 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이 있다.

컴퓨터 과학에서는 이런 논리를 기반으로 논리 회로나 프로그래밍의 조건문 등을 구성하는데 불대수가 사용된다. 불대수를 이해하면 논리적인 조건 판단이 필요한 다양한 상황에서 참과 거짓을 체계적으로 구분하고 활용할 수 있다.

profile
MOON.DEVLOG

0개의 댓글