Weekly News, 1년을 정리하며...

Weekly News, 벌써 1년

  • 내 맘대로 위클리 뉴스라는 제목으로 1) 포스팅을 하고 있는 몇가지 이유, 2) 뉴스를 정리하면서 겪었던 얕은 경험, 3) 나름의 결론을 짧게(!) 소개하는 글 입니다.
  • 내 맘대로 위클리 뉴스란, 2015년 8월 25일부터 1주일에 한편씩 관심있는 IT 관련 뉴스를 묶어서 포스팅하고 있는 기사 입니다. 평소에 즐겨보고 있던 파이썬 위클리 뉴스안드로이드 위클리 뉴스를 기반으로 관심있는 몇가지 기사와 튜토리얼을 짧게 소개하고, 기사에 대한 개인적인 의견을 함께 소개하고 있습니다. 현재는 파이썬, Node.js, Android, iOS에 대한 기사를 중점적으로 소개하고 있으며, 데이터 분석에 대한 글도 간간이 소개하고 있습니다.

뉴스(News), 와닿지 않은 소식

  • 어느 날, 브라우저의 첫화면으로 등장하는 해커 뉴스의 글들을 무의식적으로 클릭하면서 머글(Muggle)이 된듯한 느낌을 받았습니다. "충분히 발달한 과학 기술은 마법과 구별할 수 없다(Any sufficiently advanced technology is indistinguishable from magic)"는 아서 클라크(Sir Arthur Charles Clarke)의 말처럼, 무심코 클릭했던 기술 관련 뉴스는 허구적 현실을 담아낸 마법 같았기 때문입니다.
  • 의식 또는 무의식적으로 읽었던 뉴스의 내용이 마법 같았던 이유는 '맥락'이 단절되었기 때문입니다. 기술의 필요성, 발전 과정, 커뮤니티의 논의 사항 그리고 해당 기술에서 고유하게 사용하는 용어 등과 같은 기술을 둘러쌓고 있는 '환경'을 이해하지 못했기 때문에 열심히 읽어도 뉴스의 의미를 제대로 이해 할 방법이 없었다고 생각합니다.
  • 이렇게 꾸준히 뉴스를 읽고, 매일 매일 기술에 대한 관심을 놓치지 않으려고 노력하는 행동이 '나는 열심히 하고 있다'는 안도감을 주는 행위가 아닌지 돌아보게 되었습니다. 그리고 이런 답답함을 가질 수 밖에 없었던 이유가 뭔지를 조금씩 고민하기 시작했습니다.
  • 고민을 해결하기 위해서 영어 실력부터 올려야 될 것 같았습니다. 좋을 개발자가 되기 위해서 가장 먼저 배워야 하는 언어는 Python이나 C언어가 아니라 영어라는 말이 농담처럼 들리지 않았습니다. 영어 문제가 해결되면 맥락을 이해하는데 훨씬 수월할 것 같다는 생각이 머릿속에 가득했습니다. 그렇지만 영어는 해답이 될 수 없었습니다. 영어는 고민을 조금 빨리 해결하는데 도움이 될 순 있지만, 직접적인 도움이 될 수 없었습니다. 영어만으로 기술의 맥락을 집어내긴 쉽지 않아보였습니다.
  • '기술의 맥락을 어떻게 알아낼 수 있는가?'에 대한 해답은 쉽고 단순했습니다. 정리하는 것입니다. 읽은 뉴스를 스스로 정리하는 '작업'을 시작했습니다. '맥락'이 없다면 만들면 됩니다.

맥락을 정리해보자

  • 뉴스의 맥락을 읽어내기 위해서 기술의 의미를 찾아나서는 일을 시작 했습니다. 맥락을 이해하기 위해서 일단 뉴스를 읽고 정리하는 알고리즘을 설계했습니다. 알고리즘은 아래와 같습니다. 1) 마음에 드는 뉴스를 선별해서 읽는다 2) 내용을 정리요약한다 3) 자신의 생각의견을 짧게적는다 4) 한주에 뉴스를 5~9개정도를 읽고, 매주 반복한다.
  • 해당 로직을 완성하고 뿌듯했지만 이 로직은 불가능 하다는 것(탈출조건이 없네요?!)을 3분안에 깨달을 수 있었습니다.
    • 1) 마음에 드는 뉴스를 읽는다의 경우 해당 기술에 대한 '맥락'을 이해하는 목적과 정면으로 배치됩니다. 맥락을 이해하기 위해서는 '목적'을 가지고 읽어야 했기 때문입니다. 따라서 뉴스를 읽는 기준을 '내가 잘 알고 있는 내용', '내가 전혀 모르는 내용', '내가 알고 싶은 내용'으로 다시 정의(define) 했습니다. 당연히 항목이 많기 때문에 노동 강도가 높아지는 것 또한 어쩔 수 없었습니다.
    • 2) 내용을 정리한다의 경우 영어로 된 기술 뉴스를 정리하는데 많은 시간을 소모한다는 점을 깨닫게 되었습니다. 그래서 해당 내용을 읽고 1~2줄 정도로 요약하는 형태로 변경했습니다. 다시 말해서 1~2줄 정도로 정리된 내용을 기반으로 맥락을 파악하기로 했습니다.
    • 3) 해당 내용에 대한 자신의 생각을 적는다의 경우 정직하게 '뭔 말인지 모르겠다' 라던지, '이게 뭔가요?' 와 같은 코멘트도 허용하기로 했습니다. 별다른 스트레스 없이 진행할 수 있도록 했습니다.
    • 4) 반복한다 반복 주기를 1주일로 결정했습니다. 그런데 막상 진행해보니 하루에 하나 정도를 읽어도 시간이 엄청나게 많이 들었습니다. 따라서 1주일에 최소 5개(영업일 기준 뉴스 1개), 최대 9개(노동법을 준수)를 기준으로 뉴스를 정리하기 시작했습니다.
  • 내 맘대로 위클리 뉴스를 시작했습니다. Python, Andorid, Java 3가지 항목을 시작으로 2016년 2월 29일에 Data, Python, Android로 변경되었고 현재는 JS, Python, Mobile을 주제로 정리하고 있습니다.
  • 기술 뉴스의 특징은 '튜토리얼'이라는 장르가 있다는 점 입니다. 해당 뉴스를 읽다보면 'How to' 형식의 기사를 만날 수 있는데, 튜토리얼을 최대한 많이 해보려고 노력했습니다. 덕분에 이런저런 자잘한 코드(Code Snippet)를 많이 배울 수 있었고, 코드를 통해서 기술에 대한 이해의 폭을 넓힐 수 있었습니다. 역시 직접해보는게 제일 입니다.

어느 순간

  • 정리를 시작한지 한달 정도가 넘어가자 뉴스를 조금씩 이해할 수 있었습니다. 석달이 정도가 지나자 뉴스에서 사용하는 단어와 용어를 통해서 기사의 내용을 약간은 유추할 수 있었고, 반년 정도가 지나자 커뮤니티에서 논의되는 맥락을 조금씩 이해할 수 있었습니다. 대표적인 예로 2016년에 자바스크립트를 배우는 기분을 (어느 정도) 맥락 이해하면서 읽을 수 있게되었습니다.
  • 일년 정도가 지나자 제목만으로 대충의 구성과 내용이 파악됩니다. 이쯤되면 필요한 뉴스를 '쏙쏙' 골라볼 수 있는 약간의 '혜안'이 생깁니다.
  • 이런 깨달음은 한순간에 옵니다. 페이스북이나 트위터를 통해서 유통되는 전문적인 글을 읽고 대충이라도 '감'을 잡고 있는 자신의 모습에서 뉴스를 정리하면서 쌓여진 배경정보가 하나의 지식이 되어 다가오는 경험을 하게 됩니다.

