코딩일기

[Review] CODE - 하드웨어와 소프트웨어에 숨어 있는 언어 (feat. 찰스 펫졸드 지음, 서평) 본문

Code/Book

[Review] CODE - 하드웨어와 소프트웨어에 숨어 있는 언어 (feat. 찰스 펫졸드 지음, 서평)

daje 2021. 1. 18. 21:59
728x90
반응형

 

안녕하십니까 다제입니다. 

 

브루스테이트의 세븐랭귀지라는 책을 읽고자 하였으나, io, ruby, 스칼라 등 개발에 관련된 서적이였다. 

처음 소개 받기로는 생각하는 폭을 넓힐 수 있다고 하여 선정했으나, 지금 당장 나에게 꼭 필요한 서적은 

아니라고 생각되었다. 

 

이에, CODE(하드웨어와 소프트웨어에 숨어 있는 언어)라는 책을 읽어보고자 한다. 

 

총 25chapter로 구성었기에 하루에 1chapter씩 25일을 목표로 잡고 있다. 

 

 

1. 읽게 된 계기

 -. 노마드코더 니콜라스(니꼬)가 추천해서! 

 -. 컴퓨터는 어떻게 0과 1로써 이렇게 다양한 일을 할 수 있는걸까?

 -. 과연 컴퓨터는 어떻게 데이터를 저장하는가?

 -. 어떻게 정보가 사람의 언어 -> 기계어 -> 사람의 언어로 전달이 될 수 있을까?

  ∴ 위와 같이 이상한 궁금증이 생겨서 찾게된 책이다. 

 

 

2. 읽은 기간 : 2021.01.18(월) ~ 

 

 

3. New info 

  1) chapter1 ~ 2

    -. 모스부호는 두 가지 성질만 가지는 이진부호로 구성되어 있으며 

    -. 4개로 구성된 점과 선만 있다면 모든 스펠링을 표현 할 수 있다. 

    -. 이 스펠링의 조합으로 앞 집 친구에게 핸드폰이 없이도 정보를 전달할 수 있다. ( 물론 느리겠지만.. )

 

  2) chapter3

    -. 이번에는 점자를 알아보자 

    -. 시각장애인들이 사용하는 점자는 총 6개의 점으로 구성되어 있다.

    -.  6개의 점은 총 64개의 조합을 이룰 수 있으며 모스부호처럼 모든 스펠링을 전달할 수 있다. 

    -. 또한 점자에는 이스케이프라는 조합이 있는데 이는 점자를 대문자라고 명명해주는 역할을 한다. 

    -. 이러한 이스케이프가 단조롭고 반복적인 부호의 해석 과정에서 탈출하여 새로운 해석이 가능하도록 해준다. 

 

[ 2021.01.18(월) ]

오늘 배운 내용은 우리가 핸드폰이 없이 어떻게 다른 사람에게 정보를 전달 할 수 있는지가 포인트이다.

사람은 천성적으로 누군가와 소통하고자하는 마음이 있구나 하는 사실을 느끼였고, 그러한 마음이 오늘 날 언어의 발전을 가져오지 않았나? 하는 생각을 해보았다. 저자는 이러한 비유를 통해 컴퓨터가 어떻게 0, 1의 조합으로 이렇게 복잡한 연산을 할 수 있는지를 설명하고자 한다는 느낌을 받았다. 매일 꾸준히 읽다보면 저자의 생각을 공감하고 배울 수 있을거라 확신한다. 

 

 3) chapter4

   -. 이 캡터에서는 손전등에서 알아보자 

   -. 손전등은 스위치에 의해 회로가 연결될 때, 연결되어 있지 않을 때로 분류 될 수 있다. 

   -. 회로에서 원자는 옆에 있는 전자를 빼앗는 방법으로 전류가 흐르게 된다. ( - -> + 방향 )

   -. 이 곳에서는 전기가 왜 흐르는지? 어떻게 흐르는지? 무엇에 영향을 받는지 등을 큰 흐름에서 이해할 수 있다. 

 

[ 2021.01.19(화) ]

