← 블로그로 돌아가기릴레이로 컴퓨터 만들기 · 3/18

병렬 스위치: 그 안에 숨은 OR 논리

두 스위치를 병렬로 연결하고 제일원리에서 OR을 발견해 보세요. 병렬 회로, 릴레이 논리, 그리고 이름 붙기 전의 OR 게이트가 작동하는 방식을 다룹니다.

Matthias KellerMatthias Keller
약 6분 소요
Chalkboard feature illustration for “병렬 스위치: 그 안에 숨은 OR 논리”

이전 글에서는 두 나이프 스위치를 한 줄로 차례차례 이어 직렬로 연결했고, 두 스위치가 모두 닫혀야만 램프가 켜진다는 사실을 발견했습니다. 전류가 회로를 통과하는 길은 단 하나이고, 그 길에는 두 개의 관문이 있습니다. 무엇이든 통과하려면 둘 다 열려 있어야 합니다. 아직 이름을 붙이지는 않았지만, 여러분은 구리와 스프링 강철로 AND 게이트를 만든 셈입니다.

이제 같은 두 스위치를 같은 두 전선을 공유하도록 나란히 다시 연결해 봅시다. 왼쪽 경로에 스위치 A를, 오른쪽 경로에 스위치 B를 놓고, 두 경로가 다시 합쳐지는 아래쪽에 램프를 답니다. 그러면 조용하지만 놀라운 일이 일어납니다. A가 닫히면, 또는 B가 닫히면, 또는 둘 다 닫히면 램프가 켜집니다. 전류가 갈 곳을 주지 않는 스위치가 둘 다일 때만 램프는 꺼진 채로 있습니다.

두 가지 배치, 두 가지 규칙입니다. 직렬은 둘 다라고 말합니다. 병렬은 어느 하나라고 말합니다. 그리고 바로 그 어느 하나라는 말 속에 OR의 모든 논리가 숨어 있습니다.

두 경로 이야기

이것을 OR이라고 부르기 전에 먼저 물리적으로 느껴 봅시다. 직렬 회로에는 전류가 흐를 경로가 하나이고, 두 개의 관문이 그 길을 지킵니다. 병렬 회로에는 두 경로가 있으며, 램프를 막으려면 두 경로를 동시에 끊어야 합니다. 한 경로를 열어 두면 전류는 다른 길로 흘러갈 뿐입니다.

언덕을 피해 갈라지는 도로라고 생각해 보세요. 두 길이 모두 뚫려 있으면 차량은 어느 쪽으로든 흐릅니다. 쓰러진 나무가 한쪽을 막으면 운전자는 다른 쪽을 택합니다. 두 길이 모두 막혔을 때만 모든 흐름이 멈춥니다.

이 이중 경로 그림에는 처음 보이는 것보다 더 많은 구조가 담겨 있습니다. 물리학자는 전류가 최소 저항 경로를 따른다고 봅니다. 더 정확히 말하면, 전류는 이용 가능한 모든 경로를 한꺼번에 흐릅니다. 엔지니어는 단일 장애점이 없는 이중화 설계를 봅니다. 논리학자는 잠시 뒤 OR 진리표로 만나게 될 정확한 네 행의 규칙을 봅니다. 그러나 1840년대를 돌아보는 역사가에게는 더 놀라운 장면이 보입니다. 누군가 논리 게이트를 꿈꾸기도 전에 같은 설계 철학이 이미 대륙을 가로질러 메시지를 계속 흐르게 하고 있었습니다.

전신에서 배운 병렬 경로의 교훈

1840년대 후반과 1850년대에 장거리 전신망이 전 세계로 퍼져 나가자, 이를 운영하던 엔지니어들은 혹독한 교훈을 빠르게 얻었습니다. 전선은 끊어진다는 것입니다. 얼음 폭풍이 전선을 끊고, 홍수가 전신주를 쓸어 가며, 철도 작업자들이 실수로 선로를 절단하기도 합니다. 두 도시를 잇는 단일 회선은 취약했습니다. 전보 사업은 그 위험을 감수하기에 너무 중요했습니다.

해법은 거의 즉시 나왔습니다. 두 번째 회선을 병렬로 깔아라. 주 경로가 끊기면 통신원은 백업 경로로 우회할 수 있었습니다. 보스턴에서 뉴욕으로 향하는 메시지는 더 이상 예측하기 어려운 시골을 가로질러 수백 마일 뻗은 구리선 한 가닥에만 의존하지 않았습니다. 대안이 생겼고, 시스템은 복원력을 갖게 되었습니다.

