brunch

You can make anything
by writing

C.S.Lewis

by 마르코 Mar 22. 2017

이과를 포기한 학생, 다시 개발자로

소프트웨어 개발로 기술과 친해지다

비록 고등학교 때 문과로 진학했지만, 과학 꿈나무이던 시절이 있었다. 초등학생 때 부모님 회사 때문에 잦았던 이사와 전학 속에도 항상 과학반에 들어가서 여러 실험을 하는 게 즐거웠다. 그 당시 초등학생의 과학 지식이 뭐가 그리 깊었겠냐만 무언가 실험하고 그 반응을 살펴보는 게 즐거웠던 그 기억만큼은 선명하다. 그리고 자식 교육에 관심이 많았던 부모님 덕에 발명 경진대회에 자의 반 타의 반으로 나가서 상도 받았던 것 같다. 그땐 그랬다. 그런데 고등학교에 들어가면서, 과학에 대한 흥미는 여전했지만 나는 문과를 선택했다. 마지막까지 문과와 이과를 놓고 고민했던 탓에 이과 생물까지 선행 학습하던 중이었지만, 결국 나는 이과 수학에 대한 두려움을 이기지 못했다. 그저 그랬던 수학에 대한 재능과 흥미 탓에 이과에 가서 그 날고 긴다는 친구들을 이길 자신이 없었다. 그땐 그랬다.


개발을 배우면서


수학이 무서워 도망쳐 나오듯 문과를 선택했던 내가 지금 개발을 하고 있다. 최근에 머신러닝에 관심을 갖고 계속 공부하고 있는데, 선형대수, 편미분, 행렬 연산 등 내가 무서워 도망쳤던 수학을 다시 공부하고 있다.


처음 개발을 배울 때는 내 손으로 만들어내는 그 기분이 너무 좋았다. 초등학교 시절 지금은 이름도 기억이 나지 않는 그 시약들을 여기저기 섞어가며 느끼던 그 감정이 이런 기분이었을까. 혹은 운동장에서 고무 동력 비행기를 날리며 뛰어다닐 때 그 감정이 이런 기분이 아니었을까. 


그리고 개발을 수십 년 간 같은 걸 가르치는 학문이 아니라, 오늘도 쉴 새 없이 바뀌는 학문이라는 것도 매력적이었다. 물론 대학교에서는 수십 년 전에 배웠던 걸 똑같이 가르치고 있다고 하는데, 현업에서는 자고 일어나면 새 기술이 나온다. 몇 달만 넋 놓고 있으면 도태되기 좋다. 물론 이런 특징은 끊임없이 공부해야 한다는 점에서 부담감이 될 수도 있지만, 새로운 기술이 나오고 그 분야에 남들보다 먼저 공부하고 조금만 경력을 쌓으면 그 분야의 전문가가 빠르게 될 수 있다는 말이기도 한다.


나도 계속해서 배우고 있다. 나도 비전공자를 대상으로 개발에 대한 흥미를 느낄 수 있게 하기 위한 강의를 찍고, 오늘도 수강생 분들과 질문에 대답을 하고 같이 이야기를 나누고 있다. 그와 동시에 기술 블로그 수백 개의 RSS를 구독해서 하루에도 수백 개의 글을 훑어본다. 새로운 기술이 나오면 Udemy에 들어가서 유료로 강의를 구매한다. 최근에는 Udacity에 한 달에 수십 만원 하는 반 년짜리 강의를 두 개 신청했다. 이미 개발을 할 줄 알고, 문서를 찾아가며 인터넷을 검색해가며 직접 공부할 수 있지만 굳이 강의를 찾아 듣는 이유는 간단하다. 그게 더 빠르게 배울 수 있기 때문이다. 처음 걸어가는 길에 이미 그 길 전체를 보고 있는 사람의 도움을 받는 게 얼마나 중요한지 알기 때문이다.


21세기의 문맹은 읽고 쓰지 못하는 사람이 아니라, 배우지 못하고, 잘못된 것을 바로 잡지 못하고, 다시 배우지 못하는 사람들이 될 것이다.
The illiterate of the 21st century will not be those who cannot read and write, but those who cannot learn, unlearn, and relearn.
― Alvin Toffler