전기가 무슨 상황이야 하면서 대충 넘기면 안된다. 

메모리가 왜 데이터를 기억할 수 있는지? 어떤식으로 정보가 전달되는지 등은 다 chapter4로 기반으로 설명이 시작되기 때문이다. 이해가 안된다면 꼭 해당 chapter를 잘 이해하고 넘어가시는길 추천드린다. 

 

 3) chapter5

   -. 오늘도 계속 손전등으로 이야기를 진행하겠습니다. 

   -. 그런데 이제는 벽이 생겨서 내가 보낸 신호를 볼 수 없고 거리가 조금 떨어져 있다고 가정해보겠습니다. 

   -. 신호를 받는 곳과 신호를 보내는 곳에 전선을 연결하여 서로 손전등에 불을 깜빡거리면서 모스부호로 신호를 주고 받습니다.  

   -. 그런데 전선이 길어진다면? 전지라는 도구를 통해서 소통을 할 수 있습니다. 

   -. 그렇게 소통하고자하는 두 장소간의 길이 계속 길어진다고 한다면 전지로도 소통할 수 없다.( 전선길이⇡ -> 저항⇡)

   -. 과연 이러한 문제를 어떻게 해결할 수 있을까?  

   -. 이 고민은 미국과 유럽을 연결하기 위해 150년전 전문가들이 했던 고민이라고 합니다. 

 

[ 2021.01.20(수) ]

   -. chapter5에서는 이 해답을 알려주지 않는다. 오직 "딸깍-딱"이라는 의성어 힌트만 준다. 

   -. 궁금해서 미리 읽어보았다...ㅎㅎㅎ 그건 바로..! 내일알려드릴게요 ㅎㅎㅎㅎ

 

4) chapter6 ~ 9 

 4-1) chapter6

   -. 강철에서 전선을 많이 감아서 만든 잔자석이 미국과 유럽을 연결해준 전산 시스템의 기반이 된다. 

   -. 이 전자석에 전류를 연결해주면 자석 같은 역할을 하게 된다. 

   -. 이러한 전자석으로 만든 전산 시스템은 다른 시스템보다 잡음을 잘 견디어 잘 활용되었으나 그래도 장거리로 신호를 보내는데는 한계가 있다. 

   -. 이러한 한계를 넘기 위해 발신하는 장소와 수신하는 장소 사이에 릴레이(중계기)를 둠으로써 이를 해결한다. 

 

 4-2) chapter7

   -. 우리가 수를 세는 방법은 10진법을 사용한다. 

   -. 십진법은 어떻게 되는것인지? 모르는 분들을 위한 자세한 설명이 있다. 

 

 4-3) chapter8

   -. 그럼 10진법이 있다면 8진법, 4진법, 2진법도 있다는 사실에 대해 설명해준다. 

   -. 또한, 8진법과 4진법은 결국 2진법으로 귀속된다는 사실을 설명해준다. 

 

 

[ 2021.01.21(목)~23(토) ]

   -. 여기서 아주 중용한 사실이 나온다. 손전등, 점자 등 0과 1로 수 많은 정보를 만들 수 있다. 

   -. 또한, 전자석과 릴레이를 통해서는 저 멀리 있는 사람과도 소통할 수 있다 라는 사실이 나오게됩니다. 

   -. 그렇다면 한 가지 의문이 든다~ 그럼 컴퓨터는 그 많은 정보를 어떻게 저장하는 것일까?

   -. 그리고 소프트웨어는 어떻게 만들어지는 것일까? 이러한 근본적인 문제는 아직도 남아 있다. 

   -. 책을 계속 읽어가면서 알아보자!

 

