brunch

25의 2, 월간 기록: 제품 개발

의사 전달에서 컴퓨터로, 다시 기초 전자기학으로

by 초보 지식인

개인 컴퓨터를 개발해보겠다.

찰스 펫졸드의 <코드>, 의사소통을 위해 2진수가 쓰이는 방법을 시작으로 컴퓨터의 구성과 기능에 대한 설명을 컴퓨터의 기본 단위부터 컴퓨터 제품까지 범위를 넓혀가며 수행하는 이 책을 참고하여 개발해보겠다.


글이 난해하게 느껴진다면, 이는 글을 작성할 때 사고의 과정을 글로 그대로 표현하려고 했기 때문이다.

사고의 과정을 글로 표현하며, 읽기 편하게 다듬거나 여과하는 것보다 이를 그대로 표현하는 것이 사고 전달에 더 탁월할 것이라 생각하여 이러한 선택을 하였다.


의사 전달, 사람이 만들어내는 정보를 전달하는 것은 원래 소리를 통해서만 가능했다.

청취가 가능한 거리에 두 사람이 의사를 서로 전달했다.

더 먼 거리, 청취가 불가능할 정도로 먼 거리에서는 소리가 가지 않아 의사 전달이 불가능했다.


자, 생각해보자. 더 먼 거리라면 의사 전달을 어떻게 할 수 있을까?

소리가 아닌, 더 먼 거리에 도달할 수 있는 것을 보내면 될 것이다. 돌맹이를 던질수도, 총알을 보낼 수도 있겠다.

소리는 들리지 않으며 의사 전달을 위해 돌맹이를 던지겠다고 선택했다.

돌맹이의 종류를 송신자와 수신자가 모두 동일하게 구분할 수 있다면 (예를 들어 A, B, C 돌맹이로)

A 돌맹이, B 돌맹이, C 돌맹이를 각각 던질 때 어떤 의사를 표현하는 것인지를 둘다 동일하게 알고 있다면 (예를 들어 A는 배고프다, B는 배 안고프다, C는 밥 먹었다) 소리가 없더라도 돌맹이를 매개로 사용하여 송신자와 수신자는 의사 전달이 가능할 것이다.

즉, 송신자와 수신자가 모두 구분할 수 있는 매체라면 무엇이든 의사 전달이 가능할 것이다.


다만 소리보다는 돌맹이의 전달 speed는 느릴 것이다.

그렇기에 소리를 통한 의사전달의 장점이었던 즉각성은 보장되지 못할 것이다. 돌맹이는 탈락.

소리만큼 빨라 전달이 빠른 것. 무엇이 있을까?

빛과 소리, 빛의 speed가 떠오른다.

빛. 전기라면 빠르지 않나?


전기를 보내어 의사 전달을 할 수 있지 않을까?

송신자와 수신자가 전기를 구분하는 것을, 돌맹이를 구분하는 것처럼 편하게 구분할 수 있을까?

생각하기에는, 전기의 종류를 편하게 구분하는 건 어려울 것 같다.

하지만, 전기가 전달되었다 전달되지 않았다 는 편하게 구분할 수 있겠다.


0과 1로 이루어진 2진수,

이를 전기가 흐른다 / 전기가 흐르지 않는다 에 의미로 부여하게 된다면?

전기의 흐름을 통해 2진수 기반 의사 전달을 할 수 있다, 모스 코드처럼.

전기가 흐른다, 전기가 흐르지 않는다를 직접 조절할 수만 있다면.


이를 직접 조절한다는 것은 전기가 선택적으로 흐르거나 흐르지 않는 회로를 구성할 수 있다는 것을 의미한다. 회로는 시중에서 판매되는 전지와 전선, 스위치를 통해 구현해볼 수 있다.

전지와 전선, 스위치를 통해 회로를 구성하는 건 간단한 회로 지식만 있다면 쉽게 구현할 수 있다.


자, 전기가 선택적으로 흐르는 회로를 통해, 2진수의 신호를 입력단에서 출력단으로 보낼 수 있음을 알았다.

2진수는 사실 2진수에 의사 전달의 의미를 부여하는 것 이상으로 다양하게 해석될 수 있는 친구다.


2진수를 우리가 일상적으로 사용하는 숫자 체계인 10진수로 해석할 수 있으며, 그렇게 해석한다면 전기의 빠른 speed를 이용하여 복잡한 회로를 구성하여 산술 연산을 매우 빠른 속도로 수행할 수 있다.

2진수를 10진수로 해석하는 것은 사회적으로 통용되는 규칙이 있다. 수를 센다 라는 개념이 기본 원칙인 숫자 체계의 원리 상, 이 사회적 규칙은 당연하게 여겨진다.


2진수 -> 10진수

