edubun
한국어

논리 게이트

인텔의 첫 마이크로프로세서인 1971년 4004에는 트랜지스터가 2,300개 있었습니다. 트랜지스터를 이어 게이트를 만들고, 프로세서는 그 게이트들로만 이루어집니다.

배경1854년 수학자 조지 불은 「사고의 법칙에 관한 연구」를 펴냈습니다. 문장을 참과 거짓으로 보고 그리고·또는·아니다로 잇는 대수였습니다. 그 뒤 수십 년 동안 이것은 주로 논리학자들이 다루는 주제였습니다. 1938년, 당시 MIT 학생이던 클로드 섀넌은 석사 논문을 바탕으로 한 논문에서, 계전기와 스위치로 만든 회로가 바로 그 대수를 따른다는 것을 보였습니다. 직렬로 놓은 스위치는 AND처럼, 병렬로 놓은 스위치는 OR처럼 움직입니다. 덕분에 이제 설계자는 회로를 실제로 만들기 전에 종이 위에서 먼저 계산하고, 더 간단하게 줄일 수 있게 되었습니다. 1947년 12월 벨 연구소의 존 바딘과 월터 브래튼이 첫 점 접촉 트랜지스터를 만들었고, 이 작은 전자 스위치가 훗날 컴퓨터 안에서 계전기와 진공관이 하던 일을 대신하게 되었습니다.

섀넌의 두 회로를 책상 위에서

섀넌이 말한 두 회로는 전지 하나, 전구 하나, 스위치 두 개로 책상 위에서도 만들 수 있습니다. 스위치 두 개를 한 줄로 이으면(직렬) 첫째와 둘째가 모두 닫혀야 전구가 켜집니다. 두 스위치를 나란히 이으면(병렬) 어느 한쪽만 닫혀도 전구가 켜집니다. 이렇게 단순한 회로도 벌써 판단을 합니다. 논리 게이트는 같은 일을 하는 작은 회로이고, 손 스위치 대신 트랜지스터로 만듭니다. 입력 비트 한두 개를 받아서 미리 정한 규칙대로 출력 비트 하나를 내보냅니다.

게이트 여섯 개와 진리표

AND는 두 입력이 모두 1일 때만 1을 냅니다. 한 줄로 이은 스위치와 같습니다. OR는 입력 가운데 하나라도 1이면 1을 냅니다. 나란히 이은 스위치와 같습니다. NOT는 입력이 하나뿐이고 그 값을 뒤집어서, 0은 1로, 1은 0으로 바꿉니다. XOR는 exclusive or, 우리말로 배타적 논리합이라고 하며 두 입력이 서로 다를 때 1을 냅니다. NAND와 NOR는 AND와 OR 뒤에 NOT를 하나 더 붙인 것이라 출력이 정반대입니다. 진리표는 나올 수 있는 입력 조합을 빠짐없이 적고, 조합마다 출력을 함께 적은 표입니다. 입력이 둘이면 네 줄, 셋이면 여덟 줄, n개면 2의 n제곱 줄이 됩니다. 줄 순서는 00, 01, 10, 11처럼 이진수로 세는 순서를 따르면 빠뜨리지 않습니다.

불러오는 중

끌어서 돌리고, 휠이나 두 손가락으로 확대하세요.

A나 B를 누르거나(단추도 됩니다) 출력 전구와 진리표의 강조된 줄을 보세요. 메뉴에서 다른 게이트를 고를 수 있습니다. 마지막의 반가산기는 XOR와 AND를 함께 놓은 것으로, 다음 단원에서 덧셈에 씁니다.
ABANDORXORNANDNOR
0000011
0101110
1001110
1111000

경보기, 같은지 확인하기, 비밀번호 검사

게이트를 엮으면 얼마든지 큰 규칙을 만들 수 있습니다. 도난 경보기를 생각해 보세요. 경보가 켜져 있고(AND), 문이 열렸거나(OR) 창문이 열렸을 때 울려야 합니다. OR 게이트 하나의 출력을 AND 게이트 하나에 넣으면 이 규칙이 됩니다. 두 비트가 같은지 보려면 XOR 뒤에 NOT를 붙입니다. XOR는 두 비트가 다를 때만 1을 내니까, 뒤집으면 같을 때 1이 됩니다. 이런 게이트 여덟 개를 나란히 놓고 출력을 모두 AND로 모으면 두 바이트 전체가 같은지 알려 주는 회로가 됩니다. 휴대폰 잠금 화면이 「비밀번호가 맞는가」를 따지는 일도, 전자레인지가 「타이머가 0이 되었는가」를 따지는 일도 결국 이런 회로로 처리됩니다. 실제 기기의 회로가 꼭 이 모양이라는 말은 아니고, 말로 된 규칙을 게이트로 옮기면 이렇게 된다는 예입니다.

NAND 하나로 모든 게이트를 만드는 법

