월요일, 12월 31, 2018

[영화광] 2018년 좋았던 영화 정리

(via @phyxinon)

2018년을 회고하려다, 어디서부터 손을 대야할지 감이 오지 않아서 다 포기하고 즐겁게(실패한 영화는 제외) 감상한 영화 목록을 한 번 정리해보았다.

  • 강철비: 새해 본 첫 영화로 한국에서만 가능한 이야기를 잘 풀었다는 점에서 좋은 점수
  • 다키스트 아워: 덩케르크가 전면이라면 다키스트 아워는 후면. 전투 장면이 굳이 필요없는 전쟁 영화
  • 패딩턴2: 아름다운 색감으로 귀여우면서도 꿋꿋한 주인공을 그리는 영화
  • 셰이프 오브 워터-사랑의 모양: 일상과 상상의 절묘한 조화
  • 더 포스트: 참다운 언론이란 무엇일까?
  • 팬텀 스레드: 전통을 따를 것인가? 유행을 따를 것인가? 사랑을 따를 것인가?
  • 플로리다 프로젝트: 어른들이 삶과 투쟁하는 순간에도 아이들은 성장한다
  • 쓰리 빌보드: 기존의 틀을 벗어난 독특한 이야기 전개
  • 콜 미 바이 유어 네임: 아름다운 풍경, 아름다운 사랑
  • 레디 플레이어 원: 비디오 키드들을 위한 종합 선물 세트
  • 레이디 버드: 우리 모두 성장하느라 괴로운 시절이 있었지
  • 콜럼버스: 건물로 이어지는 사람들의 이야기
  • 어벤저스 - 인피티니 워: 예상치 못했던 결말
  • 당갈: 시간 가는 줄 모르게 밀어붙이는 박진감 넘치는 스포츠 드라마.
  • 밤쉘: 엔지니어로 성장하려면 아이디어만으로는 2% 부족하다는 사실을 다시 한 번 느낌
  • 바르다가 사랑한 얼굴들: 사람들의 일상적인 얼굴이 예술로 변신하는 마법
  • 앤트맨과 와스프: 어벤저스 다음 편에서 앤트맨이 어떤 활약을 벌일지 중요한 힌트를 제공
  • 킬링 디어: 어둡지 않은 어둠의 스산한 분위기
  • 인크레더블 2: 히어로는 고달프다. 하지만 육아는 더욱 고달프다
  • 서치: 컴퓨터 화면만으로 모든 이야기를 전개하는 독특한 형식의 미
  • 미션 임파서블-폴아웃: 에단 헌트가 아니라 탐 형이 죽을 맛. 고공낙하와 헬기 추적씬은 IMAX 포맷의 위력을 유감없이 보여줌
  • 어느 가족: 가족에 대한 진정한 의미는?
  • 더 스퀘어: 현대 미술의 본질에 대한 뒤집기
  • 공작: 액션과 신파를 배제한 존 르 카레 느낌의 건조하면서도 세련된 스파이 영화
  • 암수살인: 고지식할 정도로 기본에 충실하게 정면 돌파하는 범죄 영화
  • 맥퀸: 패션을 전혀 몰라도 패션에 대한 느낌이 오게 만드는 독특한 영화. 런웨이 옆에 서 있는 느낌
  • 퍼스트맨: 모든 내용과 결과를 거의 다 알고 봐도 마지막 장면은 감동. 용산 IMAX 관에서 꽉 찬 화면에 펼쳐지는 달 표면은 사람들의 숨을 죽일 만큼 놀라움을 선사
  • 보헤미안 랩소디: 라이브 에이드를 그래도 옮긴 첫 부분과 마지막 부분만으로도 본전을 뽑고 또 뽑는 영화. 사기 캐릭터인 프레디 머큐리의 노래와 무대 매너로 연출과 편집의 사소한 결점을 완전히 덮어버림
  • 저니스 앤드: 전투 장면 이상으로 긴박한 참호 장면. 이미 자신들의 운명을 알고 있는 사람들이 어떻게 미쳐가는가?
  • 헌터 킬러: 인물 간의 팽팽한 갈등을 그린 잠수함 영화와 다른 노선을 따르지만 의외로 긴박감이 느껴지는 오락 영화. 옛날 방식으로 가려면 이렇게 가라
  • 스파이더맨-뉴 유니버스: 어떤 면에서는 실사보다 더 나은 스토리와 화면
  • 아쿠아맨: 원더우먼에 이어 DC를 살린 영화. 고뇌와 갈등에 빠진 나약한(?) 영웅에 질렸으니 전형적인 영웅에 열광할 때도 된 듯
  • 로마: 칠드런 오브 맨과 그래비티에 이은 또 하나의 걸작 탄생. 공들인 음향 효과는 올해 영화 중에 최고!
  • 인 디 아일: 각자도생하면서도 미련을 버리지 못하는 사람들을 제대로 그리는 영화. 조용하다 못해 쥐죽은 듯한 연말 독일 느낌을 너무나도 잘 살림
  • 범블비: 범블비는 다 망가진 트랜스포머를 살릴 수 있을까? 어느 정도는 성공한 느낌
  • 더 파티: 올해 본 마지막 영화. 막장 드라마를 가장한 블랙코메디. 가장 마지막 장면은 뇌리에서 떠나지 않음

