토요일, 4월 20, 2019

[독서광] 계산기는 어떻게 인공지능이 되었을까?

출간에 앞서 미리 첫페이지부터 마지막 페이지까지 다 읽어본 책이 있어 독자 여러분들께 소개드리려 한다. 오늘의 주인공은 바로 계산기는 어떻게 인공지능이 되었을까?라는 책이다. 이 책의 부제목은 '주판에서 알파고까지 거의 모든 컴퓨팅의 역사'인데, 정말 주판에서 시작해 해석기관과 에니그마를 찍고 진공관 시절의 거대한 컴퓨터를 시작으로 메인프레임과 미니컴퓨터를 거쳐 상자만큼 작아진 개인용 PC까지 컴퓨터 발전사를 짚는다. 그러고 나서 인터넷으로 출발해 엄청난 데이터를 모아 인공지능 기술이 발전하고 양자컴퓨팅까지 발전하는 방향을 제시한다. 이 책을 집필한 저자는 앨런 튜링의 조카인 더멋 튜링으로 너무나도 빠르게 발전한 컴퓨터 역사의 과거와 현재를 연결하는 임무를 제대로 수행했다는 생각이다.

출판사 리뷰 요청을 받아 읽고 나서 작성한 간략한 독후감을 보면 이 책의 특징을 눈치챌 수 있을 것이다.

시원시원한 컬러 화보와 함께 컴퓨터의 역사를 주판부터 인공지능과 양자 컴퓨터에 이르기까지 쉽게 풀어 쓴 책. 반드시 알아야 할 개념, 흥미로운 뒷이야기, 중요한 인물과 회사와 제품 소개를 일목요연하게 정리함으로써 컴퓨터 분야에서 큰 그림을 보고 싶은 분들께 어디서 시작해서 어디로 갈지 학습 방향성을 잡아준다.

본문에서 정말 흥미로웠던 글을 하나 인용한다.

1789년 프랑스 대혁명 이후 한 가지 문제가 생겼다. 수많은 귀족이 단두대에서 목이 잘려 죽은 탓에 이발사들의 할 일이 없어진 것이다. 먹고살기 위해 이발사들은 새로운 일이 필요했다. 한 수학자가 아이디어를 냈다. 만약 실직한 이발사가 충분히 풀 수 있을 만큼 간단한 계산 업무가 있다면 이발사를 계산 전문가로 고용할 수 있다는 아이디어였다. 간단한 계산 업무는 피라미드 방식을 사용해 만들었다. 맨 꼭대기 가장 어려운 문제는 수학 전문가의 몫이었다. 중간 단계에서는 문제를 수많은 덧셈과 뺄셈으로 조각조각 나누었다. 맨 아래 마지막 단계는 이발사의 몫이었다. 중요한 일은 아니었지만 그들에게 다시 할 일이 생겼다. 이 일은 배비지에게 영감을 주었다. 그가 생각해 낸 기계적 계산법을 사용하면 맨 아래 단계에서는 덧셈이나 뺄셈만 하면 되었다.

요즘에는 이런 단순하기 이를 때 없는 계산을 GPU라는 전기 많이 먹는 물건이 열심히 수행하고 있다. ;)

결론: 덧셈뺄셈 도구에서 복잡한 정보 처리 도구로 변신한 컴퓨터에 대한 재미있는 일화와 인물과 발전 추이를 알고 싶다면 이 책을 읽어보시라. 추천.

토요일, 4월 13, 2019

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

(오늘의 짤방: 항상 인간 자체가 문제였다 via @if1live)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB

금요일, 4월 12, 2019

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

<기계는 어떻게 생각하고 학습하는가>에 나온 인공지능의 발달사 via @syjkorea
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: 금융과 딥러닝 - 금융 영역에서의 딥러닝은 어떻게 다른가?
EOB

토요일, 4월 06, 2019

[B급 프로그래머] 프로그래밍의 황금율은?

Quora를 읽다보니 오늘은 What are the golden rules of programming?이라는 제목이 눈에 띄어 재미있는 대답을 독자 여러분들께 소개한다.

  • 남들이 읽기 쉽게 만들어라. 모두가 신경쓴다.
  • 필요 이상으로 복잡한 코드 트릭을 부리지 마라. 아무도 신경쓰지 않는다.
  • 문제의 100%를 이해하고, 문제의 90%를 풀기 위해 설계하라.
  • 마지막 20% 노력은 공학에 투입되는 비용의 90%를 차지한다.
  • 설계할 때, 3년에서 5년 동안 살아남게 만들어라. 그 이후에는 어떻게든 다시 작성해야 마땅하다.
  • 소프트웨어 공학은 프로세스다. 초기 요구사항에 너무 과적합하게 만들지 말고, 미래에 대응할 수 있게 유연하게 유지할 필요가 있다.
  • 먼저 해결하고, 다음으로 정리하면서 배워라. 그 다음으로 배운 내용을 활용해 설계의 깊이를 더하자.
  • CPU는 저렴하다. 최적화에 목숨걸지 마라.
  • 다른 사람들이 더 많이 할 수 있도록 초점을 맞춰라. 1시간 동안 작업한 결과로 사람들이 10시간 짜리 결과물을 만들어낼 수 있어야 마땅하다.

"과도한 엔지니어링을 피하고 다른 사람들과 협업할 수 있게 프로그램을 만들자" 정도로 요약할 수 있겠다. EOB