Home > CS > 2025 > πŸ’Ύ λ“œλͺ¨λ₯΄κ°„μ˜ 법칙 - 논리 μ—°μ‚° λ³€ν™˜ κ·œμΉ™

πŸ’Ύ λ“œλͺ¨λ₯΄κ°„μ˜ 법칙 - 논리 μ—°μ‚° λ³€ν™˜ κ·œμΉ™
CS De Morgan

πŸ’Ύ λ“œλͺ¨λ₯΄κ°„μ˜ 법칙 - 논리 μ—°μ‚° λ³€ν™˜ κ·œμΉ™

β€œν•œ ꢌ으둜 μ½λŠ” 컴퓨터 ꡬ쑰와 ν”„λ‘œκ·Έλž˜λ°β€ 쀑 λΆˆλ¦¬μ–Έ λŒ€μˆ˜ 파트 μš”μ•½


κΈ°λ³Έ κ°œλ…

λ“œλͺ¨λ₯΄κ°„μ˜ λ²•μΉ™μ΄λž€?

1800λ…„λŒ€ 영ꡭ μˆ˜ν•™μž μ˜€κ±°μŠ€ν„°μŠ€ λ“œλͺ¨λ₯΄κ°„(Augustus De Morgan)이 λ°œκ²¬ν•œ λΆˆλ¦¬μ–Έ λŒ€μˆ˜μ˜ μ€‘μš”ν•œ λ²•μΉ™μž…λ‹ˆλ‹€.

핡심 원리:

  • AND 연산을 OR μ—°μ‚°μœΌλ‘œ λ³€ν™˜ κ°€λŠ₯
  • OR 연산을 AND μ—°μ‚°μœΌλ‘œ λ³€ν™˜ κ°€λŠ₯
  • NOT 연산을 적절히 ν™œμš©ν•˜μ—¬ 논리 ꡬ쑰 λ‹¨μˆœν™”

λ²•μΉ™μ˜ 곡식

μ›λž˜ μ—°μ‚° λ“œλͺ¨λ₯΄κ°„ λ³€ν™˜
a AND b NOT(NOT a OR NOT b)
a OR b NOT(NOT a AND NOT b)

μ§„λ¦¬ν‘œλ‘œ 증λͺ…

AND μ—°μ‚°κ³Ό λ“œλͺ¨λ₯΄κ°„ λ³€ν™˜ 비ꡐ

a b a AND b NOT a NOT b NOT a OR NOT b NOT(NOT a OR NOT b)
F F F T T T F
F T F T F T F
T F F F T T F
T T T F F F T

κ²°κ³Ό: a AND b와 NOT(NOT a OR NOT b)의 κ²°κ³Όκ°€ μ™„μ „νžˆ μΌμΉ˜ν•©λ‹ˆλ‹€.


긍정 논리와 λΆ€μ • 논리

κ°œλ… μ •μ˜

논리 μœ ν˜• νŠΉμ§• μ‚¬μš© 상황
긍정 논리 (정논리) 직접적인 쑰건 ν‘œν˜„ β€œμΆ₯닀”, β€œλΉ„κ°€ μ˜¨λ‹€β€
λΆ€μ • 논리 (뢀논리) 뢀정적인 쑰건 ν‘œν˜„ β€œμΆ₯μ§€ μ•Šλ‹€β€, β€œλΉ„κ°€ μ˜€μ§€ μ•ŠλŠ”λ‹€β€

μ‹€μƒν™œ μ˜ˆμ‹œ: μ½”νŠΈ 착용 κ²°μ •

긍정 논리 방식

쑰건: μΆ₯λ‹€ OR λΉ„κ°€ μ˜¨λ‹€
κ²°κ³Ό: μ½”νŠΈλ₯Ό μž…λŠ”λ‹€

λΆ€μ • 논리 방식 (λ“œλͺ¨λ₯΄κ°„ 법칙 적용)

