00. 논리학의 시작: 명제 (참과 거짓)
1. 학습 목표 (Learning Objectives)
- 인간의 애매모호한 언어 중에서, 수학과 컴퓨터가 인식할 수 있는 명확한 문장인 ‘명제(Proposition)’의 개념을 이해합니다.
- 파이썬의 가장 기초적이고 강력한 데이터 타입인 불리언(Boolean:
TrueorFalse) 연산을 통해 컴퓨터가 명제를 어떻게 판별하는지 실습합니다.
2. 누가 봐도 똑같은 판정 (명제)
일상생활에서 우리는 수많은 대화를 나눕니다.
“이 꽃은 정말 예쁘다!” “수학 기말고사 문제는 너무 어려워.”
이러한 문장들은 사람의 주관이나 기분에 따라 ‘맞다’와 ‘틀리다’의 기준이 시시각각 변동합니다. 이런 문장은 수학의 세계에 입장할 수 없습니다.
반면,
“서울은 대한민국의 수도이다.” “우리 태양계의 행성은 3개이다.” (거짓말이지만, 확실하게 거짓이라고 누구나 판별 가능!) “$2 + 3 = 6$ 이다.”
이처럼 누가 보아도, 언제 어디서 보아도 객관적으로 ‘참(True)’ 혹은 ‘거짓(False)’ 임을 100% 명확하게 판별할 수 있는 문장이나 기호 식을 수학에서는 ‘명제(Proposition)’라고 부릅니다. 명제가 참인지 거짓인지 가려낸 그 결과값을 ‘진릿값(Truth Value)’이라고 합니다.
3. 파이썬의 명제 판별기 (Boolean)
컴퓨터 논리 회로(CPU)의 설계자들도 수학의 명제 이론을 그대로 가져와 컴퓨터의 0과 1 논리를 완성했습니다.
파이썬 프로그래밍 언어에서 명제의 참과 거짓을 판단하는 데이터 타입을 Boolean (불리언) 이라고 부르며, 오직 대문자로 시작하는 True(참) 와 False(거짓) 두 가지 상태값만을 가집니다.
# 파이썬 명제 판독기 (Boolean)
# 명제 1: 5는 3보다 크다. (명백한 참)
stmt_1 = (5 > 3)
print(f"명제 1의 진릿값: {stmt_1}")
# 명제 2: 10과 10은 서로 다르다 (명백한 거짓)
stmt_2 = (10 != 10)
print(f"명제 2의 진릿값: {stmt_2}")
# 명제가 아닌 문장 (변수 x의 존재)
# "x + 2 = 5 이다." -> x가 무엇인지 모르기 때문에 참인지 거짓인지 판별 불가! (조건)
x = 100
stmt_3 = (x + 2 == 5)
print(f"x가 {x} 일 때 문장의 진릿값: {stmt_3}")
파이썬의 실행 결과 요약:
명제 1의 진릿값: True
명제 2의 진릿값: False
x가 100 일 때 문장의 진릿값: False
이처럼 파이썬의 비교 연산자(>, <, ==, !=)는 우리 대신 수식 명제를 판독하여, 그 수식이 진실인지 거짓말인지 True / False 의 진릿값 판정을 내려주는 판사 역할을 합니다.
4. 학습 정리 (Summary)
- 명제 (Proposition): 개인의 감정이나 주관이 배제된 채, 누구에게나 100% 명확하게 참(True)인지 거짓(False)인지를 분명하게 판별할 수 있는 문장이나 수식을 뜻합니다.
- 논리학과 컴퓨터: 수학의 명제 판별 체계(참/거짓)는 오늘날 컴퓨터 공학의 코어인 논리 게이트회로 디자인 및 프로그래밍의 불리언(Boolean) 데이터 타입이 만들어지는 이론적 토대가 되었습니다.
서브목차