애독자 여러분들 모두 2019년 새해 복 많이 받으세요!

EOB

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

(오늘의 짤방:
"I'm a human.
I'm not a robot.
Remember me."

(login screen poetry)
via @pmrpr)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
(보너스: AI: What's Working, What's Not via @estima7)
EOB

토요일, 12월 29, 2018

[B급 프로그래머] 소프트웨어 엔지니어들이 읽기 어려운 코드를 만드는 이유는?

Quora를 읽다보니 Why do competent software engineers sometimes write code that is difficult to understand?라는 재미있는 글이 올라와서 소개드리겠다.

뛰어난 소프트웨어 엔지니어들은 일반적으로 깨끗하고 이해하기 쉬운 코드를 작성한다. 하지만 종종 이런 엔지니어들이 이해하기 어려운 코드를 작성하는 이유는 무엇인가요?

  1. 풀기 어려운 문제: 문제가 복잡하면, 당연히 이를 풀기 위한 코드도 복잡해지며, 복잡한 코드는 따라가기 어려울 수 있다.
  2. 시간 제약: 종종 관리자는 많은 코드를 빠르게 만들도록 요구한다. 빠르게 코드를 작성하면, 코드를 완벽하게 편집할 시간이 부족하다.
  3. 영감 부족: 심지어 훌륭한 개발자조차도 종종 문제에 부딪힐 때 해법을 미리 알지는 못한다. 작업을 시작해서 완료할 무렵이면 코드는 엉망진창이 된다. 나중에 문제나 코드에 대해 통합되고 단순화된 해법을 찾을지도 모르고, 코드를 단순하게 만든 핵심적인 추상화를 핵심 추상화를 이해했을지도 모른다. 하지만 세익스피어 작품의 모든 행이 최고는 아니다. 코드도 마찬가지다.

이 글을 작성한 저자도 아주 오래동안 진행하는 프로젝트에서 코드를 (심지어 세 번까지) 재작성한 경험이 있다고 말한다. 최종 버전은 깨끗하고 간결하고 올바르게 돌아가지만 첫 버전은 보통 엉망 진창일 가능성이 높다. 따라서 엉망진창인 버전을 계속해서 다시 작성한다.


헤밍웨이는 <노인과 바다>를 작성하면서 수 십 번 고쳐썼다는 이야기가 있다. 만 권 이상 팔리면서 (보헤미안 랩소디도 아닌데) 최근 판매량에서 역주행까지 하면서 스테디셀러로 자리를 굳힌 클린 코드의 엉클 밥도 코드를 깨끗하게 만들기 위한 보이스카웃 규칙까지 제시하면서 개발자들이 코드를 이해하기 쉽게 만드는 개발문화를 독려한다. 처음부터 완벽한 코드는 존재하지 않으므로 시간이 걸리고 귀찮고 어떻게든 돌아간다고 코드를 내버려 두지 않기 바란다.

