본문 바로가기

카테고리 없음

[Python 27] 우리는 왜 코딩(coding)을 공부해야 하는가?

뜬금없지만, 코딩에 대한 이해를 조금 갖춘 지금의 상태에서,  "우리는 도대체 왜 코딩 공부를 해야 하는가?" 라는 주제에 대해 잠시 생각해 보는 시간을 갖도록 합시다.

 

요즘은 모든 제품이 전자제품입니다. 보통 우리가 보게 되는 제품은 몸통은 기계이지만, 그 몸통을 움직이는 머리는 컴퓨터입니다. 그런데, 여기서 얘기하는 컴퓨터는 딱딱한 하드웨어를 말하는 것이 아닙니다. 머리는 소프트웨어라고 봐야 맞습니다. 머리는 부드러운 소프트웨어이고, 바디는 딱딱한 기계인데, 그 사이를 연결해 주는 것이 전자 (또는 컴퓨터) 라는 하드웨어인 셈입니다. 소프트웨어에서 만들어진 명령을 전자 하드웨어가 전기신호로 바꾸어 기계 하드웨어에게 전달해 줍니다.

모든 동작하는 기계는 내부에 모터가 있습니다. 모터는 전류를 흘리면 회전하고, 전류를 끊으면 멈춥니다. 그리고, 전류량을 높여주면 빨리 돌고, 전류량을 낮추면 천천히 회전하는 장치입니다. 결국 전기로 모터를 움직이고, 모터로 기계를 움직이는 셈이 됩니다. 그럼 결국 몸통(기계)을 통제하려면 전기 (신호)를 통제해야 한다는 얘기입니다. 내가 원할 때 전기를 흘려서 모터를 돌리고, 내가 원할 때 전기를 끊어서 모터를 멈추고...  마치 스위치(switch)가 연상이 되지 않나요? 그렇습니다, 전자 하드웨어는 스위치입니다. 전기를 연결했다가  전기를 끊었다가 하는... 원래 전자 하드웨어를 만드는 반도체라는 것이 어떨때는 도체가 되고 어떨때는 부도체가 되는 물질 입니다. 도체가 되었다가 부도체가 되었다가... 전기가 통했다가 전기가 안통했다가... 스위치가 맞네요. 컴퓨터는 반도체 스위치가 수백, 수천만개가 들어가 있는 커~다란 스위치가 맞습니다.

 

우리는 아침마다 화장실에 가서 양치질을 합니다. 양치질을 할 때에 수도꼭지 (밸브)를 열거나 닫아서 물의 양을 조절합니다. 물은 저~쪽 한강에서 취수되어져서 우리집 화장실 수도꼭지 바로 뒤에 와서 대기하고 있습니다. 그러다가, 우리가 수도 밸브를 열면 수도꼭지로 물이 나오게 되는 것입니다. 이 상황이랑 위에서 말한 상황이 정확히 동일합니다. 우리 사람이 소프트웨어입니다. 언제 물이 필요한지, 얼마나 필요한지를 결정합니다. 그 결정을 수도밸브에 전달합니다. 그럼 수도밸브가 열렸다 닫혔다 하면서 사람의 명령을 실행합니다. 마치 스위치처럼 말입니다. 자, 그럼 여기에 사람(소프트웨어), 수도밸브(하드웨어), 수돗물(통제대상물)이 있습니다. 무엇이 가장 중요하죠? 그렇습니다. 사람이 가장 중요합니다. 다시 말해, 소프트웨어가 가장 중요합니다.

 

위에서 우리가 통제하고 관리하는 대상물을 수도꼭지, 기계에 한정했었는데, 그 범위를 조금 더 넓혀 봅시다. 세상에서 사람이 통제하고 관리해야 하는 대상은 무엇일까요? 네,  맞습니다. 세상입니다. 사람이 세상을 움직입니다. 그 세상은 작게는 조그만 기업이 되고, 조금 크게는 우리 사회, 우리 나라가 되고 더 크게는 세계가 되고 세계 경제가 되고, 세계 안보가 되는 셈입니다. 사람이 이 크고 복잡한 세상을 움직입니다. 뭐로 움직일 것 같나요? 어렵고 힘들고 복잡한 일들에는 그런 일들을 도와주는 도구가 사용됩니다. "도구의 인간" 이라고 하는 이유입니다. 그런데 현재 사람 사는 세상에서 가장 복잡한 도구가 바로 컴퓨터입니다. 다시 말해서, 사람들은 컴퓨터라는 도구를 이용해서 세상을 움직이는 겁니다.

 