0 0

1 1

10 2

11 3

100 4

101 5

110 6

111 7

1000 8


연산을 의미하는 복잡한 회로를 구성한 후, 입력단에서 2진수 0 혹은 1을 넣어 출력단으로 0 혹은 1이 연산되어 나타나는 과정을 통해 산술 연산을 수행할 수 있다.


2진수의 1과 0을 참과 거짓으로 이해한다면, 논리 체계를 가져와 2진수 연산을 논리 체계로 해석할 수 있다. 산술 연산과 마찬가지로, 복잡한 회로를 통해 논리 계산을 빠른 속도로 수행할 수도 있다.


컴퓨터는 2진수 기반, 복잡한 전기회로가 구성된 제품이 전부다.

컴퓨터는 전원이 공급되는 동안 루프를 도는 기계인게 전부다, 반복적으로 사용자의 입력을 받는 명령어를 수행하는 게 전부다.

루프를 도는 기계인 것이 전부이기에, 컴퓨터가 수행하는 루프, 명령어는 어떻게 구성되어있을까 궁금해졌다.눈 앞에서 작동하고 있는 컴퓨터를 잠시만 들여다봐도, 컴퓨터가 수행하는 명령어는 절대 간단하지 않을 것이라는 생각이 든다.

컴퓨터 구조, 펌웨어와 운영체제, 그리고 그 위에서 작동하는 수학적 계산들이 구성 요소들일 것이라 생각된다. 기술이 계속 발전하여 현대의 컴퓨터로 작동하게 되었을 것이므로, 그 구성 요소들은 매우 복잡할 것이라 생각된다. 이는 학부과정에 포함된 내용들이기에, 학부과정 내내 차차 배워나가야 할 내용이다. <코드> 책을 더 읽으며 기초적인 개념들을 이해해볼 것이며, 더 디테일하거나 심화된 개념들은 컴퓨터아키텍처, 마이크로프로세서개론 수업들을 차례대로 수강해가며 배울 것이다.

컴퓨터 수업들을 듣기 전 선행되어야 할 것, <코드> 정독과 병행되어야 하는 것은 복잡한 회로를 구성하기 위해 사용되는 회로의 기초 구성블록인 소자들에 대한 이해이다.


전자공학 학부 과정 중 1학년이 배우는 과목 중 회로이론 이라는, 회로를 구성하는 요소들에 대해 배우는 강의가 있다. 회로이론 강의에서는 각 소자의 동작을 설명할 때 물리학적으로 쉽게 설명 가능한 선에서만 동작을 설명하며, 일반적인 상황에서의 물체의 움직임에 비유하여 직관적으로 이해하도록 하게 하여 그 원리를 모르더라도 기술적으로 활용할 수 있도록 하려고 노력한다.

따라서 강의에서 사용하는 교재의 1-3장 분량 정도의 지식만으로도, 회로의 기초 소자들의 동작을 알 수 있다.


다만 이 회로를 응용하거나 더 복잡한 회로를 만들기 위해선 회로의 동작 원리를 깊이 이해해 볼 필요가 있다. 기존 직관에 의한 기술들만 활용하던 시대 이후, 물리학에 대한 깊은 연구를 토대로 역학적, 전자기학적 복잡성을 가진 기술들이 탄생했던 것처럼, 원리를 이해함으로써 기술은 발전할 수 있다.

원리를 깊이 이해하지 않고 응용을 하려니 응용이 어렵게만 느껴졌다.


수학자와 공학자들은 수학이라는 학문을 어떻게 받아들이는지가 다르다고 느낀다.

수학자에게는 엄밀성과 직관 사이를 규명하는 것이 중요하고, 공학자에게는 문제를 이해할 때 직관적 사고, 기하학적 추론, 물리적 추론이 모두 유효하며, 형식적 증명은 종종 불필요하거나 오히려 역효과를 내기도 한다, <친절한 미분적분학>

수학적인 엄밀함을 이야기하는 건 해석학이며, 공학자들이 사용하는 수학은 대부분 물리적 직관에서 출발한다.

다만 수학적인 엄밀함이 발전함으로써 물리적 직관의 개념이 발전한다. 이론이 발전함에 따라 기술이 발전하는 것과 비슷하게. 그래서 수학적으로 엄밀한 정의를, 해석학을 공부하여 그 증명을 완전히 할 수 있게 되며 물리적 직관에서 나타나는 오류들을 해결할 수 있으며 (실체를 모르는 미분과 적분에서 발생하는 오류와 어려움을 해결), 나아가 미분과 적분을 활용할 수 있고 발전할 수 있다.