EOB

월요일, 12월 24, 2018

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

(오늘의 짤방: 0 vs null vs undefined via @ddprrt)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: LISA18 - Cross Atlantic: Scaling Instagram Infrastructure from US to Europe
EOB

토요일, 12월 22, 2018

[일상다반사] 블로깅 10년 동안 얻은 교훈(일부 번역)

(오늘 소개하는 원문에 나오는 중요한 그래프: 글에 포함된 단어가 많을수록 검색에 걸릴 확률이 높아진다. 2000 단어가 기준점)

Everything I've learned in 10 years of Blogging라는 글을 읽다보니 10년 동안 얻은 교훈을 정리한 부분이 흥미로워서 잊어먹지 않기 위해 여기에 간단하게 정리해본다.

  • 어느 누구도 당신의 글을 읽을 시간이 없다. TLDR(Too Long; Didn't Read. 요약하자면)처럼 처음 몇 행을 작성하라.
  • 사이트 디자인은 큰 상관이 없다.
  • (블로그를) 시작할 때 어떤 소프트웨어도 필요하지 않다.
  • 당신의 독자를 정의하라.
  • 당신의 독자가 어디에 있는지 알아내라.
  • 검색 엔진 최적화를 위해 짧은 글을 적지 마라(>2000 단어).
  • 제대로 연구한 글 하나가 보통밖에 안 되는 글 열 개보다 좋다.
  • 시간의 절반을 글을 쓰는데, 나머지 절반을 홍보하는 데 사용하라.
  • 글 쓰기는 데 투입하는 시간의 50%만 실제 글을 쓰고 나머지는 이리저리 수정하고 읽고 그림 그리는 데 투입하자. 세부 사항이 중요하다.
  • 당신의 모든 비밀을 쏟아부어라. 소재 거리가 고갈될 걱정일랑 하지 마라. 그럴리 없을테니까.
  • (블로그에) 정해진 규칙은 없다. 천천히 독자적인 스타일을 만들어내라.
  • 옛날 글로 돌아가서 새로운 글과 연결시켜라.
  • 뉴스레터를 시작하라.
  • 다른 모든 사람이 염려하는 일을 해라.
  • 뭔가를 질문하거나 팁을 제공하는 사람들에 접근하라.

세부 사항은 원문에 나오지만 정리한 목록만 봐도 블로그 작성에 많은 도움이 될 것이다. 최근 몇 년 동안 이 블로그는 링크 소개 중심으로 운영이 되어 왔는데, 2019년부터는 재미있는 글의 비중을 높여나갈 계획이다.

EOB EOB

월요일, 12월 17, 2018

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

(오늘의 짤방: "책이란 우리가 겪어온 '모든' 일들의 아주 희미한 메아리에 지나지 않는다." via @Coetzeero)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: Introducing Waymo One, the fully self-driving service via @estima7
EOB

토요일, 12월 15, 2018

[독서광] 꽃은 피고 꽃은 지고

오늘은 전혀 예상치 못한 책을 한 권 읽고 독후감을 정리보았다. 출판사 사장님께서 직접 전달해주셨기에 지방 출장 다녀오면서 KTX 안에서 잽싸게 읽은 '꽃은 피고 꽃은 지고'다.

이 책은 불교에 귀의하는 과정과 도반(길을 함께 걷는 동반자이자 함께 수행하는 벗)의 투병을 옆에서 도와주는 두 가지 이야기가 낱줄과 씨줄처럼 얽혀있어서 불교에서 말하는 인연의 겁에 대해 다시 한 번 생각하게 만들어준다. 책을 읽다보니까 얼마나 내가 세속적인 욕심을 목표로 살았는지 많이 반성하게 되었는데... 종교에 귀의하신 분들을 정말 존경스러울 뿐이다.

이 책은 바쁘고 정신없이 지나간 2018년을 반성하면서, 매년 빠지지 않고 진행한 2019년 목표 수립에 많은 도움이 될 것 같다. 2018년도 보름 정도 남았는데, 독자 여러분들께서도 2018년 목표 달성 상황 점검과 2019년 목표 수립 작업을 한 번 진행해보심이...

EOB

월요일, 12월 10, 2018

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

(오늘의 짤방: symlink via @lolamby)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Supercell – Scaling Mobile Games (GAM301) - AWS re:Invent 2018 EOB

토요일, 12월 08, 2018

[B급 프로그래머] 파이썬을 배우는 10가지 이유

10 Reasons to Learn Python in 2018라는 글이 눈에 띄어서 핵심적인 사항을 정리해보았다.

2016년도부터 파이썬이 자바를 능가하는 프로그래밍 언어로 자리잡고 있는데, 2018년이 되어서도 유효할까? 다음과 같은 이유로 인해 여전히 배울 가치가 있어 보인다.

  1. 데이터 과학: 2018년에도 많은 프로그래머들이 파이썬을 배우는 단 한 가지 가장 큰 이유는 바로 데이터 과학이다. 다양한 데이터 과학용 라이브러리와 프레임워크를 제공할 뿐만 아니라 R에 비해 훨씬 더 많은 일을 할 수 있기 때문에 파이썬은 범용적인 목적으로도 활용 가능하므로 인기가 좋다.
  2. 기계 학습: 여러 해 동안 파이썬이 기계 학습에 많이 사용되어 왔으며, 다양한 라이브러리가 제공되므로 인기가 좋다.
  3. 웹 개발: 장고나 플라스크와 같은 훌륭한 라이브러리와 프레임워크는 웹 개발을 손쉽게 만들어준다. PHP로 몇 시간 걸릴 일을 파이썬은 몇 분에 끝내게 도와준다.
  4. 단순함: 초보자가 파이썬을 배우기 쉽다. 읽기도 쉽고 단순하며 설정 과정이 복잡하지 않으며 자바처럼 복잡하게 클래스 경로를 잡거나 C++처럼 컴파일러와 관련된 복잡한 문제도 없다.
  5. 방대한 공동체: 프로그래밍 언어를 학습하는 과정에서 도와줄 공동체가 강력하다.
  6. 라이브러리와 프레임워크: 자바와 마찬가지로 파이썬에도 엄청난 오픈 소스 라이브러리, 프레임워크, 모듈이 존재하므로 쉽게 비즈니스 논리에 집중할 수 있다.
  7. 자동화: 스크립트를 만들어 쉽게 자주 하는 작업을 자동화할 수 있다.
  8. 다목적: 파이썬은 맥가이버칼과도 같다. 한 가지 목적이 아니라 여러 목적으로 사용할 수 있으므로 많은 일을 할 수 있게 된다.
  9. 직업: 빠르게 직업을 얻고 경력을 강화하려면 파이썬이 좋다.
  10. 월급: 데이터 과학, 기계 학습, 웹 쪽은 월급도 높다.

여기까지가 해커눈 글에서 언급한 파이썬의 장점이었고, 단점도 존재하는데... 개인적으로 정리하면 다음과 같다.

  1. 마스터하기가 쉽지 않다: 초보자가 금방 배울 수 있다고 해서 언어를 속속들이 알기 쉽게 만들었다는 의미는 아니다. 파이썬스럽게 제대로 쓰려면 정말 힘들다.
  2. 서비스에 적용하기가 쉽지 않다: 자바는 처음부터 기업용으로 만들어져서 개발에서 서비스로 넘어갈 때 매끄럽지만 파이썬은 그렇지 않다.
  3. 성능을 개선하기 어렵다: 인터프리터 특성에 몇 가지 근본적인 문제로 인해 성능 개선이 상당히 까다롭다.
  4. 여전히 패키지 관리가 쉽지 않다: 프레임워크나 라이브러리에 의존하다 보면 패키지 관리 문제로 정말 뒷목 잡을지도 모른다.

아무쪼록 장단점을 잘 따져서 즐거운 파이썬 프로그래밍 되시길...

EOB

토요일, 12월 01, 2018

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

(오늘의 짤방: Sounds about right via @zeebluejay)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: 무지할수록 공격적인 이유.jpg via @iidxnico

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