월요일, 6월 29, 2020

[B급 프로그래머] 2020년 6월 27일 개발자 이야기(발표 자료)

2020년 6월 27일자 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 앱이 여러분 클립보드를 훔쳐본다면?
  • 아마존 허니코드 - 코드 없이도 웹/앱 개발이 가능할까?
  • 생활코딩과 함께 하는 AWS 탐구생활
  • AWS, GCP, Azure Cloud 자료 모음
  • 내맘대로 github 오타 대잔치
  • 마이크로소프트, 크롬의 가장 큰 문제를 해결
  • 유닉스에서 SIGSEGV에서 ‘V’는?
EOB

토요일, 6월 27, 2020

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

(오늘의 짤방: 미리 계획하...자 via @_Thirtyfour34)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: Undocumented MS Word: How to insert Lorem Ipsum dummy text into Word
EOB

수요일, 6월 24, 2020

[독서광] 사람은 어떻게 생각하고 배우고 기억하는가

어떤 책을 읽다가 기존에 읽은 다른 책들의 궁금증을 풀어주는 경험을 해본 적이 있는가? 오늘 소개할 책인 '사람은 어떻게 생각하고 배우고 기억하는가'는 학습과 관련해 기존에 알고 있던 여러 가지 속설을 과학적으로 설명하고 있기에 배우거나 가르치는 입장에서 놓치지 말아야 하는 핵심을 잘 짚어주고 있다. 책에서 다루는 내용을 책에도 그대로 적용해서 서술하고 있기에 중간 중간 나오는 깔끔한 요약 정리는 물론이고 간단한 퀴즈도 흥미를 북돋워준다.

뇌과학 서적이라고 해서 두뇌의 구조만 다루거나 여러 실험만 장황하게 소개하는 대신, 실질적으로 도움이 되는 팁을 제시하고 있기 때문에 실용적인 관점에서 봐도 상당한 도움을 준다. 발표 과정에서 주의해야 하는 예를 들어볼까?

  • 배포하고자 하는 자료에는 문자 텍스트를 자주 최소한으로 삽입하라: 프리젠테이션 젠 책에서도 핵심적으로 다루는 내용인데 사람은 들으면서 동시에 읽을 수가 없다는 사실을 기억할 필요가 있다.
  • 슬라이드나 발표자료에 텍스트를 가장 효과적으로 삽입하는 방법은? 키워드(주의: 최대 7개를 넘기면 안 된다)!
  • 슬라이드에 삽입된 단어와 내가 말하는 단어가 똑같다면 여전히 방해가 될까? 그렇다! 슬라이드에 나온 단어와 발표자가 말하는 단어가 동시에 들어오면 병목 현상이 생기고, 청중은 흥미를 잃어버린다.
  • 참고 자료는 끝난 후에 배포하라. 발표 중에 유인물을 읽으면 듣기를 포기해야 한다.
  • 발표자에게 집중하라. 좋은 상사가 되려면 자료를 가장 나중에 받아야 한다.
  • 텍스트, 오디오, 비디오를 동시에 제공할 경우 무작위로 나열하는 대신 각각 질서를 부여해 배치해야 한다.

시각적인 효과를 극대화하기 위해 자료를 준비할 때 주의해야 하는 예도 흥미롭다.

  • 한 슬라이드 안에 이미지는 하나만 있어야 한다. 여러 이미지가 있을 경우 순차적으로 처리해야 하므로 효과가 반감된다
  • 그래프도 이미지만큼이나 빠르게 처리할 수 있을까? 그래프와 표는 절대로 이미지와 같지 않으며 일일이 분석해야 하는 어려움을 준다. 따라서 중요한 측면만 시각적으로 강조하는 방법으로 이를 해소해야 마땅하다.
  • 내가 다루고자 하는 주제와 꼭 밀접한 관련이 있는 이미지만 사용해야 할까? 관심과 흥미 유도를 위해서는 주제와 무관한 이미지를 사용하지만 이해와 학습 유도를 위해서는 관련성이 있는 이미지를 사용해야 마땅하다.
  • 에튼버러 효과를 명심하라. 영상과 발표가 얼마나 멋들어지게 조합되었는지는 학습의 효과에 영향을 미치지 않는다. 특정 자료를 준비하면서 너무 사소한 것에 목숨을 걸지 말고 콘텐츠, 아이디어, 스토리를 다듬는 과정에 더 많은 시간을 투입하자.