나의 동료는 어떤 고민을 하는가?

  • 자신에게 필요한 뉴스만 잘 골라서 보면 되지 꼭 뉴스를 정리하면서 봐야 되는가에 대한 질문을 간혹 받기도 합니다. 쉽게 말해서 '넌 너무 많은 것을 알려고 하는데? 깊이가 없는거 아니야?'라는 말을 우아하게 돌려 질문하곤 합니다.
  • 깊이가 없다는 지적에 대해서 겸허하게 받아들이고, 또한 그러한 지적은 타당하다고 생각합니다. 그래서 깊이를 추가하기 위해서 노력을 안하는건 아니지만 말처럼 쉬운게 아니라서 '외연'이라도 늘려보자는 작은 욕심을 부리고 있는지도 모르겠습니다.
  • 그럼에도 불구하고 깊이 없는 지식을 추구하는 다른 이유는 동료의 고민과 그들의 언어(내포와 외연)를 이해하고 싶기 때문입니다.

훌륭한 프로그래머를 옆에 두는 방법

  • 작은 서비스를 만드는 과정에서 필요한 인원은 최소한 3~4명 정도가 될거라 생각합니다. 많은 사람들이 (퉁쳐서) 프로그래머라고 말하긴 하지만 '백 엔드' 개발자와 '프론트 엔드' 개발자의 언어는 비슷한데 맥락이 전혀 다르게 사용되곤 합니다. 그리고 팀에서 이런 사실을 깨닫게 되는데 오랜 시간이 걸리지 않습니다. 그들 사이에 놓여진 언어의 차이는 생각보다 깊고 광활합니다. 이러한 언어의 차이는 디자이너와 프론트 엔드 사이에서도 발생하고 곧곧에서 발생합니다.
  • 같은 직군에 있는 동료의 언어를 이해하려고 노력하지 않는다면 제품을 팀의 의도대로 만드는 것이 아니라 제품이 의도하는대로 팀을 만들게 됩니다. 주객이 전도되는 현상을 쉽게 목격 할 수 있습니다.
  • '겉핡기'식으로 해당 지식을 섭렵하는 또 다른 이유는 '동료'의 언어를 이해하고, 그들의 고민을 들어 줄 수 있는 개발자가 되고 싶고, 되어야 한다고 믿기 떄문입니다. 모든 개발자는 자신의 코드를 완성해가는 과정에서 좋은 개발자로 성장하게 됩니다. 내 동료의 문제를 이해하고 그들과 함께 코드를 완성해 가는 과정은 좋은 개발자로 성장하는 것이 아니라 '훌륭한 개발자'로 성장할 수 있는 기회가 될 것입니다.
  • 팀의 역량을 높이는 방법은 동료와 함께 '훌륭한 개발자'로 성장하는 과정 입니다. 제품은 사용자의 이해하는 것에서 시작하고, 팀은 동료의 고민을 들어주는데서 시작합니다. 잘 듣고, 맞장구만 잘쳐도 문제(issue)가 해결되는 경험을 심심치 않게 하게 됩니다.

TL;DR

  • 일주일에 3개 정도 위클리 뉴스에 소개되는 튜토리얼을 연습하면 기술을 쉽게 이해할 수 있고, 한달 정도만 꾸준히 뉴스를 읽다보면 해당 기술의 '흐름(트랜드)'를 이해할 수 있습니다. 그리고 석달만 꾸준히 뉴스를 정리하다 보면 용어/용례에 대한 감각이 생긴고, 반년만 근성있게 하다보면 해당 기술의 '맥락'을 조금씩 이해하기 시작합니다.
  • 일년정도 끈기있게 뉴스에 코멘트를 첨언하다 보면 제목만 봐도 대충 내용과 구성이 파악되기 시작한다. 기술에 대한 폭 넓은 이해도는 동료의 언어와 기술적 맥락을 이해하는데 많은 도움이 됩니다. 다양한 방법으로 의사소통 할 수 있기 때문에 동료와 기술적인 공감대를 형성하면서 다양한 기술을 도입할 수 있는 등 팀 역량과 관련된 많은 장점이 있습니다.

P.S. 이런 저런 뉴스를 접하다 보면 생각치도 못했던 것들을 만나게 됩니다. 어쩌면 뉴스를 통해서 좀 더 다양한 세상으로 향하는 여정을 시작했는지도 모르겠습니다. 2017년을 맞이해서 여러분은 어떤 여행을 준비중이신가요? 전 아마도 'C#'과 'Erlang'이 될 것 같습니다. 'Lisp'이 여전히 끌리긴 하지만 'Elixir'의 유혹이 크네요!!