같은 사고방식은 뒤이어 등장한 전화망으로 이어졌고, 그 후 모든 계층의 통신 인프라로 퍼졌습니다. 해저에는 두 겹, 세 겹의 케이블이 놓이고, 광섬유 백본은 대륙을 가로질러 교차하며, 마침내 인터넷 자체도 그 원리를 따랐습니다. 초기 인터넷 설계자들은 이를 분명히 말했습니다. 네트워크는 손상된 곳을 피해 경로를 찾아야 한다고 말입니다. 이것이 패킷 교환이지만, 그 밑바탕의 논리는 지금 우리가 보고 있는 것과 같습니다. 신호에 통과할 길을 하나 이상 주면, 한 길을 잃어도 메시지는 멈추지 않습니다.

이 엔지니어들이 한 일에는 이름이 있습니다. 물리적 인프라에 OR 논리를 적용한 것입니다. 모든 경로가 실패할 때에만 어느 한 곳의 장애가 네트워크를 멈춥니다. 이는 실패에 AND 논리를 적용한 것입니다. 어떤 경로든 살아남으면 메시지는 도달합니다. 이는 성공에 OR 논리를 적용한 것입니다. 이것은 단순한 게이트 동작이 아닙니다. Shannon이 수학적 이름을 붙이기 훨씬 전에 엔지니어들이 내면화한 사고의 패턴입니다.

두 스위치, 하나의 램프, 네 가지 가능성

정확하게 말해 봅시다. 왼쪽 스위치를 A, 오른쪽 스위치를 B라고 하겠습니다. 각 스위치는 닫힘(1) 또는 열림(0) 중 하나입니다. 램프는 켜짐(1) 또는 꺼짐(0) 중 하나입니다.

모든 조합을 살펴보면 다음과 같습니다.

AB램프(A OR B)
000
011
101
111

네 가지 조합 중 세 가지에서 램프가 켜집니다. 유일하게 어두운 행은 첫 번째입니다. 두 스위치가 모두 열려 있고, 두 경로가 모두 막혀 전류가 갈 길이 없습니다.

이전 글의 AND 표와 비교해 보세요. AND에서는 네 경우 중 둘 다 스위치가 닫힌 한 행에서만 램프가 켜졌습니다. 병렬 OR과 직렬 AND는 매우 정확한 의미에서 서로 거울상입니다. AND는 엄격해서 모든 것을 요구합니다. OR는 관대해서 무언가 하나만 있으면 됩니다.

두 스위치가 모두 닫힌 마지막 행을 보세요. 예상대로 램프가 켜집니다. 적어도 한 경로가 완성되어 있기 때문입니다. 전류는 두 경로가 있다고 혼란스러워하지 않고 둘 다를 통해 흐릅니다. 논리 결과, 즉 켜짐 또는 꺼짐은 다른 경로가 무엇을 하든 적어도 하나의 경로가 열려 있는지에만 달려 있습니다.

이 네 행 표가 바로 OR의 진리표입니다. ‘OR’이나 ‘게이트’라는 말을 전혀 몰라도 물리적 배치만으로 완전히 이끌어 낼 수 있습니다. 논리는 이미 전선 속에 있고, 발견되기를 기다립니다.

직접 해 보기

진리표를 읽는 일도 유용합니다. 하지만 스위치를 직접 조작하면 잊을 수 없게 됩니다. 아래에는 하나의 램프를 공유하는 두 나이프 스위치로 이루어진 실시간 병렬 회로가 있습니다. 이 페이지 안에서 실제 DC 회로 시뮬레이션으로 실행됩니다. 소리를 켜세요.

병렬로 연결한 두 스위치. 어느 하나만 닫아도 램프가 켜집니다. 이것이 OR입니다.
Open in the Relay Lab

회로를 눈앞에 두고 해 볼 만한 실험은 세 가지입니다.

  1. 어느 한 스위치만 닫아 보세요. 램프는 어느 것인지 신경 쓸까요? 먼저 A를 닫고, 다시 열어 B를 닫아 보세요. 램프는 똑같이 반응합니다. 전류는 어느 경로를 선호하지 않고, 열려 있는 길이면 어느 쪽이든 택합니다. 이 무차별성이 바로 OR의 뜻입니다. 1의 출처는 중요하지 않고, 적어도 하나가 존재한다는 사실만 중요합니다.
  2. 두 스위치를 모두 닫은 뒤, 하나만 열어 보세요. 램프는 계속 켜져 있습니다. 머릿속으로 회로를 따라가 보세요. 전류는 남아 있는 경로를 통해 여전히 흐르고 있습니다. 이것이 눈에 보이는 이중화입니다. 어느 연결 하나가 끊겨도 신호는 살아남습니다. 둘을 동시에 잃을 때만 실패합니다. 이것이 전신 엔지니어들의 통찰을 실시간으로 체험하는 방식입니다.
  3. AND와 대비해 보세요. 이전 글의 직렬 회로를 다른 탭에 열어 두었다면 앞뒤로 전환해 보세요. 직렬에서는 스위치 하나만 닫아도 램프가 꺼진 채입니다. 열린 스위치가 거부권을 행사하는 셈입니다. 병렬에서는 스위치 하나만 닫아도 충분합니다. 닫힌 스위치가 한 표를 행사하는 셈입니다. AND에는 만장일치가 필요합니다. OR에는 하나의 다수면 충분합니다.