남에게 표현하는 방식은 물론이고 학습할 때 주의해야 하는 사항도 도움이 되었다.

  • 훈련과 실전의 맥락을 정교하게 연결하라. 실전을 대비한 연습을 할 때마다 실전에서 있을 만한 상황과 순간을 정교하게 구성하고, 실전 장소와 최대한 비슷한 환경을 가진 연습장을 찾아라.
  • 의미적 기억(여러 경험을 토대로 일반화된 기억)이 형성되더라도 일화적 기억(자신의 경험에 따른 생생한 기억)은 그대로 남아 있으므로, 두 기억이 상호 작용해서 기억력을 강화한다.
  • 학습하는 동안 보고, 듣고, 맛보고, 냄새 맡고, 느끼는 모든 것이 새로운 기억의 일부가 된다면 감각을 활용해 성과를 높일 수 있다.
  • 내가 알고 있는 정보를 빠르고 쉽게 사람들에게 각인시키는 방법은 정보들을 중심으로 명확하고 일관된 다양한 요소를 구축하는 것이다. 하나를 보면 다른 하나가 자연스럽게 떠올 수 있게 정보를 배치하자.
  • 공부할 때는 상태 의존성에 겨예하라. 커피가 없으면 시험 준비를 못하게 되는 이유로 작용하면 나중에 더 많은 일을 커피가 없으면 못하게 될 확률이 크다.

오류가 없다면 성장도 없다는 사실은 [독서광] 성공의 새로운 심리학에서도 집중적으로 다루는 주제다. 이 책에서도 오류를 활용해 혁신을 가져오는 방법을 소개하고 있다.

  • 오류 문화를 조성하라. '결과'와 '과정'을 중요시하는 문화가 있는데, 과정을 중요시하는 문화에서는 오류와 오류 분석이 모든 단계에서 명백하게 특정지어지고 장려괴도록 하는 조치를 취해야 한다. 매번 업데이트할 때마다 기존의 심성 모형을 잃어버리는 것이 아니라 새로운 정보가 추가되므로 끊임없이 변화하는 세계에 지속적으로 적응하기 위해서는 오류와 오류를 통한 학습이 핵심이다.
  • 오해를 사용해 학습을 촉진하라. 예측의 생성 없이 새로운 지식과 정보를 받아들이면, 이전에 학습한 개념이나 아이디어에 연결하지 못한 채 해당 지식과 정보를 고립된 채로 이해하게 된다. 일반적인 실수나 오해를 피하기 보다는 학습의 일부로 받아들여야 한다.
  • 오류의 패턴을 찾고 스스로 대안을 만들어라. 수많은 오류들은 각기 작은 그룹으로 깔끔하게 범주화할 수 있다. 오류를 범주화하면 패턴을 찾을 수 있고, 패턴을 통해 스스로 대안을 만들어 갈 수 있다.
  • 피드백, 오류 경보를 작동시키는 지름길. 충분히 큰 오류만이 충분히 강력한 오류 경보를 발생시킨다. 수 많은 작은 오류든 우리의 예측에 가려 의식적인 인식에 도달하지 못한다. 따라사 피드백으로 누군가가 명백한 오류를 지적할 때마다 우리의 뇌는 '피드백 관련 부정'이라는 신호를 발생시키며, 오류 경보를 일으켜 학습을 유도한다.
  • 효과적인 피드백은 달성하고자 하는 목표와 수준을 명확한 것으로 만들어 상기시킬 수 있어야 하며, 개인적 성과와 목표 사이의 불일치를 분명하게 강조해 '피드백 관련 부정' 신호를 끌어낼 수 있어야 하고, 불일치를 해소하기 위한 조치를 각 개인의 수준에 맞춰 제시해야 한다.
  • 오류 분석 능력을 의도적으로 보여주어라. 오류 분석 능력 또한 연습으로 향상되며, 가장 효과적인 연습은 다른 사람들과 함께 오류 분석 과정을 주기적으로 시도해보는 것이다.

마지막에 들어와서는 설득력 있는 이야기가 중요하다는 사실도 짚고 넘어간다.

  • 이야기로 문을 열어라. 모든 사람이 같은 방향을 바라보게 만들고 참여를 촉진하기 위해서는 이전에 배웠던 개념이나 핵심 키워드로 만든 이야기를 들려주는 것이다.
  • 좋은 이야기를 구성하는 요소는 줄거리가 있어야 하며, 물리적 추진력을 일으키는 인과관계의 연결고리가 필요하다. 이런 구조는 안정성과 불안정성 사이를 넘나는다. 이야기의 시작 부분에는 안정성이 존재하며, 이야기가 전개되어감에 따라 균형이 깨지면서 전환점을 만드는 행동이나 사건이 발생하고, 마지막에 이르러서는 시작과는 다른 새로운 안정성을 확립시키는 사건이 벌어지기 마련이다.
  • 이야기의 유형은 크게 기원에 관한 이야기(어떤 주제에 대한 흥미와 개인화를 추진함), 갈등을 제시하는 이야기(자신이 알고 있는 상식이나 견해에 의문을 제시하게 만듦), 실용적인 이야기(실제 문제를 해결하기 위해 어떤 구체적인 지식을 어떻게 사용했는지에 초점을 맞춤), 사적인 이야기(친밀함과 집중력을 강화함), 서스펜스 드라마(호기심을 유발하고 지식의 격체를 메우는 데 영감을 불러 일으킴)가 있으며, 필요에 따라 적절하게 조합해서 사용하면 효과가 있다.
  • 이야기를 제대로 골랐다면 효과적인 전달 방법도 고민해야 한다. '당신의 이야기를 당신 스스로 느낄 수 있게 노력하라'
  • 입문자에게 자유는 악몽이다. 5000개 퍼즐 조각이 든 자루를 건내주고 최종 그림도 없이 맞춰보라고 하면 포기할 것이다. 초보자나 입문자를 대상으로 한 발표/강연/미팅에서는 이해가 쉽고 명확하고 일관성 있는 프레임워크를 구축할 수 있는 이야기(서사)를 사용하는 편이 효과적이다. 비유/상징/도약/확장이 담긴 이야기는 혼란을 초래한다.
  • 사람들의 자신의 이야기를 공유하도록 격려하라. 다양한 지식이 자신의 삶에 실제로 어떻게 반영되는지를 경험하고난 사람들은 그 경험을 '개인적인 서사'로 만들기 시작하며, 이는 동기를 부여하고 학습을 심화시킨다.
  • 이야기의 수위를 조절하라. 해박한 지식이 있는 사람들 앞에 이야기를 풀어내면 분노와 짜증을 유발할 수도 있지만, 강력한 힘을 발휘하는 이야기를 버릴 수는 없으므로 이야기의 뼈대를 잘 유지하면서 전달 방법을 고민한다.

한 줄 요약: 사람의 뇌와 관련해 이론적인 내용뿐만 아니라 학습 과정에서 실질적인 팁과 힌트를 얻고자 하는 학생과 교사 모두에게 이 책을 강력하게 추천한다.

EOB

월요일, 6월 22, 2020

[B급 프로그래머] 2020년 6월 20일 개발 이야기 특집(자바스크립트 세상의 클린코드)

(Pixabay로부터 입수된 Margit Wallner님의 이미지 입니다.)

2020년 6월 20일자 자바스크립트 세상의 클린코드 특집 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 일반적인 원칙
  • 변수
  • 함수
  • 단일 책임 원칙
  • 개방/폐쇄 원칙
  • 리스코프 치환 원칙
  • 인터페이스 분리 원칙
  • 의존성 역전 원칙
  • 테스트
  • 동시성
  • 포매팅
  • 주석
  • 결론
EOB

토요일, 6월 20, 2020

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


(오늘의 짤방: A morning as a researcher via @ErrantScience)
  1. 빅데이터/인공지능
  2. 읽을거리
보너스: [CVPR'20 Workshop on Scalability in Autonomous Driving] Keynote - Andrej Karpathy

수요일, 6월 17, 2020

월요일, 6월 15, 2020

[B급 프로그래머] 2020년 6월 13일 개발자 이야기(발표 자료)

(Pixabay로부터 입수된 Margit Wallner님의 이미지 입니다.)

2020년 6월 13일자 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 페북 TransCoder - 자동화가 개발자에게도 영향을 미칠 것인가?
  • CORS에 당한 유튜브
  • MIT 과외수업 중 Vim 편
  • devdocs.io – (웹) 개발자를 위한 통합 문서 검색 서비스
  • Android 11 변경 기능 소개 (Developer Preview #4)
  • Micronaut Servlet – 현대적인 Servlet
  • Grid.js – 고급 테이블 HTML 플러그인
  • Azar Mirror 서버 제작기 2편 - Istio와 함께하는 Traffic Mirroring
  • 유닉스에서 /bin과 /usr/bin이 분리되어 존재하는 이유는?
EOB

토요일, 6월 13, 2020

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

(오늘의 짤방: I love this image hehe. via @catalinmpit)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
(보너스: 추상화의 중요성 via @DebuggingToucan)
EOB

금요일, 6월 12, 2020

[독서광] 개발 7년차, 매니저 1일차

신입 사원 때는 크게 고민이 없지만 나이가 들고 직급이 올라가고 직책이 중해질수록 경력 관리에 대해 고민이 많아지기 마련이다. 기술 부문은 기술 전문 경력과 관리 전문 경력으로 나뉘어지기 때문에 언제 어떤 경로로 가야할지도 결정해야 한다. 하지만 어떤 식으로 경력을 관리해야할지 대학교에서도 가르쳐주지 않고 회사에서도 가르쳐주지 않기 때문에 어려움이 많다. HR 전문 컨설턴트들(소위 헤드 헌터라고 부르는...)이 있긴 하지만 이 친구들은 수요-공급을 이어주는 중간자이므로 인력 시장이 어떻게 돌아가는지 파악하는 과정에는 도움이 되지만 업종과 회사마다 편차가 크므로 내가 겪어야 하는 일에 대해서는 알려주기가 쉽지 않을 것이다. 그렇다고 무작정 시행착오를 거쳐 경력 관리를 배우기에는 위험이 너무 크다.

오늘 소개하는 '개발 7년차, 매니저 1일차'는 신입사원에서 시작해 CTO가 되기까지 개발자가 어떻게 경력을 관리해야 하는지 정리한 책이다. 단순히 저자의 경험을 토대로 '라떼는 말이야'라고 연대기 순으로 과거를 회상하는 대신 훌륭한 관리자가 갖춰야할 특성을 중심으로 직책별로 무엇이 중요한지를 짚어주고 있다. 이러다보니 책이 다소 지루할 수 있다. 아마 자신이 이미 지나온 단계는 경험이 쌓였으므로 나름대로 노하우도 축적되었고 어려움과 해법이 무엇인지도 알기 때문이고 앞으로 남은 단계는 어차피 먼 남의 일처럼 느껴질지도 모르기 때문이다. 하지만 현재 진행형으로 고민하는 부분을 읽을 때는 갑자기 집중력이 높아질 것이다!

흥미를 잃어버리지 않고 이 책을 읽으려면 구성 방식에 주목할 필요가 있다. 이 책은 테크리드(기술 선임)부터 팀 하나 관리, 팀 여럿 관리, 팀을 관리하는 매니저 관리, 전사 관리 순으로 사원부터 CTO에 이르기까지 단계마다 필요한 역량과 자세를 설명하고 있으므로, 실제로 내가 처한 상황에 대입해 과거에 내가 어떻게 행동했고 주변 사람들이 어떻게 행동하는지 떠올리면서 읽으면 단숨에 독파가 가능할 것이다. 단, 해외 사례이므로 직급이나 직책이 한국과는 살짝 다르다는 사실을 알고 가면 좋을 것 같다. 가장 혼란이 큰 직책이 부사장(Vice President)인데, 한국과는 달리 미국은 기술적으로 가장 숙련된 매니저를 지칭하므로 팀을 관리하는 매니저 관리와 전사 관리 부분을 읽다가 CTO가 VP 여럿을 관리해야 한다는 내용에서 "아니 이게 무슨 이야기야?"라고 당황하지 말기 바란다.

저자가 개발쪽에서 CTO로 가는 경로를 밟았기에 '조직을 디버깅'한다는 내용이나 코딩 감을 잃어버릴까 걱정하는 매니저들에 대한 조언 등 표현이나 내용 전개가 기술쪽으로 접근하고 있지만 여전히 비즈니스 적인 가치를 추구하기 위한 여러 가지 절충안을 제시하고 있기에 이 부분이 마음에 들었다. 그리고 표지 덕분에 이 책 저자가 개발 테크 트리를 타신 여성분이라는 사실을 놓칠지도 모르겠다(나는 저자 이름을 보자마자 저자가 여성분이네?라고 바로 알았다. ㅎㅎ). 보너스로 Y 콤비네이터 인터뷰 내용을 올려드린다.

한 줄 요약: IT 부문에서 경력 관리에 항상 고민이 많은 분들께 추천한다. 특히 서시히 만랩에 가까워지고 있는 중간 관리자들이 읽으면 여러 가지 도움이 되는 내용이 많을 것이다.

EOB

월요일, 6월 08, 2020

[B급 프로그래머] 2020년 6월 6일 개발자 이야기(발표 자료)

(Pixabay로부터 입수된 Margit Wallner님의 이미지 입니다.)

2020년 6월 6일자 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 저는 왜 이렇게 터미널, 콘솔 환경이 싫은걸까요
  • 비전공자로 자바 백엔드 개발 시작하기
  • streamhut – 터미널 스트리밍하기
  • 오픈소스 모니터링 솔루션 소개
  • 윈도우에서 심볼릭 링크 만들기
  • Zero-day in Sign in with Apple
  • GPU를 사용하는 빠른 터미널 alacrity
  • 스타트업 개발 의뢰 받을 때 자주 듣는 질문들
  • SpaceX의 소프트웨어/하드웨어 스택
EOB

토요일, 6월 06, 2020

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

(오늘의 짤방: https://writtenkitten.co via @hamachee)
  1. 빅데이터/인공지능
  2. 읽을거리

보너스:

수요일, 6월 03, 2020

[B급 프로그래머] 2020년 5월 30일 개발자 이야기 자바 25주년 기념 특집(발표 자료)

(Pixabay로부터 입수된 Margit Wallner님의 이미지 입니다.)

2020년 5월 30일자 자바 25주년 기념 특집 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 자바 25주년 기념 특집
EOB

월요일, 6월 01, 2020

[B급 프로그래머] 2020년 5월 30일 개발자 이야기(발표 자료)

(Pixabay로부터 입수된 Margit Wallner님의 이미지 입니다.)

2020년 5월 30일자 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • Vim 도대체 왜 쓰는가
  • CORS는 왜 이렇게 우리를 힘들게 하는걸까?
  • 스노우 팩: 현대적인 웹을 위한 빌드 시스템
  • JWT 디코더
  • 복고의 도래 Latex.css & XP.css
  • 소셜로그인, 통합이 어려우면 한 개만 사용하게 만든다
  • Visual Studio Code: A Power User’s Guide
  • 나는 nginx 설정이 정말 싫다구요
  • 윈도우 파워토이 오픈소스로 돌아오다!
  • 윈도우 8이상에서 무선 네트워크 우선 순위 조정하기
EOB