월요일, 12월 30, 2019

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

(오늘의 짤방: Internal Server Error😰 via @programmer_pic)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스

금요일, 12월 27, 2019

[B급 프로그래머] Pycharm에서 anaconda의 python.exe를 base interpreter로 사용하려면?

간만에 노트북을 교체하느라 윈도우 10 기반에서 기존 설치된 모든 개발 환경을 손보고 있는데, anaconda(2019년 10월 버전)를 먼저 설치한 다음에 PyCharm Community 버전(2019.3.1 버전)을 설치해서 base interpreter를 Anaconda에 있는 python.exe를 지정하는 순간 사고가 나버렸다.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

조금 더 자세히 소개하자면, 두 가지 문제가 발생하는 데 하나는 conda 또는 anaconda에 기본으로 설치된 pip로 다른 어떤 패키지 설치도 불가능(심지어 pip 자신도 불가능)하고 다음으로 콘솔 연결이 거부되는 현상을 목격했다. 콘솔 로그를 보니까 PyPI가 TLS 버전을 높이는 동시에 강제화하고 있지만 아직 conda의 pip는 그렇지 못했기 때문이었다. pip 부트스트래핑 업그레이드로 해결할 수도 있다고 구글 검색 결과가 유혹을 했지만, 콘솔 연결 거부도 함께 해결해야 하므로 conda 패키지 구성에서 근본적인 해법이 없는지 잠시 동안 고민하다가 뭔가 낌새가 이상해서 "Anaconda+PyCharm"이라는 키워드로 구글을 검색해보니 PyCharm for Anaconda라는 제품이 Professional과 Community 버전으로 나와있다는 사실을 알게 되었다. 따로 나온 이유가 무엇인지는 감이 오시리라...

기존 PyCharm Community Edition을 삭제하고 Anaconda 지원 Pycharm Community Edition을 설치한 다음에 Project Interpreter 설정 화면에서 miniconda를 지정하니까 miniconda를 설치하라는 버튼이 보여서 콕 누르고 설치할 동안 잠시 기다리니... 우선 miniconda 패키지를 로컬에 설치한 다음에 conda로 다음 화면과 같은 의존성을 설치했다. ca-certificate, certifi, openssl 등이 기본으로 들어있음을 알 수 있다.

2019년 12월에 PyCharm을 설치하시는 분들은 두 가지 옵션 중 하나를 택해야 한다. i) PyCharm 기본 버전과 Python 공식 패키지 또는 ii) PyCharm Anaconda 패키지

혹시 비슷한 문제로 고생하시는 분들이 계실까봐 메모로 남겨본다. 즐거운 파이썬 생활!

EOB

수요일, 12월 25, 2019

[B급 프로그래머] 12월 3주 소식(빅데이터/인공지능, 읽을거리 부문)

(오늘의 짤방: 상승중이던 한돌 승률 갑자기 떡락 - 축을 착각하는 버그 터진거 같다고 - NHN 기술의 정수를 모아 만든 AI가 축버그 via @gyundx)
  1. 빅데이터/인공지능
  2. 읽을거리
보너스: How Fast the Light Speed from Nasa
EOB

토요일, 12월 21, 2019

[독서광] 10배의 법칙

사업을 하다보면 여러 가지 복잡한 고민에 빠지게 되는데 이럴 경우 다른 사업가들은 무슨 생각을 하는지 이야기를 들으면 도움이 되는 경우가 있어서 온라인에서 평이 좋았던 10배의 법칙을 읽어봤다.

이 책의 핵심은 "생각을 10배하고 활동도 10배 더 한다"로 요약할 수 있다. 무조건 열심히를 강조하기 보다는 사고방식을 바꾼 다음에 열심히를 강조하고 있으며, 평균에서 벗어나 탁월한 위치로 가기 위한 자신의 경험을 다소 독선적으로 정리하고 있다. 평범한 자기계발서에서 이 책을 차별화하는 포인트는 제 21장 "10배의 법칙 실행하기"라고 볼 수 있다(21장을 가장 흥미롭게 읽었다). 21장에서는 어떤 일을 성사시키기까지 얼마나 머리 아픈 여정을 소화해야 하는지 자신이 직접 발로 뛰는 경험을 기술하는데, 의외로 결말이 실패(응?)로 끝난다는 아주 특이한 형태를 보여준다. 일반적인 책에서는 나오지 않는 날 것이 들어있기 때문에 이 책을 손에 집어들면 조금 식상한 내용이 나오더라도 참으면서 21장까지 읽어보기 바란다.