OR는 복원력의 논리다

계속하기 전에 곱씹어 볼 만한 더 깊은 관찰이 있습니다.

AND 논리는 요건의 논리입니다. 무엇이 일어나기 전에 모든 조건이 충족되어야 합니다. 어디서든 실패하면 치명적인 상황에서 사용합니다. 올바른 열쇠가 꽂히고 그리고 정확한 코드가 입력되어야만 열리는 자물쇠가 그런 예입니다. 엄격하고 안전하며 냉정합니다.

OR 논리는 대안의 논리입니다. 어떤 한 조건만으로도 충분합니다. 일부 경로는 잃어도 되지만 전부를 잃어서는 안 될 때 사용합니다. 현관문 또는 뒷문이 열리면 울리는 경보, 주 서버 또는 백업 서버가 정상일 때 요청을 처리하는 이중화 서버가 그 예입니다. 포괄적이고 유연하며 개별 실패를 견딥니다.

이것은 단순한 게이트 동작이 아닙니다. 세상 곳곳에 짜인 사고 패턴입니다. 병렬 케이블을 깐 전신 엔지니어들은 그것을 그렇게 부르지 않았어도 인프라에 OR 논리를 적용하고 있었습니다. 알람 시계 두 개를 맞추는 사람은 확실히 일어나기 위해 OR 논리를 사용합니다. 여러 분자 표지 중 어느 하나라도 존재하면 병원체를 인식하는 면역계는 생물학적 규모에서 OR 논리를 실행합니다.

Shannon은 1937년의 획기적인 석사 논문에서, AND와 OR가 처음 글에서 만난 반전(NOT), 즉 릴레이가 정상적으로 닫혀 있는 접점과 함께라면 계산 가능한 모든 것을 계산하기에 충분함을 보였습니다. 산술, 메모리, 비교, 의사결정 모두가 단 세 가지 원시 패턴에서 나옵니다. 곧 그 전체 모습을 보게 될 것입니다. 하지만 먼저 이 패턴들에는 이름과 수학이 필요합니다. 그것이 다음 글의 이야기입니다.

이번 글에서 배운 것과 다음 여정

이 글에서 다룬 핵심은 다음과 같습니다.

  • 병렬의 두 스위치는 전류에 서로 독립적인 두 경로를 제공합니다. 어느 하나만 닫아도 램프를 켤 수 있습니다.
  • 여기서 나오는 규칙은 OR입니다. A가 켜졌거나, 또는 B가 켜졌거나, 또는 둘 다 켜졌을 때 램프가 켜지고, 둘 다 아닐 때만 꺼집니다.
  • 진리표에는 세 개의 켜진 행과 하나의 꺼진 행이 있습니다. 한 개의 켜진 행과 세 개의 꺼진 행을 갖는 AND의 거울상입니다.
  • 병렬 경로는 대안과 복원력의 물리적 표현입니다. 거의 두 세기 전 엔지니어들이 전신선을 복제하게 했던 바로 그 설계 원리입니다.
  • AND(직렬), OR(병렬), NOT(정상 닫힘 릴레이 접점)은 함께 논리 계산을 위한 완전한 도구 상자를 이룹니다.

4편에서는 한 단계 더 올라가, 1854년에 참과 거짓의 대수를 발표한 George Boole을 만나 봅니다. 릴레이가 존재하기 수십 년 전의 일입니다. AND, OR, NOT이 임의의 공학적 선택이 아니라 논리적 사고의 깊은 골격인 이유를 발견하게 됩니다. Shannon은 논리를 발명한 것이 아니라, 스위치가 줄곧 그 일을 해 왔음을 알아본 것입니다. Boole의 표기법을 익히면 스위치 하나를 만지기 전에 종이 위에서 어떤 논리 회로든 설계할 수 있게 됩니다.

그때까지 이 OR 회로와 이전 글의 AND 회로를 포함한 이 시리즈의 모든 회로는 **DigiSim Relay Lab**에서 열어 볼 수 있습니다. 직접 연결하고, 스위치를 더하고, 패턴을 조합해 보세요. 클릭 소리가 기다리고 있습니다.

아이디어를 실제로 작동하는 회로로 만들어 보세요.