토요일, 11월 24, 2018

[B급 프로그래머] 11월 3주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)

(오늘의 짤방: 이 광고 너무 똑똑하네 음주(drink)와 운전(drive) 중에 오직 하나만 할 수 있어 via @healthjeondosa)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: The Code/Data Cycle via @niklasfrykholm
EOB

금요일, 11월 23, 2018

[B급 프로그래머] 데이터 과학자로 취직하려면 남들처럼 하지 마라.

오늘은 To get hired as a data scientist, don’t follow the herd라는 흥미로운 글을 소개해드리겠다. 데이터 과학자로 취직하기 위한 방법은 무엇일까?

대부분의 사람들은 다음과 같은 과정을 (무한) 반복한다.

  1. 먼저 기초 지식(파이썬+sklearn+Pandas+SQL이나 다른 뭔가)를 배운다
  2. 그리고 나서, 판에 박은 MOOC를 수강한다
  3. 몇몇 직무 기술서를 보고 나서, 자격 조건에 미달한다는 사실을 걱정한다
  4. 다른 MOOC를 듣거나 실제로 지원해본다
  5. 소득이 없다(잘 해봐야 몇몇 면접에서 폭탄을 맞을테다)
  6. 좌절해서 석사 과정에 대해 생각하면서 더 많이 지원한다.
  7. 결정의 시간이 왔다: 다른 뭔가를 기대하면서 2번부터 7번까지 반복해야 하나?

하지만 다른 사람들도 다 하기 때문에 명백히 밟아야 할 코스라면 피해야 마땅할 것이다. 그렇다면 어떤 전략을 구사해야 할까? 다음 다섯 가지 전략이 유효하다.

  1. 논문을 따라해보자: 특히 딥러닝을 할 경우에 유용한 방법이다. 다른 사람들이 이렇게 하지 않는 이유는 손쉽게 데이터를 가져다가 판에 박은 알고리즘에 적용하는 과정에 비해 어렵기 때문이다. 관심 있는 (기왕이면 최신) 논문을 읽고 이해하고 따라해서 블로그에 올려보자.
  2. 안전 구역에서 편안하게 지내지 말자: 프로젝트를 새로 시작한다면, 새로운 프레임워크/라이브러리/도구를 배우는 편이 좋다.
  3. 따분한 일을 배우자: 어느 누구도 따분한 일은 좋아하지 않기 때문에 사람들은 따분한 일을 하지 않늕다. 도커 사용법, Flask를 사용한 앱 개발 방법, AWS나 구글 클라우드에 모델 배포하는 방법 등은 회사가 지원자에게 간절히 원하는 기술이지만, 대다수 지원자들은 이를 저평가한다.
  4. 짜증나는 일을 하자. 지역 데이터 과학자 밋업에 논문을 제출하거나 최소한 참석이라도 해보자. 링크드인에 들어가서 모르는 사람에게 메시지를 보내보자. 스터디 그룹을 시작하자.
  5. 미친 듯이 보이는 일을 하자. 사람들은 미리 가공된 몇몇 주식 데이터셋을 사용해 프로젝트를 만들 것이다. 그러지 말고 웹 스크래핑 라이브러리 사용 방법을 배우거나 직접 데이터셋을 구축하기 위해 몇몇 저평가된 API를 활용하자. 데이터는 저절로 얻어지지 않으며, 회사는 종종 엔지니어들이 직접 수집한 데이터에 의존할 필요가 있다. 여러분의 목표를 정리하자면... 작업을 마치기 위해 필요하다면 빌어먹을 데이터셋을 직접 구축할만큼 데이터 과학에 미친 광인이 되어야 한다.

추가: 단순 예제만 반복하다가 끝나는 경우를 많이 목격했다. 학원이나 MOOC나 독서가 중요하긴 하지만 정말 자신이 풀고 싶은 문제를 하나 정해서 데이터 수집부터 분석과 시각화에 이르는 일련의 과정을 밟아볼 필요가 있다. 혹시 이 블로그 애독자 여러분들 중에서 데이터 과학자가 되기 위해 열심히 뭔가를 해봤지만 여전히 방향을 잡지 못하는 분들이 계시면 댓글이나 이메일로 도움을 요청하시라. 작지만 조금이라도 도움을 줄 수 있는 방법이 있으면 도와드릴테니까...