바쁘신 분들을 위해 이 책 내용을 요약하는 내용을 소개한다.

그리고 본문에 나오는 몇 가지 좋은 문구를 정리해보았다.

시작 단계에서 명심할 몇 가지 사항은 다음과 같다.
1. 목표를 적을 때 절대로 목표의 수를 줄이지 마라.
2. 현재의 시점에서 그 목표들을 어떻게 성취할지 구체적인 내용을 생각하느라 옆길로 새면 안 된다.
3. "이 목표들에 더 가까워지기 위해 오늘 내가 할 수 있는 활동은 무엇인가?"라고 스스로에게 물어봐라.
4. 어떤 것이 되었든, 어떤 기분이 들든, 머리 속에 떠오른 활동들을 모조리 수행하라.
5. 활동 결과에 대해 너무 성급하게 가치를 평가하지 마라.
6. 하루하루 그 날의 결과를 뒤돌아보고 목표 리스트를 재검검하라.
성공에서 흥미로운 점은 그것이 호흡과 같다는 것이다. 다시 말해 마지막 호흡이 중요하긴 하지만, 살아 있으려면 다음 호흡이 훨씬 더 중요하다는 사실이다.
성공 수준을 스스로 한정하기 시작하면, 성공을 위해 필수적으로 요구되는 일들에도 한계를 긋게 될 것이고, 현상 유지를 위해 해야 할 일들조차도 제대로 하지 않게 될 것이다.
대부분의 사람들에게 일이 노동으로 느껴지는 이유는, 지금까지의 성공이 꽤 충분하지 않으며 일이 '일'이 아닌 것으로 느껴질 정도로 큰 승리를 거두지 못하기 때문이다.
(사업에 뛰어든 후) 이전 직장과 동일한 액수의 월급을 손에 쥐기까지는 거의 3년이 걸렸다. 예상했던 것보다 12배 더 오랜 시간이 걸린 것이다.
목표를 낮추는 대신 활동량을 늘여라.
당신의 제품이나 아이디어를 시장에 진입시키는 데 들어가는 시간을 줄이고 싶다면, 더 짧은 기간 동안 더 많은 사람들과 더 많은 공간에서 접촉할 수 있도록 당신이 추진하는 모든 활동을 10배 더 높여야 한다.
일정 기간 동안 제대로 된 활동을 끊임없이 취한 결과로 얻게 되는 게 바로 성공이다.
"성공은 과정이지 결과가 아니다" 따위의 성공의 중요성을 간과하는 듯한 '사탕발림'의 말이 너무나 많다.
누군가의 성공은 모든 이에게 또 하나의 가능성의 문을 열어주는 것이므로 궁극적으로 모두에게 긍정적인 기여를 하는 셈이다.
인생에서 가고자 하는 지점에 도달하기 위해서는, 당신의 세계에서 '무슨 일이 일어나든' - 좋은 일이든 나쁜 일이든, 혹은 아무 일도 발생하지 않든 - 그것은 당신에 의해 초래된 것이라는 관점을 받아들여야 한다.
그들이 물러서서 활동을 접게끔 만드는 진짜 원인은 대게 실패와 거절 자체가 아니라 그것에 대한 그들 나름의 해석과 기분이다.
왕성한 활동은 사실상 새로운 문제들을 일으키는 수준의 활동을 말한다. 그러니 새로운 문제들이 생겨나지 않는다는 것은 대단히 왕성한 활동을 제대로 수행하고 있지 않은 셈이다.
왕성한 활동을 한다는 것은 때론 다소 비합리적인 선택을 하고 훨씬 더 많은 활동을 하는 것을 의미한다.
평균은 실패로 가는 계획이다!
평균은 모든 일이 변동 없이 안정적으로 돌아간다는 가정을 전제로 하고 있지만, 이는 당연히 잘못된 가정이다.
평균적인 생각과 활동은 오로지 고통과 불확실성 및 실패만 보장하게 될 뿐이다.
내 생각에 중산층은 그 그룹의 사고방식과 행동에 의해 가장 큰 피해를 입고, 경제적 불안정과 고통에 가장 대첵 없이 노출되는 집단이다.
원하는 것들에 집착하기 바란다. 그러지 않든다면 원했던 인생을 얻지 못한 데 대해 변명을 지어내는 일에 사로잡혀 인생을 허비하게 될 것이다.
문제가 계속 출현한다는 것은 당신이 향상되고 있으며 올바른 방향으로 가고 있다는 증거다.
성공한 사람들과 그렇지 못한 사람들 사이의 주된 차이점들 중 하나는 전자는 해결할 문제를 '찾아다니는' 반면, 후자는 문제를 '회피하기'위해 온갖 시도를 다 한다는 점이다.
"이만하면 충분히 했다"고 조언하거나 휴식 또는 여행을 권하는 사람들을 특히 조심하라.
경쟁과 불확실성에 대한 걱정에서 해방될 수 있는 가장 좋은 방법은, 불을 아주 크고 뜨겁게 지펴서 경쟁자를 비롯한 세상의 모든 사람들의 '당신의' 불을 쪼이려고 그 주변에 둘러 않도록 만드는 것이다.
불안감을 야기하는 대상에게 시간을 더 많이 들일수록 불안감은 더 강력해진다.
두려움이 엄습해온다면 행동을 취할 최적의 시간이 바로 그 순간이라는 신호로 해석하면 된다.
비판을 받는다는 것은 목표 지점에 거의 다 이르렀다는 명백한 신호라는 점이다.
비판은 관심을 얻은 결과로 자연스럽게 생겨나는 현상이다.
성공은 인기투표가 아니라는 점을 기억하라.