쑰건: NOT(NOT μΆ₯λ‹€ AND NOT λΉ„κ°€ μ˜¨λ‹€)
κ²°κ³Ό: NOT(μ½”νŠΈλ₯Ό μž…μ§€ μ•ŠλŠ”λ‹€)

논리 비ꡐ ν‘œ

μΆ₯λ‹€ λΉ„κ°€ μ˜¨λ‹€ μ½”νŠΈ 착용 NOT μΆ₯λ‹€ NOT λΉ„κ°€ μ˜¨λ‹€ NOT μ½”νŠΈ 착용
F F F T T T
F T T T F F
T F T F T F
T T T F F F

ν”„λ‘œκ·Έλž˜λ°μ—μ„œμ˜ ν™œμš©

Java μ˜ˆμ‹œ

기본 쑰건문

if (isCold || isRaining) {
    wearCoat = true;
}

λ“œλͺ¨λ₯΄κ°„ 법칙 적용

if (!(notCold && notRaining)) {
    wearCoat = true;
}

μž…λ ₯ ν˜•νƒœμ— λ”°λ₯Έ μœ μ—°μ„±

경우 1: 긍정적 μž…λ ₯

boolean cold = true;
boolean raining = false;
boolean shouldWearCoat = cold || raining;  // true

경우 2: 뢀정적 μž…λ ₯ (λ“œλͺ¨λ₯΄κ°„ ν™œμš©)

boolean notCold = false;
boolean notRaining = true;
boolean shouldWearCoat = !(notCold && notRaining);  // true

μ‹€μš©μ  μž₯점

1. ν•˜λ“œμ›¨μ–΄ μ΅œμ ν™”

  • μ—°μ‚° 게이트 수 μ΅œμ†Œν™”
  • λΉ„μš© 절감 효과
  • 처리 속도 ν–₯상

2. μ½”λ“œ μœ μ—°μ„±

  • λ‹€μ–‘ν•œ μž…λ ₯ ν˜•νƒœ 처리 κ°€λŠ₯
  • 쑰건문 ν‘œν˜„ λ°©μ‹μ˜ μ„ νƒκΆŒ ν™•λŒ€
  • 논리 ꡬ쑰 λ‹¨μˆœν™”

3. μžμ—°μ–΄μ™€μ˜ μ—°κ²°

μžμ—°μ–΄: "λ‚˜λŠ” μ‚¬λž‘μ— λΉ μ§€μ§€ μ•Šμ„ 수 μ—†μ—ˆμ–΄"
논리식: NOT(NOT μ‚¬λž‘μ— 빠짐) = μ‚¬λž‘μ— 빠짐

핡심 포인트

  1. λ“±κ°€μ„±: AND와 OR은 NOT을 톡해 μ„œλ‘œ λ³€ν™˜ κ°€λŠ₯
  2. νš¨μœ¨μ„±: 졜적의 μ—°μ‚° 방식 μ„ νƒμœΌλ‘œ μ„±λŠ₯ ν–₯상
  3. μœ μ—°μ„±: μž…λ ₯ 데이터 ν˜•νƒœμ— 관계없이 λ™μΌν•œ 둜직 κ΅¬ν˜„
  4. μ‹€μš©μ„±: ν•˜λ“œμ›¨μ–΄ 섀계뢀터 κ³ κΈ‰ ν”„λ‘œκ·Έλž˜λ°κΉŒμ§€ κ΄‘λ²”μœ„ν•œ ν™œμš©

λ“œλͺ¨λ₯΄κ°„μ˜ 법칙은 논리 회둜 섀계, ν”„λ‘œκ·Έλž˜λ° μ΅œμ ν™”, 그리고 λ³΅μž‘ν•œ 쑰건문 λ‹¨μˆœν™”μ— ν•„μˆ˜μ μΈ λ„κ΅¬μž…λ‹ˆλ‹€.