4) chapter9

   -. 우리는 앞에서 2진법에 대해서 배웠다.

   -. 2진법은 비트(bit)라고 명명된다. 

   -. bit를 사용하면 좋은 점이 있다. 

     * 사전에 어떤 의미로 사용할 것인지 정의한 사람만이 이 의미를 알 수 있다. 

     * 모든 가능성에 대해서 따져본 것인지를 확인할 수 있다. 

   -. 이러한 좋은 점 때문에 실생활에서 많이 사용된다. 

     * 논리학 : 1은 참, 0은 거짓 

     * 전쟁에서의 전등 : 전등 2개가 켜지면 바다로 침공, 전등 1개만 켜지면 육지로 침공 0개이면 침공하지 않음 

     * 바코드 : 0과 1의 조합으로 상품의 바코드를 생성하여 제품을 관리할 수 있음 

     * 필름 : 사진기의 필름에도 비트 단위의 결합으로 구분됨

 

[ 2021.01.24(일) ]

   -. 오늘은 bit에 대해서 배웠다. 

   -. 컴퓨터에서 가장 작은 단위라고 할 수 있는 bit! 

   -. 난 bit를 이렇게 표현하고 싶다. 문제를 해결하고 싶은 강한 열정의 산물! 

   -. 과거 유명한 철학자와 수학자들과 우리의 차이점을 생각해 보았다. 

   -. 그들은 철학자이자 수학자이며, 공학자였다.

   -. 그러나, 우리는 한분에 대해서만 전공을 한다.

   -. 그들과 나의 차이점은 그들은 문제를 놓고 그 문제를 해결하기 위한 공부를 하였다는 것 

   -. 나는 그냥 알려주는 것을 받아드리고 시험을 보아 외웠다는 것 

   -. 많은 사람을 일정한 수준까지 교육하기에는 후자의 교육방식이 맞으나, 

   -. 실전에서, 사회에서, 사업을 하면서 필요한 도전 정신, 문제해결 능력을 훈련하는데는 부족하다고 생각한다. 

   -. 그러나 코딩이 나의 학습방법과 학습패턴을 통채로 바꾸어 놓았다. 

   -. 그리고 더 명확한 것은 코딩에는 답이 있다. -> 프로그램이 오류를 발생하지 않는 것, 잘 작동하는 것 

   -. 코딩의 매력은 답이 있다는 것! 정성적인 측량과 패턴으로 문제를 해결하지 않는다는 점이 아닐까 생각해본다. 

 

 

5) chapter10 ( 논리와 스위치 )

   -. 초보자를 이해시키기 위한 많은 내용들이 있다보니 이것저것 부연설명이 많은 챕터였다. 

   -. 그러나 간략하게 요약하지만, 여러 가지 조건을 만족시키는 간단한 프로그램을 만들어보자.

   -. 그리고 그 프로그램을 회로로 표현하면 어떻게 만들 수 있을까? 이 고민을 글로 적은 것이다. 

   -. 그러나, 우리는 코드로 잠깐 봐보자

# weather(날씨) :  sunny(맑음) / rainy(비) / snow(눈) 
# cloth(옷) : simple(간결하게) / warm(따뜻하게) 
# meal(밥) : hot_food(따뜻한 국물음식) / cool_food(시원한 음식)


if (weather = "sunny") and (cloth = "simple")
	print(f"we recommend {cool_food}")
elif (weather = "rainy") and (cloth = "warm")
    print(f"we recommend {cool_food}")
elif (weather = "snow") and (cloth = "warm")
    print(f"we recommend {cool_food}")

[ 2021.01.25(월) ]

   -. 책에서는 위 내용을 말하고 싶어하였다!

   -. 점점 컴퓨터의 모양과 비슷하게 만들어가는 필자의 노력과 정성에 감동할 수 밖에 없다 

 

 

6) chapter11~13 

   -. 컴퓨터는 모든 덧셈으로 이루어졌다! 

   -. 보수라는 개념을 이용하면 뺄셈도 할 수 있다. 

 

 

[ 2021.01.26(화), 30(토)~31(일) ]

   -. 보수라는 개념으로 뺄셈을 공부할 때는 소름이 돋았다.

   -. 정말 말 장난 같아 보였는데 이러한 개념을 응용하여 Mac도 나오고, 리눅스도 나왔다고 생각하니 아무리 사소한 개념이라도 꼼꼼히 보아야겠구나 라는 생각을 하게 되었다!

728x90
반응형
Comments