결론: 늘 평균적인 삶을 살면서 왜 내 삶은 평균밖에 안 되지?라는 질문이 드는 분들께 추천한다.

EOB

토요일, 12월 14, 2019

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

(오늘의 짤방: Only 0.3% of the world can code A small percentage of the population has such a major impact on the world via @briannekimmel)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: AWS re:Invent 2019: [REPEAT 1] Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
EOB

금요일, 12월 13, 2019

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

(오늘의 짤방: 와 이 간판 똑똑하네 ㅋㅋ via @Hatezu)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: What Makes The Top 10% Of Founders Different? - Michael Seibel
EOB

토요일, 12월 07, 2019

[독서광] 세상에서 가장 재미있는 통계학

오늘은 간만에 독후감을 하나 올려본다. 머신러닝 관련 작업을 하다보니까 통계에 대한 기초를 다시 한 번 짚고 넘어갈 필요성이 생겼는데, 대학교 때 배우던 통계책을 보려니까 아픈 기억(?)이 되살아나서 대안을 찾으려 교보문고에 가서 뒤적거리다 발견한 '세상에서 가장 재미있는 통계학'을 처음부터 끝까지 읽고 말았다.

우선 이 책은 만화로 구성되어 있다는 사실을 짚고 넘어간다. 그렇다고해서 어린이용 학습서라는 이야기는 결코 아니다. 그림을 그린 사람이 『세상에서 가장 재미있는 세계사』를 만든 래리 고닉이라는 사실을 알면 아마 이 책을 다시 평가하게 될지도 모르겠다. 이 책은 통계에 대해 모든 것을 설명하지는 않지만(그랬다가는 책 두께가... T_T), 통계에 꼭 필요한 기본적인 개념을 이해하기 쉬우면서도 정확하게 소개하는 특징이 있으므로 고등학교를 졸업하고(대학에서 교양(?)으로 확률과 통계를 배우신 분에게 더 적합할지도...) 사회에서 갑자기 통계에 대해 뭔가 기초 지식이 필요할 경우에 딱 맞는 특성이 있다.