EOB

토요일, 11월 17, 2018

[B급 프로그래머] 11월 2주 소식(빅데이터/인공지능, 암호화폐/블록체인, 읽을거리 부문)

(오늘의 짤방: Here are some of Amazon chief economist Pat Bajari's key takeaways. via @timoreilly)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: Why 'Bohemian Rhapsody' Is The Best Song Ever Written
EOB

금요일, 11월 16, 2018

[B급 프로그래머] 소프트웨어 엔지니어가 되는 것이 뭔지 아무도 알려주지 않은 내용

그림 via @thecrazyprogrmr

Things Nobody Told Me About Being a Software Engineer라는 재미있는 글이 올라와서 몇 가지를 요약해서 독자 여러분들께 소개드리겠다.

  • 양산 코드보다 테스트 코드 행이 훨씬 더 길기 마련이다.
  • 초기 경력을 쌓을 때 vi 이외에 다른 옵션이 없었기에 여기서 결코 벗어나지 못하고 있다.
  • 엄청난 시간을 빌드, 릴리즈, 일반적인 전용도구 구축 작업에 소비한다. 종종 코딩 보다 더 많은 시간을 쓸지도 모르겠다.
  • 코드 작성은 양산 소프트웨어를 서비스로 가는 여정의 일부에 불과하다.
  • 오래된 모든 것은 새로 부활한다. 마이스페이스에서 페북으로, IRC에서 슬랙으로. PHP도 다시 한번 멋질 수 있고, 함수형 프로그래밍도 유행이다.
  • 능력있는 사람들의 기술은 몇몇 사람의 관점에서 내 기술을 의심스럽게 만든다.
  • 같은 일을 할 때 작은 스타트업이냐 대기업이냐에 따라 두 배 이상 연봉이 차이날 수 있다.
  • 일반적인 사람들이 보기에 소프트웨어 엔지니어링 역할은 그게 그거다.
  • 작은 스타트업에서 큰 돈을 벌기를 기대하지 마라. 돈이 필요하면 큰 회사에 가라.
  • CSS는 가장 복잡한 현대적인 프로그래밍 언어다
  • 최고의 기술이 항상 승리하지는 않는다. 실제로 종종 패배한다.
  • 15년 동안 직장에서 기여한 바를 꼽자면... 동료들에게 더 많은/좋은 테스트를 하게 만들고 서로 이야기를 많이 나누도록 옆구리를 찌른 것 밖에 없다.
  • 첫 번째 시도에서 테스트를 통과하면 의심하라.
  • 지구를 지탱하는 것은 (거북이가 아니라) 사람이다. 물론 거북이처럼 귀엽지만 등껍질이 없다.
EOB

토요일, 11월 10, 2018

[B급 프로그래머] 11월 1주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)

(오늘의 짤방: 명심하세요, 문제라는 건 없습니다. 오직 기회가 있을 뿐이죠. via @EBvi)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Elastic 101 tutorial - Percona Europe 2018 EOB

[독서광] 구글의 아침은 자유가 시작된다

오늘은 구글의 사람운영(일반적으로 인적자원이라고 부르는...) 부서를 맡고 있는 라즐로 복이 구글의 인재상과 사내 문화를 정리한 책인 "구글의 아침은 자유가 시작된다"를 소개하겠다. 한국어 번역서 제목이 조금 이상해서(회사 출근 = 자유???) 원서 제목을 살펴보니까 "Work Rules!: Insights from Inside Google That Will Transform How You Live and Lead"이었다. 유감스럽게도 원서 제목이 훨씬 더 책 내용을 정확하게 표현한다. 물론 출판사 마케팅 측면에서 그렇지 않을지는 모르겠지만... 이 책은 구글 내부의 규칙을 중심으로 규모가 커짐에도 불구하고 계속해서 직원들의 사기를 북돋으면서 높은 생산성을 유지하는 방법을 소개하는 책이다. 일반적인 회사는 직원이 늘어남에 따라 운영면에서 심각한 위기를 몇 차례 겪기 마련이지만 구글은 직원 규모에 비례해서 매출과 생산성이 같이 늘어나는 신기한 마법을 보여주므로 도대체 어떤 일이 내부에서 벌어지고 있는지 많은 사람들이 관심을 갖기 마련이다. 이 책은 100%는 아니지만 구글의 독자적인 사람운영(!) 비법에 대해 살짝 힌트를 준다.

이 책을 읽는 과정에서 조금 주의해야 하는 사항이 하나 있는데... 성공적인 사람운영이 구글이라는 맥락에서 성공을 거둔 부분과 그렇지 않은 일반적인 부분을 나눠서 생각해야 한다. 기업에서 실패 요인은 대부분 그대로 전철을 밟다보면 실패로 이어지기 마련이지만 성공 요인은 그 기업 특유의 맥락과 연계가 되어 효과가 발휘되는 경우가 많기 때문에 따라하더라도 성공은 커녕 실패로 이어질 가능성에 대해서도 특별히 주의해야 할 필요가 있다.

본문에서 몇 가지 눈여겨봐야 하는 내용을 정리하면 다음과 같다:

  • 산소 프로젝트(p294): 구글이 통 크게 자신들의 인적자원 경험을 공유하기 위해 만든 re:Work 사이트에도 정리된 내용이지만 구글은 2009년도부터 팀장을 대상으로 정량적인 자료를 수집해 좋은 리더의 조건을 정립해왔다. 그 중에 여덟 가지 관리자 특성을 정리해보면 다음과 같다.
    1. 좋은 코치가 된다
    2. 직원에게 권한을 넘기고 지나칠 정도로 시시콜콜 간섭하지 않는다
    3. 직원의 성공과 개인 복지에 관심을 가진다
    4. 매우 생산적이고 결과 지향적이다
    5. 소통을 잘한다. 즉 정보를 청취하고 공유한다
    6. 직원이 경력 개발을 할 수 있도록 돕는다
    7. 팀이 나아갈 방향에 대해 명확한 전망과 전략을 가진다
    8. 팀과 직원에게 도움이 될 조언을 할 수 있는 직무상의 기술 능력을 가진다
  • 행동을 바꾸는 프로그램에 투자(p342): 흔히 학습 내용의 70퍼센트는 직무 경험을 통해, 20퍼센트는 코치나 멘토를 통해, 나머지 10퍼센터는 강의실 교육을 통해 습득해야 한다는 주장이 보편화되어 있는데, 구글에서는 이런 모호한 학습 방식 대신에 업무 수행에 얼마나 도움이 되며 회사의 생산성 향상에 얼마나 기여하는지에 초점을 맞춘 학습 프로그램을 설계하고 있다. 반응 평가, 학습 평가, 업무 수행 평가, 결과 평가를 통해 정상적인 학습이 이뤄지고 있는지를 지속적으로 점검한다. ==> 이 부분은 상당히 중요하므로 별도 글로 올려드리겠다.
  • 개인의 성과는 정규분포가 아니라 멱함수분포를 따름(p374): 노동집약적이고 기술이 제한되어 있으며 공간저인 이유로 최소/최대 생산이 제한되는 산업 분야에서는 직원이 기록하는 성과는 정규 분포의 양상을 띄고 있다. 당연히 특정 직원이 아주 높은 성과를 내기가 대단히 곤란한 상황인 것이다. 하지만 소프트웨어 분야에서는 멱함수 분포가 일반적이다. 어느 정도냐 하면... 전체 생산의 10퍼센트는 상위 1퍼센트에서 나오고, 26퍼센트는 상위 5퍼센트에서 나온다. 다시 말해 상위 1퍼센트에 해당하는 직원이 평균적인 직원 열 명 몫을 하고, 상위 5퍼센트에 해당하는 직원은 평균적인 직원 네 명 몫을 한다. 따라서 최고의 직원에게는 최고의 보상이 이뤄질 수 밖에 없다(그렇지 않으면 열 명을 추가로 고용해야 하니까...).
  • 기회, 절차, 분배의 공정성(p382): 사람은 공정성을 위해서는 자기 개인을 희생할 정도로 민감하게 반응한다. 구글의 캐스린 데카스는 공정성이 틀어질 때 생기는 해악을 다음과 같이 묘사한다:
    공정성 인식은 매우 강력한 힘을 발휘한다. 이 인식은 업무 현장의 거의 모든 것, 즉 자기가 얼마나 가치 있는지, 자기 업무에 얼마나 만족하는지, 상사를 얼마나 신뢰하는지, 그리고 자기가 조직에 얼마나 헌신하는지 등에 대해 사람들의 생각에 영향을 준다.
    구글은 분배 공정성이나 절차 공정성을 담보하지 못한 보상 프로그램을 다른 것으로 대체하거나 폐지했다. 그리고 금전적인 보상보다는 특별한 경험 차원의 보상을 제공해 공개적으로 인정해주고 성과급과 주식의 제공 규모를 차별화해 사적으로 보상하는 방법을 택하고 있다.

결론: 회사 인적 자원 운영은 가장 중요한 요소이지만 생산성이 낮은 대다수 회사는 이를 가볍게 여기는 성향이 있다(물론 겉으로는 인사가 만사라고 입버릇처럼 이야기하기는 한다). 여러 가지 사정으로 인해 구글처럼 따라할 수는 없지만, 중요한 몇 가지 사안에 대해서는 생각해볼 가치가 있을 것이다. C 레벨 임원분들은 물론이고 팀장들에게 추천한다.

보너스: 저자인 라즐로 복이 책 내용을 요약한 슬라이드를 한국어로 번역한 슬라이드

EOB

토요일, 11월 03, 2018

[B급 프로그래머] 10월 5주 소식(빅데이터/인공지능, 암호화폐/블록체인, 읽을거리 부문)

오늘의 짤방: Digital Transformation: "Technology changes exponentially; organizations change logarithmically." via @DiegoKuonen
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: SQuAD1.1 benchmark result via @pranavrajpurkar
EOB

금요일, 11월 02, 2018

[독서광] IT 트렌드 스페셜 리포트 2019

원래는 전혀 계획이 없었는데, 갑자기 출판사 요청으로 9월 초에 잠깐 동안 집필을 하게 되어버렸다. 2018년도에도 이미 읽어보신 분들이 계실지도 모르겠는데, 바로 유망한 IT 기술 동향을 정리하는 IT 트렌드 스페셜 리포트다. 2018년 판에는 ① AR/VR/MR, ② 스마트자동차, ③ 인공지능 비서(지능형 앱), ④ 블록체인, ⑤ AI 챗봇, ⑥ 사물인터넷, ⑦ 인공지능을 다뤘는데 2019년 판에는 ① 인공지능, ② 5G, ③ 로봇, ④ 드론, ⑤ 대화형 플랫폼, ⑥ 실감형 미디어, ⑦ 블록체인을 다루고 있다. 유일하게 제목도 그래도 남은 분야가 블록체인과 인공지능이라는 사실을 눈여겨보자.

각 부문별로 비즈니스 가치와 시장 흐름을 정리한 비즈니스 리포트와 실제 현업의 목소리를 듣는 테크 리포트를 포함하고 있으므로 큰 그림을 파악한 다음에 구체적인 사례를 확인할 수 있게 구성되어 있다. 필자는 인공지능 부문에서 비즈니스 리포트를, 블록체인 부문에서 테크 리포트를 각각 하나씩 작성했는데 특히 인공지능 부문의 비즈니스 레포트를 작성하기 위해 기존에 이 블로그에 정기적으로 올려드린 정보 이외에도 현재 동향을 이해하는 데 도움을 주는 여러 가지 정보를 수집했으므로 기대하셔도 좋겠다.

인공지능 부문과 블록체인 부문은 2018년에 이어 2019년에도 뜨거운 관심을 불러일으킬 가능성이 상당히 높기 때문에 현재 하고 있는 업무와 무관하더라도 한번씩 짚고 넘어가면 어떨까? 현재 예스 24를 비롯해 여러 온라인 시점에서 예약 판매 중이므로 많은 성원 부탁드리겠다.

EOB