세상을 만드는 글자, 코딩

박준석 · Humanities
396p
Where to buy
Rate
코딩 및 프로그래밍 언어를 배운다고 ‘코딩’에 대해 다 안다고 말할 수 없다. 체계적으로, 그리고 무엇보다 차근차근 친절하게 설명하면서, 코딩이란 무엇이고 우리에게 코딩이 왜 필요한지를 이 책은 알려주고 있다. 『세상을 만드는 글자, 코딩』은 어떻게 코딩을 하는지 그 방법을 자세하게 싣고 하나하나 따라 하도록 되어 있는 여타 실용서나 컴퓨터 관련 기술서와는 다른 ‘최초의 코딩 교양서’이다. 코딩의 필요성, 프로그래밍과 코딩의 차이, 코딩을 하기 위해 꼭 필요한 컴퓨터 및 프로그래밍 언어 이해하기 등에 대해 이야기한다. 더 나아가 0과 1, 즉 비트(bit)로 구성되어 있는 세상 만물에 대한 이해로 그 폭을 넓히고 있다.

Author/Translator

Table of Contents

머리말 프롤로그 대충 말해도 통할까? | 프로그래밍이랑 코딩이랑 다른 거야? | 내 주변에 존재하는 소스코드 | HTML 맛보기 | 파이썬 맛보기 | 스크래치 맛보기 | 이 책에서 펼쳐질 이야기들 Chapter 1 코딩은 아무나 한다 ―프로그래머 이해하기 1. 삽질 대신 하게 된 키보드질 기계야, 내 글을 읽어보아라 | 수십억 부가 팔린 베스트셀러 2. 구글은 20억 줄도 넘는 글이다 스타크래프트는 뭐로 만들었을까? | 프로그램이 음악과 같은 창작품이라고? | 여러 명이 함께 쓸 수 있을까? 3. 코딩이 전문가만 하는 거라고? 학문 취급도 못 받던 기술 | 내 아이디어를 대신 구현해줄 사람이 있을까? | 프로그래머가 되려면 | 비트 세계의 기초과학 Chapter 2 프로그래밍 언어는 나와 컴퓨터를 이어준다 ―프로그래밍 언어 이해하기 1. 발명된 인공 언어 인위적으로 제작된 언어 | 프로그래밍 언어는 만국 공통어 2. 누가 내 말 좀 번역해줘! ―프로그래밍 언어의 역사 컴퓨터는 영어를 못 하잖아 | 직접 소통하기 위한 언어 | 치환되는 언어 | 번역되는 언어 | 기계어보다 낮은 언어 | 해석되는 언어 3. 배워야 할 언어가 왜 이렇게 많아? ―프로그래밍 언어의 종류 7,000여 개의 자연어 | 700여 개의 프로그래밍 언어 | Hello World 컬렉션 4. 무엇을 어떤 순서로 써야 할까? 고정된 수를 정의하라 | 변하는 수를 선언하라 | 관계를 정의하라 | 프로그래밍 예제 5. 컴퓨터는 순서대로 읽지 않는다 프로그램은 소설이 아니다 | 조건에 맞아야 읽는다 | 반복해서 읽는다 6. 사건이 발생했다! 액션을 취하라! ―윈도 애플리케이션 코딩하기 명령어로 대화하기 | 그림으로 대화하기 | 사건이 발생해야 펼쳐 읽는 책 | 프로그래밍 예제 7. 1권 말고 1페이지씩 주세요 1장의 읽을거리인 웹페이지 | 웹페이지 코딩하기 | 멈춰 있는 페이지 | 움직이는 페이지 8. 말도 안 되는 문장들 번역을 못 하겠어 | 실행을 못 하겠어 | 나보다 계산을 못하네 | 벌레 잡기 9. 독자들의 찬사를 받는 명문장 ―올바른 프로그래밍 프로그래머가 가장 힘들어하는 일 | 이름 짓기 | 주석 달기 | 독자 배려하기 Chapter 3 코딩은 만물의 근본이다 ―세상 만물 이해하기 1. 내 주변에는 어떤 것들이 코딩으로 만들어졌을까? 지능이 만들어내는 3가지 | 코딩된 세상에 내가 살고 있다 2. 내가 살고 있는 현실이 매트릭스는 아닐까? 모니터를 뚫고 나온 가상현실 | 뇌에서 출력한 영상을 보다 | 숫자로 만들어지는 감각들 | 우리는 컴퓨터 시뮬레이션 속에 살고 있다 3. 하드웨어를 코딩한다고? 전자제품을 구성하는 칩들 | 칩 안에 박힌 소스코드 4. 나의 뇌를 코딩할 수 있을까? 의식과 분리된 지능 | 지능은 계산하는 알고리즘일까? | 원자로 만들어진 자연지능 | 비트로 만들어진 인공지능 | “우리의 신경망을 따라 우리가 AI를 만들고” | 최적의 연결 강도를 찾아라 | 인공 신경망의 학습 예제 | AI에게 권리를 인정해줘야 할까? | 물질이 지능을 출현시키는 원리 5. 생명체가 알고리즘이라고? 마침내 발견된 인간의 소스코드 | 인간 소스코드를 편집하는 엔지니어 | 유전자가 사용하는 디지털 코드 | | 디지털 코드대로 조립하는 생명체 | 늙을수록 늘어나는 버그 | 카피 앤 페이스트가 가능해야 생명체 6. 우주가 코딩되었다고? 우주는 수학의 언어로 쓰여 있다 | 1080개의 똑같이 생긴 원자들 | 우주의 소스코드를 추적하는 과학자들 | 태초에 비트가 있었다 Chapter 4 비트는 디지털 세계의 원자다 ―디지털 이해하기 1. 비트만 있으면 무엇이든 만들 수 있다 0과 1은 스마트폰 속 어디에 숨어 있을까? | 컴퓨터는 0과 1을 가지고 논다 | 글자를 0과 1로 바꾸기 | 음악과 사진을 0과 1로 바꾸기 2. 컴퓨터 속을 돋보기로 보면 숫자가 보일까? 컴퓨터가 사용하는 펜 | 구멍 뚫기 | 빛으로 태우기 | 전자를 넣었다 빼기 | 충전하거나 방전하기 | 자석으로 기록하기 | 한 방에 인쇄하기 | DNA에 기록하기 | 원자에 글자 새기기 3. 비트로 만들어진 모니터 속 세상 문서 속에 숨어 있는 0과 1 | 음악 속에 감춰진 0과 1 | 영화를 만들어내는 0과 1 4. 우주를 디지털로 복사할 수 있을까? 비트로 표현되는 자연 세계 | 대충 흉내 내도 될까? | 오차를 무시해도 될까? | 박제된 자연 | LP 레코드판은 CD보다 음질이 좋을까? | 인간은 아날로그일까, 디지털일까? 5. 찰칵할 때 마다 생산되는 메가바이트 1킬로는 1,000이 아니라 1,024 | 비트 | 바이트 | 킬로바이트 | 메가바이트 | 기가바이트 6. 고작 글자 수 줄이는 게 사업 아이템이라고? 0과 1이 너무 많아 | 비슷한 곳은 뭉개라 | 안 바뀐 부분은 재활용하라 | 인코딩과 디코딩 7. ‘복붙’ 할 때 에러가 난다면? DNA에도 에러가 난다고? | 0이야, 1이야? 헷갈려! | 짝수 개 줄까, 홀수 개 줄까? | Check it out! | 디지털에 원본이 어디 있어? | 영생하는 사진 Chapter 5 컴퓨터는 책 읽는 기계다 ―컴퓨터 이해