이렇게 배운 프로그래밍은 또 하나의 언어라는 것을 배웠다. 뭐, 프로그래밍 언어라고 부르기도 하니까. 프로그래밍 언어를 통해 전 세계의 개발자는 소통한다. 서로 자신의 코드를 공개된 장소에 공유하고, 어떻게 이런 생각을 했는지 감탄하기도 한다. 그리고 그렇게 개발자의 손을 통해 만들어진 코드 한 줄 한 줄은 서비스가 되어 전 세계의 소비자를 만난다. 개발자는 그렇게 서비스라는 언어로 세계와 만난다.


세상에 질문하기


처음 개발을 배울 때 막연히 무엇인가를 만드는 것이 즐거운 단계를 지나면서, 개발에 필요한 다양한 지식들 중 비어있는 부분에 대한 갈증이 생겼다. 예를 들어, 모바일 앱 개발을 배우기 시작하면서 서버에서 데이터는 어떻게 불러오고, 어떤 식으로 모바일 앱에서 처리하는지. 회원가입과 로그인 과정은 어떻게 처리해야 하는지 등등 하나를 알고 나면 두세 개의 질문이 생기는 끊임없는 배움의 연속이었다. 


그런데 어느 정도 한 서비스를 만들기 위한 소프트웨어 개발 기술 지도의 여백이 채워지자, 점점 다른 기술들에도 눈이 가기 시작했다. 기술이라는 것도 마치 외국어와 같아서 한 외국어를 어느 수준까지 배우고 나면 다른 외국어를 새로 배울 때 심리적 저항감이 낮아지는 것처럼, 다른 기술도 '배울 수 있겠다.'는 자신감이 생기기 시작했다. 그리고 세상에 질문하기 시작했다. 나는 이 세상에 무엇을 만들어내고 싶은가?


그래서 올해는 개인 프로젝트로 3D 프린터를 하나 사서 드론을 하나 만들어보기로 했다. 지금 공부하고 있는 머신러닝 기술을 통해 안면 인식을 해서 특정 사람을 따라다니면서 사진을 찍고, 사용자가 선호하는 사진을 분석해서 그 구도로 사진을 촬영할 수 있는 것까지 한 번 구현을 해보려고 한다. 물론 절대로 쉽지 않을 거라는 걸 안다. 한 번도 써보지 않은 3D 프린터를 이용해서 부품을 만들어내고, 그걸 드론으로 날려서, 카메라로 이미지까지 처리하는 게 정말 쉽지 않을 거다. 하지만 이제는 말할 수 있다. 한 번 해보겠다고.


우리가 마주할 미래는 지금까지와는 차원이 다른 세상일 거라고 생각한다. 그리고 나는 소프트웨어 개발이 기술과 친해지기 좋은 분야라고 생각한다. 컴퓨터 하나만 있으면 배울 수 있으니까. 컴퓨터 공학 외의 기계, 생물, 화학 등 다양한 공학 분야는 초기에 배우기 위한 비용이 너무나 많이 든다. 


최근에 페이스북에 아래와 같은 글을 공유한 적이 있다. 

저는 모든 사람이 개발자가 되어야 한다고 생각하지는 않지만, 모든 사람이 개발을 알아야 한다고 생각하는 사람입니다. 왜냐면 인공지능의 시대가 가져올 사회 변화는 산업혁명이 가져온 변화보다 훨씬 더 클 것이기 때문입니다.

저는 비개발자 지인들에게 이야기합니다. "인공지능의 시대에 대비하기 위한 방법은 두 가지다. 인공지능을 소비할 수 있을 자본을 모으거나, 혹은 그 기술을 갖추거나." 그리고 이것이 제가 많은 분들께 개발을 권하는 이유입니다. 알아야 대비할 수 있고, 알아야 쓸 수 있으니까요.


컴퓨터 공학과 뇌과학이 융합하고, 기계공학과 생물학이 융합하는 이 융합의 시대에 기술과 가까워지기 위한 한 발을 내디뎌 보는 게 어떨까? 세상의 변화에 수동적으로 적응하는 것이 아니라, 내 손으로 바꿔나가는 그 맛을 나는 권한다.

매거진의 이전글 오, 캡틴! 나의 캡틴!
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari