프리랜서가 되겠다고 그랬는지 무엇 때문이었는지 정확히 기억나지 않지만, 2009년에 잘 다니던 웹 에이전시를 뛰쳐나온 것은 순전히 젊은 시절의 패기였을 겁니다. 한 고객사의 낯선 웹 사이트 관리 시스템에의 적응도 어렵지 않았고, 막 나온 자바스크립트 라이브러리인 jQuery라는 것을 만져 보고 나니, 그 상태로 다른 데 가서 뭐든 할 수 있겠다는 자신감이 아주 넘쳤던 것으로 기억합니다.
그 이후, 2017년에 npm을 처음 접했고 그로부터 2년 후에 Git을 쓰기 시작했습니다.
그동안 운 좋게도 여러 큰 기업들의 웹 서비스 운영이나 구축 프로젝트를 맡게 되었는데, 일을 하면서 Git이라는 소스 형상 관리 시스템을 이해하고 Github과 Gitlab 등을 이용하며 npm 생태계를 헤집고 다니다 보니, 나이 마흔에 다시 삼십 대의 그 시절로 돌아간 듯한 느낌이 들었습니다. 하나 다행인 것은, 갑자기 하던 일을 그만두고 내 사업을 해 보겠다는 등의 객기는 없었다는 겁니다.
제가 이렇게 독자분들께 Git과 npm을 적극 소개하기로 한 것은, Git을 이해하고 npm 생태계를 겪으면서 제가 느낀 '커다란 가능성'을 독자분들도 함께 느낄 수 있기를 바라는 마음에서 나온 것이라고 정리해 주셨으면 합니다.
초중고 의무 교육 과정에 소프트웨어 코딩 교육이 들어갔다는 소식을 꽤 오래전에 접하긴 했지만, 그와 관련해서 무언가를 해 보려고 시도를 해 본 적은 없습니다. 어쩌면 지금 이러한 기록이, 그 첫 번째 시도가 되지 않을까 하고 지금 정리합니다.
교육 과정의 상세한 구성을 아직 찾아보지 못했지만, IT 업계에서 오랫동안 일을 해 온 사람으로서, 코딩 교육에 '소스 운용'에 대한 접근이 없다면 그건 사상누각이지 않을까 하는 우려가 큽니다.
외국어 학습자가 다른 나라의 언어를 제대로 배우기 위해 해외로 어학연수를 다녀오는 것이 큰 도움이 된다 가정했을 때, 코딩을 제대로 배우기 위해 꼭 필요한 경험이 있다면 그것은 당연히 Git의 이해와 npm 생태계로의 진입이라고 말할 수 있습니다. 큰 비용을 들이지 않고, 어학연수 가듯 비행기 타고 해외에 나가야 하는 일 없이, 학습자에게 맞는 '여러 언어들을 효과적으로 학습'할 수 있는 방법이 있습니다.
코드를 개발자만의 전유물로 둘 필요는 없습니다.
어느 광고 문구처럼, 코드를 작성하지 않고도 앱을 만들거나 웹 서비스를 운용할 수는 있겠지만, 조금 더 적극적으로 내가 만든 서비스에 관여하려면 코드를 만지는 일은 필히 겪어야 할 일일 겁니다. 물론, IT 기술이 너무 빠르게 변화하는 요즘, 코드를 만지는 일은 언젠가 우리의 음성 명령으로 AI가 대신하게 될지도 모를 일입니다. 하지만, 편의 서비스에 대한 의존도를 줄이고 AI를 조금 더 똑똑하게 운용하기 위해서라도 소프트웨어나 기계가 동작하는 원리를 이해하고 있음은 전혀 해가 되지 않을 거라고 확신합니다.
책장 한편 - 저기 오른쪽 끝으로 Git에 대한 책이 보입니다
하이브리드 앱을 만들려고 해도 Git 저장소의 접근이 필요하고, 블록체인(분산원장 기술의 하나) 기술을 배우려고 해도 Git 저장소의 접근이 필요합니다. 요즘, 정말 많은 것들이 Git이나 npm 명령어를 통해 동작하며 그를 위한 생태계 위에서 이루어집니다. 코딩 교육을 위해 사용되는 스크래치나 엔트리도 그 코드가 Github에 공개되어 있으며, 마음만 먹으면 개인적인 용도에 한해 원하는 대로 수정해 사용 가능합니다.
심지어, Windows나 Mac용 실행 프로그램은 저장소의 소스코드 내에서 electron이라는 프레임워크를 이용해 만들어지기도 합니다.
2018년 10월 26일 마이크로소프트사에서 Github를 인수했습니다.
가능성이야 매우 희박하겠지만, 마이크로소프트사에서 Git 시스템을 기반으로 한 GitOS가 나올지도 모르는 일입니다.