사람이 삶을 영위하는데 필요한 요소로 의, 식, 주를 얘기합니다. 그런데, 요즘은 하나가 더 있는 것 같습니다. 이동을 위한 자동차를 말하고 싶습니다. 한번 생각해 보죠. 만약 우리 세상에서 자동차가 없어진다면? 물론, 기차, 비행기 등 모든 이동수단을 포함해서 말하는 겁니다. 자동차 없는 세상은 상상하기 어렵습니다. 최근에 많은 스타트업들이 자동차 (이동수단)과 연관되어 있는 이유도 바로 이 때문입니다. 그만큼 사람의 이동수단인 자동차는 사람의 생활 깊숙한 곳까지 들어와 있습니다. 그런데 이 자동차라는 기계를 이제는 전기로 움직입니다. 전기로 모터를 움직이고, 모터가 바퀴를 회전시키고, 그 힘으로 자동차가 움직입니다. 그것도 스스로. 그러기 위해서 사람 눈에 해당하는 카메라를 달고, 레이저나 소나 (소리신호) 같은 센서도 달아서 도로에 대한 정보를 얻습니다. 그것만으로는 부족해서, 세상과 인터넷으로 연결되어(connected), 도로로 부터, 앞 뒤 차로 부터, 저 하늘 위의 인공위성으로 부터 필요한 정보를 얻습니다. 그렇게 모아진 정보들을 이용해서 스스로 계획하고 스스로 움직이는 무인 자동차. 정말 우리 코 앞에 와 있는 세상입니다. 지금의 자동차도 진정한 의미의 기계 제품이라고 말하기는 어렵지만, 이쯤되면 자동차는 정말 전자제품입니다.뭐로 움직인다고요? 그렇습니다. 소프트웨어로 움직입니다. 

 

세상에 있는 모든 제품에 조그마한 컴퓨터가 들어갑니다. 사람들은 그 컴퓨터를 이용해서 모든 제품을 통제합니다. 집에서 흔하게 사용하는 가전제품인 밥솥이나 냉장고, 세탁기, 시계, 하물며 전등에 까지 컴퓨터가 들어가 있습니다. 여기서 얘기하는 컴퓨터는 정말 조그만 컴퓨터입니다. 이 제품들은 하는 일이 복잡하지 않아서 크고 복잡한 컴퓨터까지는 필요가 없습니다. 작긴 하지만, 그래도 CPU가 있고, 조그만 메모리 장치가 들어갑니다. CPU와 메모리만 있으면 컴퓨터라고 부릅니다 (그래서, 나머지 장치는 모두 주변장치라고 부릅니다. 있어도 되고 없어도 된다는 얘기입니다) 여기에 조그만 안테나까지 붙이면 그야말로 커넥티드 세탁기, 커넥티드 냉장고가 되는 겁니다. 사람이 저 멀리서 인터넷으로, 와이파이로 세탁기와 냉장고를 통제하는 겁니다. 몰론, 평소에는 컴퓨터가 알아서 잘 관리하겠죠? 

 

사람은 세상을 움직입니다. 무엇으로? 컴퓨터로. 컴퓨터는 전기를 껐다 켰다하는 스위치 장치입니다. 그런 전자식 스위치를 껐다 켰다 하는 것이 소프트웨어입니다. 프로그래머블 스위치 (programmable switch)인 셈이네요. 결국, 사람들은 소프트웨어를 이용해서 세상을 움직인다는 것입니다.

 

그래서, 이 세상을 살고 있는 우리에겐 2가지가 필요합니다. 먼저 우리가 움직일 세상을 알아야죠. 자동차를 알아야 자동차를 움직일 수 있고, 기업경영을 알아야 기업을 움직일 수가 있고, 교통시스템을 알아야 도로 교통을 관제할 수가 있고... 그리고 또하나, 그 세상을 움직이는 소프트웨어를 알아야 합니다. 그래서 우리는 세상도 알고, 소프트웨어도 알아야 합니다. 세상을 아는 공부는 대학에서 전공으로 배웁니다. 그래서, 무슨 전공을 공부하더라도 소프트웨어는 꼭 마스터하라는 말씀을 드리고 싶습니다. 그러면, 다른 사람들과 "사는 방식"이 달라집니다. 이것이 우리가 코딩을 배워야 하는 이유가 됩니다. 대신, 하려면 대충하지 말고, 꼭 그 끝을 볼 수 있기를 바랍니다. 우리 학생 여러분들을 끝까지 응원하겠습니다 !!