Description

코딩 의무교육 시대 ‘어떻게’가 아닌 ‘왜’와 ‘무엇’에 대한 최초의 코딩 교양서 도스(DOS)를 거쳐, 이후 마이크로소프트의 윈도(Window) 운영체제로 발전해간 컴퓨터로 인해, 현재는 누구나 손쉽게 인터넷과 컴퓨터, 스마트폰을 사용할 수 있는 세상이 되었다. 이러한 과정에는 4차 산업혁명 시대의 ‘필수 언어’인 코딩이 중요한 역할을 했다. 코딩(coding)은 소프트웨어를 만들기 위한 기술로, 컴퓨터가 이해할 수 있는 언어를 이용해 프로그램을 만드는 것을 말한다. 스마트폰 애플리케이션(앱)이나 컴퓨터 운영체제(OS) 외에도 게임, 통신, 전자제품 등 우리가 일상 속에서 쉽게 접하고 이용하고 있는 것들에 이 코딩이 적용되어 있다. 4차 산업혁명 시대에 필요한 새로운 시각을 갖게 하는 데에 코딩은 아주 중요한 부분을 차지하고 있다. 그렇다면 어떻게 해야 코딩에 대해 자세히 알 수 있을까. 아울러 프로그래머, 프로그래밍 언어, 디지털 및 컴퓨터의 개념 등에 대해 조금 더 쉽게 이해하는 방법은 없는 것일까. 신간 『세상을 만드는 글자, 코딩: 창의와 소통을 위한 코딩 인문학』은 4차 산업혁명 시대를 맞이할 지금 꼭 읽어야 할 책이다. 코딩 및 프로그래밍 언어를 배운다고 ‘코딩’에 대해 다 안다고 말할 수 없다. 체계적으로, 그리고 무엇보다 차근차근 친절하게 설명하면서, 코딩이란 무엇이고 우리에게 코딩이 왜 필요한지를 이 책은 가장 잘 알려주고 있다. 『세상을 만드는 글자, 코딩』은 어떻게 코딩을 하는지 그 방법을 자세하게 싣고 하나하나 따라 하도록 되어 있는 여타 실용서나 컴퓨터 관련 기술서와는 다른 ‘최초의 코딩 교양서’이다. 코딩의 필요성, 프로그래밍과 코딩의 차이, 코딩을 하기 위해 꼭 필요한 컴퓨터 및 프로그래밍 언어 이해하기 등에 대해 이야기한다. 더 나아가 0과 1, 즉 비트(bit)로 구성되어 있는 세상 만물에 대한 이해로 그 폭을 넓히고 있다. 실전 경험으로 익힌 코딩에 대한 기초 지식을 책으로 엮다 “코딩을 모른다는 것은 새로운 세상에 대한 지식이 없는 것” 책의 저자는 소프트웨어 회사에서 일하며 실전 업무를 통해 코딩을 익혔다. 그 경험들을 바탕으로 책에 코딩에 관한 지식뿐만 아니라 디지털, 컴퓨터, 통신 등에 대한 전반적인 지식을 담고 있다. 실제로 현장에서 코딩을 하고 있는 사람 중에도 이런 기초 지식을 잘 모르는 사람이 있을 수 있음을 우려하며, 오랜 세월 동안의 코딩 경험을 거치지 않고도 코딩에 필요한 가장 기본적인 지식들을 이 책이 쌓게 해줄 것이라고 저자는 말하고 있다. 책은 총 5개의 장으로 구성되어 있다. 1장에서는 컴퓨터가 읽을 글(프로그램, 프로그래밍 언어)을 작성하는 저자로서의 ‘프로그래머’(코더)에 대해 이야기한다. 코딩에 관한 기초 지식을 아는 것이 왜 현대 사회를 살아가는 데 있어서 필수적인 소양이 되는지를 알려준다. 2장에서는 C 언어, 자바, 자바스크립트, 파이썬, HTML 등 프로그래머가 사용하는 언어와 프로그래머가 작성하는 코드들에 대해 소개하며 어떻게 코딩해야 하는지 간략히 설명한다. 3장은 내가 사는 세상이 코딩과 어떤 관계가 있는지, 그리고 코딩으로 어떤 것들을 만들어낼 수 있는지에 대한 이야기를 한다. 소프트웨어가 아닌 하드웨어조차도 코딩으로 만들어진다는 사실, 그리고 우주에 존재하는 모든 생명체가 디지털 코드로 코딩되었음을 알려준다. 4장에서는 0과 1의 비트, 디지털 언어에 대해 이야기한다. 왜 컴퓨터는 0과 1이라는 글자만 읽을 수 있는지, 그리고 이 글자를 어떻게 사용해서 각종 음악이나 영화 등을 만들 수 있는 것인지 알려준다. 마지막 5장에서는 코딩과 떼려야 뗄 수 없는 컴퓨터에 대한 전반적인 이해를 돕는다. 코딩을 둘러싼 디지털, 컴퓨터, 통신 등에 관한 기초 지식이 필요한 이유는 현대 사회에서 컴퓨터와 무관하게 살 수 있는 사람이 아무도 없기 때문이다. 누구나 스마트폰이라는 컴퓨터를 가지고 다니고, 직접 또는 간접적으로 컴퓨터를 사용해서 업무를 처리하거나 공부를 한다. 하지만 의외로 컴퓨터가 무엇인지를 제대로 이해하고 있는 사람은 드물다. 코딩을 모르면 컴퓨터를 제대로 이해할 수 없고 디지털 세계가 어떻게 작동하는지도 전혀 알 수 없다. 수학을 배우는 이유가 수학자가 되려는 것이 아니고, 과학을 배우는 이유가 과학자가 되려는 것이 아니듯이, 코딩을 배우는 이유가 반드시 프로그래머라는 직업인이 되려는 것은 아니다. 하지만 시중에서 판매되는 대부분의 기술 서적들은 특정 프로그래밍 언어에 대해서만 설명하거나 지나치게 좁은 분야만을 세부적으로 다루고 있어서 그 한 권만 가지고는 코딩을 둘러싼 전체 이야기를 파악하기 어렵다. 일반인들이 궁금해하지만 잘 모르는 것들이, 사실 너무 쉽다고 여겨지거나 당연시되어서 오히려 미지의 영역으로 남아버렸다. 코딩을 모른다는 것은 새로 만들어지고 있는 세상에 대한 과학 지식이 없는 것과 마찬가지이다. 내가 코딩을 직접 하지는 않더라도 어떻게 코드가 만들어지고, 그 코드로 어떻게 컴퓨터가 동작하고, 그것이 세상에 어떤 영향을 미치는지를 아는 것은 대단히 중요하다. 코딩에 대한 기본 소양을 갖추게 된다면 지금까지와는 다른 관점에서 세상을 바라볼 수 있게 될 것이다. 이 책은 독자들에게 이런 미지의 영역을 밝게 비춰줄 수 있을 것이다. 코딩 교육 의무화, 2018 소프트웨어 정규교육 시작 필수교과로 바뀐 코딩―‘코알못’ ‘코포자’는 가라! 2018년 새 학기부터 중학교를 필두로 소프트웨어 정규교육이 시작되었다. ‘2015 개정교육과정’에 따라 2018학년부터 ‘코딩 교육 의무화’가 된 것이다. 2015 개정교육과정에서 ‘정보’ 과목은 중요도가 크게 높아져, 중학교에서는 선택과목에서 필수교과로 바뀌어 모든 학생들이 ‘정보’를 배운다. 고등학교에서는 심화 선택과목에서 일반 선택과목으로 전환되고, 2019년부터는 초등학교 5, 6학년 실과 과목을 통해 코딩 교육을 받게 된다. 중학생은 34시간, 초등학생은 17시간 이상 소프트웨어 관련 교육을 받아야 한다. 4차 산업혁명 시대와 맞물려 우리나라도 이제 코딩의 중요성을 여실히 깨닫게 되었고, 그에 따라 ‘코딩 열풍’이 불고 있다고 해도 과언이 아니다. 이러한 코딩 열풍 속에 학부모들 사이에서는 ‘국영수코’라는 신조어가 등장하기도 했다. 코딩이 ‘국영수’와 동급의 필수교과목으로 자리를 잡게 될 거라는 전망을 담고 있는 것이다. 이와 함께 ‘코알못’(코딩을 알지 못하는 사람)이나 ‘코포자’(코딩을 포기한 사람)가 되지 않도록 하기 위해 TV에서도 정규 프로그램이 시작되었고, 사교육 시장에서도 ‘코딩교육’으로 술렁이고 있다고 한다. 이렇듯 코딩의 필요성은 모두가 몸소 실감하고 있지만, 정작 코딩이 ‘무엇’인지, ‘왜’ 필요한 것인지에 대해서는 이해가 많이 부족하다. 코딩을 하는 방법을 가르치는 것, 즉 ‘어떻게’에만 집중되어 있는 상황인 것이다. 문제 해결 방식과 논리적 사고력 등을 키우기 위해 필수과목으로 도입된 코딩에서조차 시험을 위한 공부를 하게 되는 것 아니냐는 우려 섞인 지적도 나온다. 실제 ‘스크래치’ 프로그램(일반적으로 코딩 하면 떠올리곤 하는 ‘C 언어’나 ‘자바’ 같은 고난도의 코딩언어가 아니라 아이들로 하여금 프로그래밍 원리를 쉽게 이해할 수 있도록 돕는 프로그램)은 혼자서도 배울 수 있을 정도로 쉽다고 알려져 있지만, 학부모들의 불안감을 미끼로 수강을 유혹하는 업체들을 어렵지 않게 볼 수 있다고 한다. 또한 현직 개발자들은 현재의 ‘코딩 교과서’가 “주입식 교육”이라고 성토하기도 한다. “코딩, 왜 알아야 할까?” 코딩은 새로운 세상에 대한 과학 지식의 통로 그렇다면 스크래치를 하면 코딩에 대해서는 더 이상 걱정할 필요가 없는 것일까? 유아들을 위한 가장 단순한 프로그램이 코딩을 배우려는 마음의 장벽을 낮춰줄 수 있을지는 몰라도, 이것으로 코딩을 다 안다고 말할 수는 없다. 무엇보다도 ‘