바닥에서 시작하는 개발이야기
아무리 그래도 소개글이 문과출신 개발잔데 개발이야기를 너무 안했다. 언젠가는 꼭 쓸 글이라고 생각해서 아껴두고 있었는데 이제 좀 정리가 되어 슬슬 써보려 한다.
이제 첫글이지만 소비일기처럼 매거진으로 만들 계획이다. 개발, 코딩, 그리고 4차산업혁명의 기본적인 개념 등을 설명하는 글이 있었으면 하는 마음에서 시작하기로 했다. 그리고 웬만하면 시각적 자료를 추가하여 이해를 돕고자한다. 개발이라는 분야가 의외로 시각적인 분야갸 중요하기 때문에 시각자료는 필수적이라 생각된다.
1화차니까 딱 두가지만 말하고 끝내겠습니다.
코딩이 뭘까?
왜 코딩이 4차산업혁명에서 효과적인 도구가 되었는가?
코딩을 막연하게 생각하면 아주 복잡한 기법과 알고리즘을 이용한 뭔가 엄청나고 대단한 것처럼 보이고, 실제로 이미 많은 사람들이 대단한 것을 이루어놓았지만, 근본부터 따지자면 코딩이란 같은 일을 아주 많이 반복하게 해주는 것이다. 그리고 이것을 사람의 손으로 하는 것이 아니라 컴퓨터라는 기계를 통해 자동으로 하게 하는 것이다. 그러면 얼마나 많이 반복을 하는 걸까?
이를 알기 위해 포털사이트에 'CPU'라고 검색을 하여 부품사양을 찾아보았다. 평범한 CPU 제품 가격이 보통 30만원정도 하는데 이 정도 사양의 클럭카운트는 약 2.8~3.2 기가헤르츠 정도이다. 헤르츠는 흔히들 아시다시피 물리학에서 말하는 파장의 주기로 알려져 있는데 컴퓨터의 세계에서는 1초에 한번 시계 초침처럼 한번 '똑딱'하면서 연산을 하는 주기라고 보면 된다. 즉 1초에 3억번가량의 연산을 할 수 있다는 것이다. 코딩을 통해 컴퓨터에게 이런이런 명령을 내리면 걔가 알아서 1초에 3억번의 연산을 통해 내가 시킨일을 할 수 있다는 의미이다. 즉 인간은 아무리 안간힘을 써서 엄청나게 빠른 계산을 해도 계산에서만큼은 컴퓨터를 이길 수 없다. 컴퓨터는 아예 그것을 위해 태어난 존재이기 때문이다. 60~70년대 나사에서 여성과학자들의 활약을 그린 영화 <히든피겨스>에서도 60년대 인간 컴퓨터(이때까지만 해도 컴퓨터란 기계를 의미하는 것이 아니라 계산을 하는 사람을 의미하는 단어였다)은 우주선의 움직임을 계산하기 위해 연산을 아주 빠른 속도로 하는 것이 주업무였으나, 70년대 들어서 기계 컴퓨터로 대체되는 장면이 나온다. 기계 컴퓨터는 한치의 오류 없이 정확하게 사람이 따라잡을 수 없는 속도로 연산을 하기 때문에 계산을 하는 일은 점점 컴퓨터에게 돌아갈 수 밖에 없었다.
물론 모든 명령어가 동일한 3억만분의 1의 포션을 차지하는 것이 아니기 때문에 명령어의 복잡도나 여러 요소들에 따라 칼같이 1초에 3억번의 연산을 하는 것이라고는 할 수 없다. 그러나 CPU 사양에서 말하는 헤르츠클럭의 대략적인 의미는 그와 같다고 보면 된다.
컴퓨터 부품중 CPU를 제외한 나머지 대부분은 메모리 즉 저장소의 역할을 하기 때문에 컴퓨터에서 두뇌역할을 하는 부품은 CPU가 거의 유일하다고 봐도 무방하다. 즉 연산을 할 수 있는 CPU가 얼마나 빠르게 동작할 수 있을지는 컴퓨터의 계산능력을 크게 좌우한다고 볼 수 있다. 그래서 만들기가 어려운 부품이고 CPU 설계를 잘하면 떼돈을 벌 수 있다. 퀄컴이 그 대표적인 업체 중 하나이다.
즉 코딩은 메모리에 어떻게 데이터를 적재하고 CPU를 통해 어떻게 연산할지를 컴퓨터에 명령하는 방법이고, 컴퓨터는 사람이 따라잡을 수 없는 아주 빠른 속도로 연산을 할 수 있기에 계산 분야에서는 독보적 우위를 차지하고 있다고 할 수 있다.
그렇다면 이 코딩이라는 것이 왜 4차산업혁명에 필수적이고도 중요한 기술이 되었을까?
사람은 퇴근해서 밥도 먹고 티비도 보고 잠도 자면서 일을 하지 않는 시간을 가져야 하지만 기계는 그렇지 않다. 분야에 따라 사람이 퇴근하면 기계를 끄고 공장문을 닫는 분야도 있지만 365일 24시간 서비스를 해야 하는 곳도 많다. 새벽 2시에 급 치킨이 먹고 싶어서 배달앱을 켰는데 배달앱이 사람 퇴근시간에 맞추어 저녁 8시부터 오전 8시까지 운영을 안하면 얼마나 화가 나겠는가?그러면 기계가 대체할 필요가 없다. 더 와닿게 얘기하자면 우라집에 전기나 수도가 하루에 한시간씩만 안나와도 당장 발전소에 전화해서 화를 낼 것이다.
즉 코딩을 통해 만든 시스템은 365일 24시간 사람이 집에 가서 자더라도 언제든 서비스를 제공할 수 있다. 물론 사람이 만든 시스템이 완벽할 수는 없기에 새벽 2시에 기계가 뻗는다거나 새벽 5시에 서비스가 중단되거나 하는 일들이 일어날 수 있다. 사람이 잠깐 불편한거 참아서 담당자 출근 시간까지 기다렸다가 해결봐도 괜찮은 서비스도 존재할 수 있으나(그러나 한국에선 어렵겠지) 1초라도 데이터가 끊기면 난리가 나기 때문에 무중단수준의 시스템을 운영해야 하는 분야도 굉장히 많다. 그래서 많은 돈과 자원을 들여 99.9에 가까운 무중단을 구현하기 위해 오늘도 많은 사람들이 고군분투하고 있다.
즉 사람이 직접 응대하는 것이 아니라 코딩을 통해 구축한 시스템이 일을 하게 한다면, 더욱 적은 인풋을 통해 더 큰 아웃풋을 내놓을 수 있다. 나는 클래식 음악을 듣는 것을 아주 좋아하는데 물론 아직도 기회와 시간이 된다면 공연장에서 직접 음악을 들으러 다니고, 실제로 연주하는 음악을 통해 얻는 감동은 그 무엇과도 비교할 수 없이 크게 다가온다. 그러나 내가 일도 안하고 밥도 안먹고 클래식 음악만 들으러 맨날맨날 공연장을 갈 수는 없는 노릇이다(물론 회사를 안다녀도 될 어마어마한 자산을 가져서 돈많은 백수가 되어 클래식 음악 맨날 들으러 다니면 좋긴 할듯 가끔 이런 망상을 하긴 한다). 맘같아서는 브레겐츠 호수에서 매년 열리는 오페라 공연장에 직접 가서 실시간 공연을 본다면 정말 너무 좋을 것이다. 그렇지만 우리는 알고 있다. 현실에서 그러한 것은 거의 불가능하다는 사실을.
그래서 우리는 음악앱 혹은 공연실황 중계 시스템 등을 통해 간접적으로나마 삶에서 음악을 가까이 할 수 있고 기꺼이 돈을 지불한다. 이런 시스템이 없던 시절에는 음악을 들으려면 무조건 공연장을 갔어야 했다. 왕족부터 시정잡배까지 한 공연장에서 음악을 들었던 유럽의 오페라극장, 요즘 영화발매하듯 작곡가들의 신곡 초연을 들으러 티케팅을 하던 시절도 있었다. 그러나 사람들은 이것에 대해 한계를 느끼기 시작했다. 집에서 편안하게 음악을 듣고 싶은데 오케스트라를 집에 들일 수도 없는 노릇이고, 그래서 음악을 디지털로 잡아두기 위한 노력은 끊임없이 시도되었다. 그래서 LP와 전축이 발명되었고 그 이후로 테이프, CD, 블루레이 등 완벽한 음향을 위해 디지털 기술은 끊임없이 발전해 왔다. 오디오와 비디오가 결합되어 실제의 느낌을 더욱 생생하게 재현하기 위한 기술이 고도로 발전하고 있다. 왜 그런것들이 발명되고 발전되었겠는가? 사람의 욕망은 끝이 없고 그에 더욱 완벽하게 부응하기 위해, 그리고 완벽에 가까울수록 부가가치가 높기 때문에, 즉 사람들이 많은 돈을 지불하기 때문이다.
이 모든것들이 코딩을 통한 시스템의 발전이 없었다면 불가능한 것이었다. 음악은 디지털을 활용하여 발전중인 정말 많은 분야 중 하나일 뿐이고 언제 어디서든 완벽한 서비스를 제공받기 위해 코딩이라는 도구를 활용한 사례는 무궁무진하게 많다. 그리고 코딩을 잘하기 위한 툴이나 코딩기법 그 자체에 대한 발전도 꾸준히 이루어지고 있다.
문과 공부를 하던 시절에는 무엇인가를 수단화한다는 개념 자체가 굉장히 낯설게 느껴졌다. 문과 중에서도 경제경영 등 비즈니스적인 것은 나와 먼 것이라 생각하고 인문학이 내 삶에 아주 큰 부분을 차지하던 시절에는, 일상에서 마주치는 모든 것들 하나하나 다 의미가 있고 소중한 존재라고 생각했다. 그러나 코딩이라는 것을 배우기 시작하면서 어떤 것이 더욱 효율적인지, 어떻게 해야 최소인풋을 통한 최상의 아웃풋을 낼 수 있을지를 계속 생각하게 되었다. 그러다보니 이전까지는 중요하다고 생각했던 어떤 것들, 감정이라든지 관계라든지 물건이라든지, 중에서 일부는 어쩔 수 없이 포기하게 되어야 하는 일도 있었다. 그러한 과정들을 거치고 나니 어느정도는 생각하는 프로세스 자체가 바뀌게 된 것 같다. (내 삶에서 한때는 굉장히 중요했던 화두인) 인문학이라는 축을 놓치지 않으면서도 삶 자체를 효율적이고 합리적으로 개선하고 싶다는 생각을 꾸준히 하고 있다. 그런 변화 이후로 6년 가까운 세월이 지났지만 아직 완벽하지 않다고 생각한다. 계속 이 두가지를 조화롭게 융합하기 위해 노력하는 과정 중에 있고, 앞으로도 그럴 것이다. 코딩이라는 기술을 배우고 나서부터 생각과 삶 자체가 많이 변화했다.
코딩과 개인적인 이야기가 합쳐져 조금은 짬뽕이 되어버린 감이 없지않아 있지만, 누군가에게는 흥미롭고 또 필요했던 이야기일수도 있겠다는 생각이 들어 공유를 하고 싶다는 생각이 들었다. 머릿속으로 아주 오랫동안 생각만하던 작업을 이제 실제로 진행해 보고자 하고 이 글이 그 과정의 첫걸음이 되는 작업이다. 앞으로도 개발이란 무엇인지(코딩과 개발은 분명 겹치는 부분도 있지만 개발이 좀 더 광범위하고 더 할 이야기가 많은 소재이다. 절대 개발=코딩이 아님), 그리고 4차산업혁명의 주요 개념들이 무엇이고 그것이 삶과 어떻게 이어져있는지 풀어보는 작업을 계속 진행해 나갈 것이다.