이 책은 사람들이 통계에서 많이 어려워하는 몇 가지 개념을 정면으로 돌파하기 때문에 정신을 조금 차리고 읽을 필요가 있다. 다음 문제를 한 번 볼까?

1개의 주사위를 네 번 굴려서 6이 한 번 나오는 경우와 2개의 주사위를 24번 굴려서 동시에 6이 한 번 나오는 경우 중 어느 쪽이 확률이 더 높은가?

드 메레라는 도박사가 이 문제를 놓고 머리가 아팠던 이유는 상식선에서 생각하면 둘 다 확률이 2/3처럼 보이지만 실제 현장에서 겪어보면 두 번째 도박에서 패배할 확률이 높았기 때문이었다. 이 문제는 드 메레의 친구인 파스칼(여러분이 알고 있는 바로 그 수학자다)이 체계적으로 정리했다. 이미 눈치챈 분도 계시겠지만 조건부 확률과 특별 곱셈 정리를 동원하지 않으면 제대로 풀지 못한다. 이 책에서는 유머러스하게 공식을 유도하고 정리하면서 드 메레의 골칫거리를 정리해준다.

또한 수업 시간에 늘 햇갈린 중심극한정리에 대해 명쾌하게 짚고 넘어간다(나는 지금까지 내 머리가 나쁜줄 알고 있었는데, 이 책을 읽고 나서 수업 시간에 왜 이렇게 쉽게 가르쳐주지 않았는지에 대해 의아해하고 있다. T_T). 평균의 표본분포와 관련해 표본평균의 추정량도 역시 근사적으로 정규분포를 따른다는 이론인데 중심극한정리에 대해 제대로 이해하고 넘어가야 뒤에 나오는 t분포와 신뢰구간이 머리에 들어오게 된다. 공식만 댑다 외워서 언제 뭘 쓰는지 몰라서 시험칠 때마다 틀렸는데 진작 이렇게 제대로 정리해줬으면 얼마나 좋았을까 후회하고 있다.

베이즈 정리와 잘못된 양성반응과 관련한 내용도 상당히 잘 정리되어있다. 만화라는 장점을 극대화해서 2x2 조건 표를 만든 다음에 산식으로 확률을 계산하는 방법을 보고 있으면 뭔가 속이 시원해지는 느낌이 올 것이다.

결론: 통계 관련 기초 내용을 빠르고 쉽고 정확하게 이해하고 싶은 분들께 추천한다. 단, 가장 처음 보는 입문용으로는 곤란하다.

EOB

토요일, 11월 30, 2019

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

(오늘의 짤방: Hacking Tools Cheat Sheet via @Alra3ees)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스:

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

(오늘의 짤방: Gradient descent is used in many ways at Tesla via @hardmaru)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: DEEP NEURAL NETWORK via @minjang_kim)
보너스 2: PBS의 다큐멘터리 “In the Age of AI”
EOB

토요일, 11월 16, 2019

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

(오늘의 짤방: 🤔🤔🤔 via @lostland)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Linux Systems Performance in 40 minutes, a summary for everyone
EOB

토요일, 11월 09, 2019

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

(오늘의 짤방: 예술의전당 맛집은 이거 한장으로 딱‼️ @I_Love_SAC)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: complicated vs complex
EOB

토요일, 11월 02, 2019

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

(오늘의 짤방: Revenue Growth, year-over-year (%)... $NFLX: +31.0% $FB: +28.6% $AMZN: +23.7% $GOOGL: +20.0% $MSFT: +13.7% S&P 500: +3.4% (slowest since Q3 2016) $AAPL: +1.7% via @charliebilello)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Uptime 15,364 days - The Computers of Voyager
EOB

토요일, 10월 26, 2019

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

(오늘의 짤방: 보이저 심 우주 통신)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리 부문
보너스: The Deep Space Network: A Communication Hub That Also Does Science!
EOB

토요일, 10월 19, 2019

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

(오늘의 짤방: 님들은 SI 하지마세요 via @nameEO)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB