토요일, 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

토요일, 10월 27, 2018

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

(오늘의 짤방: Finding the root case via bit.ly/2O83ugU)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
(보너스: The cloud native 7 layer model - @krisnova via @annnwallace)
EOB

토요일, 10월 20, 2018

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

(오늘의 짤방: Building (a raft) with via @InfoQ)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: Waymo Celebrates 10 Million Miles of Self-Driving
EOB

[B급 프로그래머] 초급 개발자가 알아야 하는 12가지 기술

트위터를 읽다가 발견한 글이 있어 간단하게 정리해보았다.

초급 개발자가 알아야 하는 12가지 기술은?(순서 무관)

  • 관계형 데이터베이스 동작 방식(언제나 유용)
  • 일반적인 HTTP 동작 방식
  • 특정 언어에서 코드 디버깅 방법(다른 언어에서도 엇비슷하므로 지식을 재사용할 수 있다)
  • 코드를 찾는 방법(IDE나 명령행에서 grep을 사용)
  • 정규 표현식 기초(직전 항목에서 코드를 찾는 방법에도 적용 가능)
  • 검색 엔진으로 직면한 문제의 해법을 찾는 방법
  • git 운영 방법(다른 형상 관리 시스템이라도 큰 문제 없음)
  • 질문할 가치가 없다고 생각할 때에도 질문하기
  • 시간대(TZ) 동작 방식(농담이 아님. 많은 개발자들이 혼동을 겪는 부분임)
  • 유니코드와 UTF-8 동작 방식
  • 캐시 동작 방식(CPU, 메모리, 디스크)

여기에 IDE 사용 방법(자유자재로...)과 셸/CMD 기초 사용법, 네트워크 관련 일반 지식이 더해지면 초급 개발자로서 한 몫을 다 하리라 생각한다.

EOB

금요일, 10월 19, 2018

[독서광] 안드로이드는 전기양의 꿈을 꾸는가?

작년 이맘 때 쯤 개봉한 블레이드 러너 2049와 올해 재개봉한 블레이드 러너를 즐겁게 봤는데 드디어 원작인 '안드로이드는 전기양의 꿈을 꾸는가?'를 재미있게 읽었다. 어디서부터 기억이 잘못 심어진지(!)는 모르겠지만, 원작 분량이 아주 짧은 단편으로 알고 있었는데, 막상 배송 받은 책(폴라북스 판 412페이지) 내용 전체를 차지해서 깜짝 놀랐다. 재미있게 읽느라 시간 가는 줄 몰랐다.

개봉한 영화와 여러 가지 면에서 다르기 때문에 독립적인 책으로 봐도 무방할 정도인데 요즘과 같이 인공지능이 뜨는 세상에서 인간의 감정과 지능이 무엇인지에 대해 여러 가지 각도로 생각하게 만들어준다는 점은 동일하다. 특별한 배경 지식 없이 접했을 경우 1968년에 출간되었다는 사실을 믿지 못할 분들도 많으리라. 책 제목(원서: Do Androids dream of electric sheep?)이 상당히 중요한데, 안드로이드, 양, 꿈 이 세 단어가 이 소설의 전반을 관통하는 핵심이기 때문이다. 안드로이드들이 힘든 화성 생활을 피해 더 나은 삶을 _꿈_꾸며 도망쳤다는 설정, 핵전쟁 이후 실제 동물에 집착하는 사람들, 안드로이드처럼 무감각한 인간들과 인간처럼 감정 이입하고 싶은 안드로이드가 내용을 풍성하게 만들어준다. 영화와는 달리 책은 안드로이드들이 엄청나게 높은 지능과 완력을 발휘하지 못한다고 묘사하므로 현실감을 더욱 높여주고 있는데, 그럼에도 불구하고 손에 땀을 쥐게 만드는 심리전이 전개되므로 독서에 앞서 스포일러는 읽지 마시기 바란다.

결론: SF 소설의 기념비적인 이 책을 꼭 읽어보시기 바란다. 저주받은 걸작(?)으로 알려진 영화 두 편도 혹시 재개봉하면 극장에서 보시면 더욱 좋으리라...

EOB

토요일, 10월 13, 2018

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

(오늘의 짤방: 0과 NULL의 차이 via @nahyon88)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: How many actually performed restore on production? via @jtuthehien

토요일, 10월 06, 2018

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

(오늘의 짤방: A minimal Turing test (McCoy & Ullman, 2018):“Say one word that convinces us you're human.”via @drjuliashaw)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: Imposter syndrome explained @quorralyne via @TessFerrandez
EOB

토요일, 9월 29, 2018

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

(오늘의 짤방: How tech writing ruined me as a letter writer via @PPd3nfDj0oPBAaO https://www.reddit.com/r/funny/comments/4dmufm/how_tech_writing_ruined_me_as_a_letter_writer/)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Effort matters. via @ValaAfshar
EOB