NAND에는 쓸모 있는 성질이 있습니다. NAND 게이트만 있으면 다른 게이트를 모두 만들 수 있습니다. NAND의 두 입력을 하나로 묶으면 NOT가 됩니다. 1과 1의 NAND는 0, 0과 0의 NAND는 1이니까요. 이 NOT를 다른 NAND 뒤에 붙이면 다시 AND가 됩니다. NAND를 몇 개 더 쓰면 OR와 XOR도 나옵니다. 칩을 만드는 회사로서는 충분히 시험한 모양 하나를 칩 위에 엄청나게 많이 깔면 되니 편합니다. 실제 칩에서는 게이트 하나가 트랜지스터 몇 개로 이루어집니다. 4004에는 트랜지스터가 2,300개였고, 인텔은 2010년 2세대 코어 프로세서의 트랜지스터를 11억 6천만 개로 적었습니다. 1971년부터 39년 사이에 약 50만 배로 늘었습니다.

자주 하는 실수
  • 「OR는 둘 중 하나만이라는 뜻이다.」 일상에서 쓰는 「또는」은 그런 뜻일 때가 많습니다. 중국집에서 「짜장면 또는 짬뽕」이라고 하면 하나만 고르라는 말이고, 이것은 논리로 치면 XOR에 가깝습니다. OR는 두 입력이 모두 1일 때도 1을 냅니다. 말 하나가 두 뜻으로 쓰이다 보니 논리에서는 둘에 이름을 따로 붙였습니다.
  • 「입력이 3개면 진리표는 6줄이다.」 3 × 2로 세면 안 됩니다. 입력이 하나 늘 때마다 앞의 모든 줄이 새 입력 0일 때와 1일 때로 한 번씩 나뉘어 두 배가 됩니다. 2³ = 8줄입니다. 입력이 4개면 벌써 16줄입니다.
  • 「NAND와 NOR는 새로운 종류의 스위치다.」 NAND는 AND 뒤에, NOR는 OR 뒤에 NOT를 붙인 것일 뿐이고 안에서 새로운 일이 일어나지 않습니다. NAND가 특별한 까닭은 NAND 하나만으로 다른 게이트를 모두 만들 수 있어서입니다. 위의 진리표에서도 NAND 열은 AND 열을, NOR 열은 OR 열을 그대로 뒤집은 모양입니다.
선생님 메모이야기를 먼저 읽고, 게이트 기호를 보여 주기 전에 스위치 두 개짜리 회로를 그림으로라도 그려 보게 하세요. 직렬과 병렬 연결을 본 학생은 AND와 OR를 따로 외우지 않아도 받아들입니다. 문제가 되는 짝은 OR와 XOR입니다. 일상의 「또는」이 대개 XOR 뜻이라서 그렇습니다. 「짜장면 또는 짬뽕?」이라고 묻고 나서 「둘 다 먹으면?」 하고 다시 물어보면 차이가 금방 잡힙니다. 진리표를 쓸 때는 00, 01, 10, 11 순서를 꼭 지키게 하세요. 앞 단원에서 배운 이진수 세기와 같은 순서라서 빠뜨리는 줄이 없어집니다. 마지막 5분에는 NAND 하나로 NOT 만들기를 문제로 내 보세요. 혼자 공부한다면 장면에서 게이트를 바꿔 가며 네 줄을 모두 눌러 보고, 진리표를 보지 않고 직접 써 본 뒤에 맞춰 보는 방법이 좋습니다.
  1. 입력이 1과 0일 때 AND의 출력은?
  2. 입력이 1과 0일 때 OR의 출력은?
  3. 입력이 1과 1일 때 XOR의 출력은?
  4. 입력이 1과 1일 때 NAND의 출력은?
  5. 입력이 0과 0일 때 NOR의 출력은?
  6. 입력이 3개인 게이트의 진리표는 몇 줄입니까?
  7. 전구와 직렬로 놓은 스위치 두 개는 어떤 게이트처럼 움직입니까?
    • AND
    • OR
    • XOR
    • NOT
  8. NAND 게이트의 두 입력을 하나로 묶으면 어떤 게이트가 됩니까?
    • NOT
    • AND
    • OR
    • XOR
  9. 1971년 인텔 4004에는 트랜지스터가 몇 개 있었습니까?
  10. 섀넌의 1938년 논문은 무엇을 보였습니까?
    • 스위치 회로가 참과 거짓의 불 대수를 따른다
    • 트랜지스터가 계전기보다 빠르다
    • 이진수가 1938년에 발명되었다
    • 컴퓨터에는 십진 숫자가 필요하다
핵심 정리
  • 게이트는 정해진 규칙으로 입력 비트를 출력 비트로 바꿉니다.
  • AND는 둘 다 1, OR는 하나라도 1, NOT는 뒤집기, XOR는 입력이 서로 다를 때입니다.
  • NAND와 NOR는 AND와 OR의 출력을 뒤집은 것이고, NAND만으로 모든 게이트를 만들 수 있습니다.
  • 입력이 n개인 진리표는 2ⁿ줄입니다.
이 과정의 출처 (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

확인한 날: 2026-10-17