모든 건 이해를 해야 응용이 가능하다, 그리고 나는 응용을 할 수 없는 지식을 발전성 없는 고리타분한 지식이라고 느낀다. 그런데 모든 걸 이해를 할 수는 없지 않으냐? 이해를 다 할 수는 없는 노릇인데, 이해를 안한 걸 응용을 안하는건 너무 편협적으로 생각하는거 아니냐? 이해를 다 안하고 쓰는 것들도 있겠지 않냐, 이해하기 싫은데 조금만 응용할 거? 이해 다 할려면 시간이 너무 쓰이고 내가 이해하고 싶은, 시간을 쓰고 싶은 주제는 한정되어있을텐데.

여태껏 이해를 안하고 어느 정도 응용을 할 수 있는 경우는 뭐였냐?

직관이 사용될 수 있을 정도로 이해를 하면 가능했다. 직관적으로 느낄 수 있을 만큼 체득을 하고 (이해를 하려고 깊이 파보고), 직관적으로 느낄 수 있다면 그 언저리에서 더 깊게 파는걸 그만해도 되겠다.


전압, 전류, 전자의 개념은 나에게 물과 중력처럼 직관적인 원리로 움직이는 친구들과는 확연히 다르게 느껴졌다. 익숙하지 않은 개념인 만큼 직관이 사용되기에는 체득이 부족함을 느꼈다.

전지에서 나오는 전압의 개념을, 전선을 타고 흐르는 전류의 개념을, 전류를 눈으로 확인하는 열저항 전구의 개념을 이해하고 싶어 전자기학이라는 순수과학 학문을 학습하기로 했다.


전자기학 이해의 첫걸음을 위해 기초 전자기학 책을 펼쳤다.

기초 전자기학 책을 정독하며 노트를 작성하였다.


기초 전자기학

전기 힘은 쿨롱의 법칙이 전부다. 전하에 의해 전하가 받는 힘.

나머지는 쿨롱의 법칙을 전하 이상의 다전하에 똑같이 적용하는 것.

쿨롱의 법칙은 다전하에 적용되며 적분의 형태로 변한다. 적분으로 되며 계산은 복잡해진다.

적분으로 인해 복잡해지는 계산을 좀 더 쉽게 하기 위해 다른 방법들을 고안한게 나머지 내용이다.


전하가 주는 힘은 쿨롱의 법칙이 다 설명하는데, 전기장으로 힘이 어떻게 전달될지를 알 필요가 있나?

만약 힘이 어떻게 전달될지를 고려 안하고 힘이 즉각적으로 전달된다고 한다면 그것도 문제다.

힘은, 공간의 어떤 경로를 통해 전달됨이 느껴지며, 힘의 전달과 공간의 개념은 결부되어야 함을 느낀다.

원리는 그렇다.

힘의 전달과 공간의 개념을 전기장이라는 개념으로 이해하여, 그 계산 방법의 발전이 생긴다.

마치 물리학의 발전이 전자공학 기술의 원리를 설명해주며 기술의 발전을 촉진시킨 것처럼.

적분으로 인해 복잡해진 계산은, 전기장이라는 개념을 도입하며 다른 더 쉬운 방식으로 계산할 수 있게 된다.

각각의 전하로 인해 발생하는 전기력을 적분으로 합산하는 계산보다, 전기장이라는 개념을 도입하여 그 위치의 전기장을 계산하는 것이 더 편하다.


장의 개념은 인식되지 않는다, 장과 우리가 인식할 수 있는 것 사이의 수학적 관계로만 인식할 수 있다.


벡터장의 개념을 이해해야 한다.

벡터장 3차원 벡터.


'전선으로 연결된 한쪽 끝에서 어떤 일을 하면 그것이 전선의 맞은 편에서 어떤 일을 유발시킬 수 있다.'

점전하로 인한 시험전하가 받는 힘은 ‘쿨롱 법칙‘이라는 이름을 가진 수학적 관계식으로 작성될 수 있다.

점전하가 시험전하에 주는 힘을 공간의 각 지점에 대해 정의한 것이 전기장이다.

즉 쿨롱 법칙이라는 식으로 정의된 전기력 이라는 물리량을, 모든 위치에서 정의한 것이 전기장.

3D 모든 위치에서 정의하면 3D 전기장. 2D 모든 위치에서 정의하면 2D 전기장.

점전하가 존재함으로써 전기장이 생긴다. 이 전기장은 전하를 가진 애들만 영향을 받을 수 있다.

공간의 각 지점에 전기장이 형성된 걸 수학적 관계식으로는 그 위치에 시험전하, 전하 사이의 관계를 서술한 쿨롱의 법칙으로 작성해볼 수 있다.

전하 여러개로 인해 시험전하가 받는 힘은 쿨롱 법칙의 중첩원리로 알짜 힘으로 계산해볼 수 있으며,

알짜 힘으로 계산한 각 지점의 힘은, 아까 쿨롱의 법칙이 전기장으로 확장한 것처럼 전기장으로 확장할 수 있다.

(전하 대 시험전하에서 전하 대 공간의각지점)

쿨롱의 법칙에 대해 질문. 실험적 관찰로 서술된 수학적 관계식이니까 이것도 있겠지. +전하와 -전하가 각각 만드는 전기장은, 그 방향이 존재하나?

전기장선은 +에서 -로 향하는 방향으로 그린다고 한다. 전기장의 방향과 세기를 전기장선을 통해 그린다고 한다.

전기장은 애초에 +에서 -로 향하는 방향이라고 한다.

점전하가 그냥 두어지면 전기장이 형성되는건데, -전하가 없는 경우에 전기장선을 어떻게 그리는지?

전기장선은 전기장을 직관적으로 느끼기 위한 도구로,

전기장선은 +전하에서 출발하는 것으로 그리고, -전하가 없다면 출발해서 무한하게 뻗어나가게 그린다.

-전하로는 도착하는 것으로 그리고, +전하가 없다면 무한한 곳에서 도착하게 그린다.

전기장선의 개수가 촘촘하면 그 부근의 전기장의 세기가 세다고 느끼면 된다.

전기장선의 개수가 촘촘하면 전기장의 세기가 세다고 느끼니, 속에 들어있는 총 전하량이 더 크다.

전기선속이 총 전하량의 지표가 될 수 있다는 것이다.

닫힌 곡면이라는 한계 조건이 있다면, 전기장선은 곡면 내 +전하에서 곡면 내 -전하로 들어가거나 곡면 내 +전하에서 곡면 밖으로 나오는 두 가지 선택지밖에 없다. 그러므로 곡면에서 나오는 전기장선들을 다 검거해서 그 양을 측정하면 곡면 내부의 전하량을 알 수 있다는 것.

곡면 밖에 있는 +전하에서 출발하는 전기장선은 곡면 안에서 멈추지 않고 계속 가기에 총 선속에 영향을 주지 않는다.

전기장은 거리에 따라 힘의 크기가 변하는데, 곡면의 왼쪽으로 들어와서 오른쪽으로 나가는 전기장선은 왼쪽이 원천전하와 거리가 더 가까워서 들어오는 힘이 더 큰 것 아닌가?

전기장선 홀로는 힘의 방향을 나타내며, 전기장선의 개수를 통한 밀도로 전기장의 세기를 나타낸다.

따라서 한 가닥의 전기장선이 곡면으로 들어오고 나간다면 출입출구가 어디든 한 가닥에 담긴 힘은 동일하다.


닫힌 곡면에서 나오는 전기장선들을 다 검거하여 그 양을 측정하면 곡면 내부의 전하량을 알 수 있다.

이것이 가우스 법칙이다.

닫힌 곡면에서 나오는 전기장선들을 다 검거한다 를 수학적 관계식으로 나타낼 수 있다.

-선속 정의 식-

검거한 전기장선의 개수 (양)을 닫힌 곡면을 지나는 '전기선속' 으로 정의한다. 전기선속은 양을 나타내는 개념이다.

3D 상에서 보자면, 면을 지나는 장선의 개수를 전기장 의 선속이라고 한다.

2D 상에서 보자면, 선으로 표기된 한 경계를 지나는 장선의 개수 라고 할 수 있겠다.


면을 지나는 장선의 개수를 전기장의 선속이라고 한다면.. 3D 상의 2D 면은 선속이 있나? 그러면 2D 안에 전하가 있다는 건가?

닫힌 곡면은 어떻게 정의되어있는가? 닫힌 곡면이 무엇인가? 2D 면도 닫힌 곡면인가? 2D 면에서 전기장선이 나오기도 하나?

3D 상에서 면을 지나는 장선의 개수를 전기장의 선속이라고 말했다. 이 면을 재료로 이제 닫힌 곡면을 이룬다면, 닫힌 곡면을 지나는 전기선속을 통해 곡면 내부의 전하량을 알 수 있다.


전기장선의 개수로 전기력을 표현하니, 나가는 전기력의 총합으로 계산하면 된다.


-가우스 법칙 식-


발산과 회전이라는 개념을 통해 전기력의 연산은 쉬워질 수 있다. 발산과 회전? 이 개념은 무엇인가?

발산과 회전은 벡터장 이라는 툴에 대한 연산으로 정의되어 있다.

벡터장이 직접 눈에 보이지 않으며 눈에 보이는 것들과의 수학적 관계로만 인식될 수 있는 개념인 만큼, 발산과 회전 또한 익숙해져야 할 개념일 것이다.

keyword
작가의 이전글25의 2, 월간 기록: 운동