토요일, 9월 17, 2016

[독서광] 관저의 100시간: 후쿠시마 원전 사고, 재난에 대처하는 컨트롤 타워의 실상을 파헤친다

작년에 구입해놓고 차일피일 미루다 이번에 지진을 직접 느끼고 나서 갑자기 후다다닥 읽어버린 '관저의 100시간'에 대해 정리해보았다. 우선 이 책의 가장 큰 특징은 프롤로그에 너무나도 잘 드러난다.

논평과 추측은 배제했다. 나는 오로지 팩트로 말하겠다.

저자가 취재 도중에 상당히 열 받았으리라고 추측이 가능한 부분이 많았지만 잘도 참았다는 생각이 들었다. 가장 마지막 나오는 후주에는 누가 어떤 경위로 언급했는지 빽빽하게 적혀 있었고, 도쿄 전력 쪽에서 소송을 걸 경우를 대비해 반론이 있을 경우 취재원을 공개할 용의가 있다는 문구가 여러 차례 나왔다. 다양한 채널로부터 압력이 들어왔을 것 같다. 한국 같으면 이런 책이 나올 수 없지 않을까 하는 생각이 들었다.

이 책은 부제에서 잘 표현하듯이, 후쿠시마 원전 사고를 수습하기 위한 관가의 움직임을 중심으로 어떤 일이 있었는지를 상세하게 소개한다. 한국이야 "청와대는 재난 컨트롤 타워가 아니다"라는 공식 입장 표명이 있었기 때문에 어떨지 모르겠는데, 일본의 경우에는 후쿠시마 원전 사고가 발생했을 때 총리 관저에 컨트롤 타워가 만들어졌다. 따라서 여기서 어떤 일이 있었는지를 파악하는 작업이 무척 중요하다. 그리고 바로 이 책의 목표이기도 하다.

지진에 대한 재난 대응 절차가 체계적으로 잡혀 있는 일본조차도 원전 문제에 대해 속수무책인 상황인데, 책을 읽는 도중에 한국은 과연 어떨지 생각했다가 어느 순간 더 이상 생각을 하지 않기로 했다. 국민안전처 관계자의 최근 발언을 보면, 한국에서 후쿠시마 원전 사고에 필적하는 사고가 터지면 어떻게 될지 안 봐도 블루레이기 때문이다.

북한이 핵실험을 감행하면서 지표 밑으로 충격파가 영향을 미쳤을 가능성도 있다.

최대한 정보를 숨기면서 수동적으로 움직이는 관료 집단, 정작 중요한 정보를 제공하지 않으며 어떻게든 손실을 피하려는 전력 회사, 이권이 있을 때는 번개처럼 등장하다가 책임질 상황에서는 사라지는 학계 인사들이 앙상블을 이루면서 파국으로 치닫는 상황을 읽고 있으려니 많이 괴로웠다. 그래도 중간에 일본이 과연 선진국이라는 생각이 들게 만드는 일화가 나와서 깜짝 놀랐다. 계획 정전을 실행할 경우 집에서 요양하는 환자들의 목숨이 위태롭기 때문에 개별로 연락할 시간을 벌기 위해 필사적으로 노력하는 모습이나 이재민들의 대피와 불편함을 최대한 줄이기 위해 휘발유 보급까지 걱정하는 모습을 보면서 일본과 한국 사이에 벌어진 격차(not 경제적)가 얼마인지 갸늠조차 하기 어렵다는 생각이 들었다.

정전사태와 매뉴얼이라는 글을 적으면서도 한숨을 쉬었지만, 한국에서는 매일 큰 사고 없기를 바라면서 정화수 떠놓고 기도하는 기복신앙을 넘어서긴 틀렸다(털썩). 트위터에서 읽은 문구 하나를 소개하며 마무리한다(via @hjm4606).

미국: 새로운 매뉴얼을 창조
일본: 매뉴얼대로만 움직임
한국: 매뉴얼이 없음

결론: 한국에서 대형 사고가 터지면 어떻게 되는지 이미 수차례 목격하셨지만, 바닥 아래 지하실이라고 더 큰 대형 사고가 터질 경우 어떤 일이 벌어질지 궁금하신 분들이라면 이 책을 꼭 읽어보시기 바란다. 그리고 Managing the Unexpected도 읽으면 정말 많은 도움이 되리라 확신한다.

EOB

토요일, 9월 10, 2016

[B급 프로그래머] 9월 1주 소식 정리

시원한 맥주짤을 올리면서 소식을 정리해드리겠다(via https://twitter.com/DANIEL_AeHoBak).

  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리

마무리 짤방 하나: 노르웨이 사진가 셀 산베가 나비 무늬에서 찾아낸 알파벳(via https://twitter.com/waitoreke)

EOB

토요일, 9월 03, 2016

[B급 프로그래머] 6월 2주 소식(예전 소식)

(오늘의 짤방: "만약 천재성이 어떠한 공통 분모가 있다면, 나는 관심의 폭과 여러 분야 사이에서 유용한 유사성을 이끌어 내는 능력을 우선 꼽고 싶다." via @John_Grib)

계속해서 지난 6월 2주에 정리한 소식도 올려드린다.

  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리

[B급 프로그래머] 8월 마지막주 소식 정리

(코드 리뷰 중인 야옹이 via https://twitter.com/laynts/status/769496963528011776/photo/1)

한 동안 게으름을 부리고 있었는데, 정신을 차리고 다시 소식 정리 작업에 나서겠다. 일단 일주일치 정보부터 정리해보았다.

  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리
EOB

토요일, 8월 27, 2016

[독서광] 생각하는 뇌, 생각하는 기계

그 어느 때보다 무더운 여름도 지나고 이제 가을로 접어들고 있으니 슬슬 블로그도 다시 시작해야겠다는 여유가 생긴다. 오늘은 간만에 서평을 하나 올려드리겠다. 팜 파일럿으로 유명한 제프 호킨스가 인공 지능과 관련해 많은 생각거리를 제공하는 '생각하는 뇌, 생각하는 기계'가 오늘의 주인공이다.

몇 년 전에 [일상다반사] 호프스태터와 인공지능이라는 글을 하나 올려드렸는데, 사람이 생각하는 방식 그대로를 컴퓨터에게 가르치려고 시도하는 사람이 호프스태터 뿐만이 아니라는 사실을 알게 되었다. 제프 호킨스는 그 당시 누구도 생각하지 못했던 그래피티라는 손쉬운 필기 입력 수단을 제공함으로써 PDA 세상을 싹슬이 해버린 팜 파일럿의 엄청난 성공을 뒤로 하고 뉴멘타라는 회사를 설립해 진정한 기계지능(Machine Intelligence) 연구에 집중하고 있다. 먼저 책을 읽기 전에 다음 동영상을 한번 감상해보시기 바란다(그러면 '생각하는 뇌, 생각하는 기계'가 어떤 내용으로 전개될지 확실하게 알게 될 것이다).

(한국어 자막이 담긴 영상은 테드의 '제프 호킨스 - 어떻게 뇌과학이 컴퓨터를 바꿀까' 참조)

이 책은 지능(원서 제목이 'On Intelligence'라는 사실을 기억하고 있으면 좋겠다)과 관련해 이 책을 지을 시점까지 연구된 최신 결과들을 알기 쉽게 설명하고 있다. 요즘 딥러닝으로 엄청나게 뜨고 있는 신경망을 시작으로 사람의 뇌와 관련해 여러 가지 지식을 정리한다. 그리고 나서 가장 중요한 기억의 비밀을 파헤친 다음에 지능의 새로운 기본 틀인 예측으로 넘어간다. 그거고 나서 피질의 동작 원리와 의식/창조성에 대해 집중한다. 마지막으로 지적 기계의 가능성과 장점에 대해 소개하면서 막을 내린다.

일반적인 인공지능 서적과는 달리 이 책은 철저하게 사람의 두뇌에 집중한다. 청각/촉각/시각 등 모든 감각을 동원해 세계에 대해 끊임없이 예측을 하며 각 예측들이 대단히 완벽하게 통합된다는 사실(예: 걸으면서 발을 내딛일 때마다, 뇌는 발의 움직임이 언제 멈출지 발에 닿은 물질이 얼마나 많은 반응을 줄지를 예측하며, 계단에서 발을 헛디디는 순간 예측에 뭔가 문제가 생겼음을 깨닫는다. 익숙한 멜로디를 들을 때, 다음 음이 들리기 전에 이미 머리 속에서 다음 음을 듣는다), 뉴런은 밀리초 단위로 동작하므로 나노초 단위로 동작하는 CPU에 비해 엄청 느리다는 사실, 기억에는 순서가 중요하므로 알파벳을 역순으로 발음하거나 노래를 거꾸로 부르기 어렵다는 사실, 여러 감각에서 나온 패턴들이 사실상 두뇌 내부에서는 동일하다는 사실은 이 책을 읽으면서 다시 한번 깜짝 놀란 내용이다.

책 후반부에 나오는 창조성에 대한 이야기는 기존 고정 관념에 정확하게 반하는 내용을 담고 있다.

창조성은 고도의 지능과 타고난 재능을 필요로 하는 비범한 특성이 아니던가? 그렇지 않다. 창조성은 그저 유추를 통해 예측을 하는 것이라고 정의할 수 있으며, 피질의 어디에서든 나타나고, 깨어 있을 때 당신이 계속 하는 일이기도 하다. 창조성은 낮은 수준의 것부터 높은 수준의 것까지 하나의 연속체를 이루고 있다.

창조성에 버금가는 인간의 중요한 특성인 상상 역시 예측을 입력으로 돌리는 신경 메커니즘으로 설명한다.

6층의 세포들은 계층 구조의 하위 영역으로 발을 뻗고 있지만, 거꾸로 4층의 입력 세포들로도 발을 뻗고 있다. 따라서 한 영역의 출력이 다시 자신의 입력이 될 수도 있다. 눈을 감고 하마를 상상해보면, 피질의 시각 영역은 실제로 하마를 보고 있을 때와 똑같이 활성을 띌 것이다. 당신은 상상하는 것을 본다.

인문학을 중요하게 여기는 분들께서 이 책을 읽으면 위와 같은 기계론적인 설명에 씩씩거릴지도 모르겠지만, 최근 딥러닝을 필두로 사람보다 더 나은 실리콘(?) 사람들이 출현함에 따라 사람도 아주 특이하고 이상한 생명체가 아니라는 결론에 도달할지도 모른다.

결론: 인공지능과 기계지능에 관심이 있는 분이라면 반드시 읽어보기 바란다. 강력 추천!

EOB

월요일, 7월 25, 2016

[일상다반사] 프론트엔드 엔지니어 구인

최근에 여러 가지 바쁜 일이 많아서 블로그에 거미줄이 많이 쳐진 상황이다. 다시 일상에 복귀했으므로, 기념으로 글을 하나 올려본다. 놀랍게도 오늘 주제는 구인이다. 블로그를 열고 나서 구인글은 처음이지 않나 싶다.

다름이 아니라, 엑셈에서 SaaS 형 성능관리 소프트웨어인 APM(Application Performance Management) 제품 개발을 진행하고 있는데, 함께 작업할 수 있는 호기심과 상상력이 풍부한 프론트엔드 엔지니어를 모시려고 한다. 혹시나 다음 조건을 읽어보시고 마음이 동하시는 프론트 엔드 엔지니어분들께서는 jrogue 에뜨 gmail.com 으로 지원을 부탁드리겠다. 노파심에서 말씀드리지만 울트라 초사이언인 개발자를 뽑을 의도는 없으므로 각 조건을 빠짐없이 AND로 연결할 필요는 없다.

  • HTML/CSS 명세를 밑줄 그어가면서 읽어보신 분
  • 자바스크립트 완벽 가이드HTTP 완벽 가이드를 완독하신 분
  • 자바스크립트의 메모리 관리 방법, 단일 스레드에 따른 콜백 매커니즘, 가베지 컬렉션 알고리즘, 스코프 규칙을 이해하시는 분
  • D3 등 차트 관련 라이브러리를 사용하다가 불편해서 직접 코드를 열어 손을 본적이 있는 분
  • 시각적인 웹 페이지 구성을 넘어서 웹 애플리케이션 관점에서 큰 틀을 잡고 작업을 하시는 분
  • 디자인 가이드라인에 따라 다양한 브라우저, 다양한 해상도, 다양한 폰트 렌더링 엔진을 고려해 설계와 구현을 하시는 분
  • AJAX를 넘어서 JSON 형태의 데이터 전송에 Websocket을 사용해보신 분.
  • SPA(Single Page Application)이 무엇이며, 어떤 이유로 이런 기술이 등장했는지 이해하시는 분
  • HTTP/2가 HTTP/1.1에 비해 개선된 사항을 정리하실 수 있는 분
  • CORS(Cross Origin Resource Sharing)를 고려하면서 XSS(Cross Site Scripting)와 CSRF(Cross Site Request Forgery) 공격을 방어할 수 있는 분
  • 클라이언트 쪽에서 자바스크립트 성능을 높이기 위해 여러 가지 다양한 시도를 해보신 분
  • 브라우저의 개발자 도구에 능숙하며, 메모리 누수와 자원 활용을 점검하고 자동화된 단위 테스트와 헤드리스 브라우저를 사용해 테스트를 하시는 분
  • 필요에 따라 자바스크립트 전처리 도구와 의존성 관리자를 활용하시는 분
  • 다양한 자바스크립트 오픈소스 라이브러리에 대한 경험이 풍부하신 분
  • 크롬 캔버스 등을 활용해 그리기 성능을 높여보신 분
  • 사용자 중심의 개발 철학을 중요하게 생각하시는 분

아무쪼록 훌륭한 프론트엔드 엔지니어분들께서 지원해주시기를 학수고대하고 있겠다.

EOB

토요일, 5월 21, 2016

[B급 프로그래머] 10가지 성능 실수

Top 10 Performance Mistakes라는 글이 있어 독자 여러분에게 간략하게 요즘을 소개해드리겠다. 내용은 다름이 아니라 우리가 자주 저지르는 성능 관련 실무 목록이다.

  • 10. 업그레이드하지 않음: 많은 회사들이 시스템이 충분히 빠르지 않다고 불평을 하며, 더 나은 알고리즘과 자료 구조를 찾지만, 실제로는 "업그레이드"가 필요한 경우가 많다. 운영체제, JVM이나 CLR 등을 업그레이드해야 하는데, "새로운 버전에 버그가 있을지도 모른다"며 변명을 댄다.
  • 9. 중복된 작업: 웹 페이지를 서비스하는 시스템이 아주 느린 바람에, 개발자들이 데이터베이스 문제로 생각해서 실제로 튜닝 작업에 들어갔다. 하지만 프로파일러를 돌려보니 ORM을 7000번 호출하는 루프가 존재했기에 페이지 읽기가 느렸다. 루프를 수정하고 나니 시스템이 정상으로 돌아왔다.
  • 8. 데이터 적재: 메모리 관련 연산은 유형에 따라 다르다. 다양한 자료 구조의 성능에 대한 기초 지식이 있어야 한다. 예를 들어, 2GB 이상의 자료인 경우 자바의 HashMap이 .Net의 Dictionary보다 10배 이상 느리다. 물론 .Net이 자바보다 느린 경우도 있다.
  • 7. 너무 많은 할당: 메모리를 너무 많이 할당할 경우 가베지 컬렉터가 대규모 데이터 집합을 처리하느라 상당한 시간을 소비한다.
  • 6. 병행 프로그래밍: 특정 알고리즘에서는 병행 프로그래밍이 아주 매력적이지만, 한계와 부하가 존재한다. 암달의 법칙과 USL(Universal Scalability Law)를 생각해야 한다. 특히 병행 시스템에서 구성 요소 사이의 통신과 관련한 성능에 특히 주의해야 한다.
  • 5. TCP에 대한 이해 부족: TCP를 제대로 이해하지 못한 상태에서 마이크로서비스를 고려하는 실수가 의외로 많다. Nagle 알고리즘을 비활성화하기 위해 TCP_NODELAY를 고려하고, 여러 작은 패킷을 차례로 전송하자.
  • 4. 동기식 통신: 클라이언트와 서버 사이의 동기식 통신은 빠른 통신이 필요한 시스템에서 문제로 등장한다. 더 비싸고 빠른 하드웨어 대신 비동기식 통신을 고려하자.
  • 3. 텍스트 인코딩: JSON이나 XML과 같은 텍스트 인코딩 형식을 사용해 데이터를 전송하는 방법을 택하는 이유는 "인간이 읽을 수 있기" 때문이다. 하지만, 두 시스템 사이에서 통신이 일어날 때 사람이 읽는 경우는 없다. 물론 텍스트 편집기로 디버깅은 편하겠지만, CPU를 많이 소비하게 된다. 이진 형식을 고려하자.
  • 2. API 설계: 성능에 가장 부정적인 영향을 주는 몇 가지 실수는 API와 관련이 있다. API만 제대로 설계되더라도 불필요한 메모리 복사와 추가 처리가 필요하지 않다.
  • 1. 로깅: #1 성능 문제의 주범은 로깅에 소비되는 시간이다. 스레드를 아무리 많이 사용하더라도 로깅에 필요한 시간은 선형적으로 증가한다. 로거는 시스템에서 찾을 수 있는 최고 병목 중 하나다. 해법은 비동기식 로거 사용이다. 또한 동일한 오류를 계속해서 저장하는 방법도 피해야 한다. 처음 오류가 발생했을 때 한 번만 찍는 방안을 고안하자.
EOB

토요일, 5월 14, 2016

[B급 프로그래머] 조엘 스폴스키가 말하는 모든 개발자가 알아야 할 세 가지 기술

Stack Overflow founder Spolsky: The three skills every software developer should learn라는 글을 읽다보니 재미있는 이야기가 나와서 독자 여러분들께 요약 정리해드린다.

조엘 스폴스키에 따르면 모든 개발자다 알아야 하는 세 가지 기술은 다음과 같다.

  • 경제학: 프로그래머들은 종종 경제학을 잘 모르며, 비즈니스에 가치를 더하는 방법을 이해하지 못하기 때문이다.
  • 글쓰기: 근본적으로, 가장 성공적인 사람들은 자신의 아이디어를 가장 잘 표현하는 사람들이며, 이 능력이 뒷받침되어야 팀에서도 제대로 일할 수 있다.
  • C 프로그래밍 언어: 개발자의 이해를 높이기 위한 기술적인 토대를 제공하기 때문이다. C로 코딩하면 프로그래머에게 컴퓨터가 실제로 동작하는 방식을 더 잘 이해할 수 있게 만든다. C는 고수준 프로그래밍 언어보다 컴퓨터의 CPU가 수행하는 명령어에 더 가깝게 흉내내기 때문이다.

스폴스키에 따르면 프로그래머들은 일반적으로 두 가지 경력 계발 경로를 따르게 된다. 하나는 알고 있는 특정 프로그래밍 언어와 관련 기술에 초점을 맞추는 방법이며, 다른 하나는 전산학의 기본 원리를 이해하고 새로운 기술을 빠르게 습득하는 태도를 획득하는 데 초점을 맞춘다. 구글이나 페북 같은 전세계 최상위 기술 회사는 회사가 일하는 속력으로 인해 더 깊고 특정 기술에 매달리지 않는 유연성을 요구한다. "1년 안에 첨단 기술 회사들은 당신에게 심지어 아직 고안되지 않은 뭔가를 작업하게 만들지도 모릅니다."

스폴스키가 소프트웨어와 개발자를 바라보는 관점으로 마무리한다.

소프트웨어는 세상을 잡아먹고 있으며, 개발자들이 만든다. 프로그래머들은 미래의 스크립트를 작성하기 때문에 아주 중요하다.
EOB

토요일, 5월 07, 2016

[B급 프로그래머] 5월 1주 소식

오늘의 짤방: 문제 해결을 위한 알고리즘에 대한 지침 via @arasatasaygin

  • 문제 해결에 사용될 수 있는 표준적인 기법(또는 기교)가 있는지 확인
  • 이미 알고리즘이 개발된 문제를 살짝 변형한 문제인지 확인. 그렇다면 해당 알고리즘을 적용
  • 분할-정복 기법: 문제가 하위 문제로 분해될 수 있는지 확인.
  • 문제의 단순화된 버전을 개발하고 단순화된 문제를 위한 알고리즘 개발. 그런 다음에 원래 문제에 적합하게 이 알고리즘을 각색.
  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리

(짤방: 프로그래밍 언어들의 '잘못되었을때'에 대한 특성 맵 @ndc 16)

토요일, 4월 30, 2016

[B급 프로그래머] 끝내주는 프로그래머가 되기 위해 필요한 요건은?

Quora를 읽다 보니 What are the things required to become a hardcore programmer?라는 질문이 올라와서 한 번 정리해보았다. "끝내주는 프로그래머가 되기 위해 필요한 요건은?" 과연 무엇일까?

  1. 모르는 코드에 대해 용감하게 뛰어들어라. 익숙하지 않은 코드 기반으로 뛰어드는 행위는 불편함과 공포를 초래한다. 많은 사람들은 심지어 시도조차 하지 않는다. 만일 이런 두려움을 개의치 않는다면 훨 씬 쉽게 중요한 기술을 습득하게 되며, 이런 과정을 거치며 상당히 뛰어난 프로그래머가 된다. 오픈소스 라이브러리나 다른 팀에서 만든 라이브러리가 생각처럼 동작하지 않는다면, 디버깅을 위해 원시 코드로 뛰어드는 유연성을 제공한다. 여기서도 성장 마인드셋이 중요하다.
  2. 디버깅 기술을 완벽하게 습득하라. "예상처럼 코드가 동작하지 않는 이유가 무엇일까?" 소프트웨어 공학자로서 매일 묻는 질문이다. 효율적인 디버깅 능력은 일을 제대로 해내기 위한 공학도의 능력에 예상외로 많은 영향을 미친다. 하지만, 학교에서 제대로 가르치지 않으며 기술 면접에서도 저평가된 부문이다. 효율적인 디버깅 방법은 무엇일까? 핵심을 말하자면 과학적인 수단을 동원해 파고들면 된다.
    • 무슨 일이 일어나고 있는지 추측하자.
    • 추측이 옳다고 가정하고, 추측의 추이가 어떻게 될지 파악하자.
    • 이런 추이를 반박하는 증거를 수집하기 위해 관찰하자.
    • 모순점을 발견했다면, 추측이 틀렸으므로 다시 추측하자. 모순점을 발견하지 못했다면, 가능한 설명을 하나 확보했다.
  3. 시간을 절약하는 도구에 투자하라. 컴퓨터가 처음 등장했을 때, 컴퓨터 자원은 제한되어 있었으며 비쌌기에 프로그래머는 최대한 아껴서 사용했어야만 했다. 오늘날 아마존 클라우드 비용은 몇 푼 안 된다. 반면에 여전히 하루는 24시간이고 일주일은 7일이다. 이는 컴퓨터에 넘길 수 있는 수작업이 있다면 이를 최대한 컴퓨터에 넘겨야 함을 의미한다. 시간을 절약하는 도구와 자동화된 작업 흐름에 투자함으로써 이를 달성할 수 있다. 자동화는 밤낮을 가리지 않으며 다른 문제에 초점을 맞출 수 있게 만든다. 기계가 할 수 있는 일을 사람이 하지 마라.
  4. 반복 속력을 최적화하라. 정의된 함수 위치를 찾아 탐색하는 데 12초가 걸린다고 가정하자. 하루에 60회 비슷한 작업을 한다면, 파일을 뒤적거리는 과정에 매일 12분을 소비하는 셈이다. 텍스트 편집기에서 키보드 단축기를 충분히 익혀 12초가 아니라 2초에 가능하게 만든다면 10분을 절약할 수 있다.
  5. 시스템 수준의 사고 능력을 배양하라. 프로그래밍을 할 때, 명세에 맞춰 코드를 구현했다면, 작업이 "끝난" 것으로 간주하기 쉽다. 하지만 실제로는 빙산의 일각에 불과하다. 정말 중요한 코드를 빌드하고 배포하기 위해서는 전체 시스템 수준으로 코드 범위를 확장하게 사고 단계를 높여야 한다.
    • 코드가 다른 코드 기반이나 다른 사람이 만들고 있는 기능과 어떻게 맞아 떨어지는가?
    • 충분히 자체 테스트를 진행했으며, QA 팀에서도 만들어진 기능을 충분히 테스트했는가?
    • 코드 배포를 위해 양산 환경에 어떤 변경을 가할 필요가 있는가?
    • 새로운 코드가 다른 동작 중인 시스템의 성능이나 행동 방식에 불리한 영향을 주지 않는가?
    • 코드를 사용하는 고객이나 사용자가 예상처럼 행동하는가?
    • 코드가 예상대로 비즈니스에 좋은 영향을 미치는가?
EOB

토요일, 4월 23, 2016

[B급 프로그래머] 4월 3주 소식

(금주의 짤방: 리더쉽의 5단계. 1.능력이 뛰어난 개인 - 2.합심하는 팀원 - 3.역량있는 관리자 - 4.유능한 리더 - 5.레벨5 경영자 via @realgsong)

  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리
EOB

[일상다반사] 클린코드 복간판 판매부수 5000권 돌파 소식과 이벤트

독자 여러분들께 기쁜 소식 하나 전달해드리겠다. 엊그제 클린코드 복간판이 5000권을 돌파했다! 다른 출판사에서 처음 나온 책은 대략 1000권 정도 판매되었으리라 추정하고 있으므로 누적으로 6000권 정도 판매했다고 보면 틀림없을 것 같다. 요즘과 같은 출판계 불황에 놀라울 따름이다.

두 가지 관점에서 의의를 찾아야 할 것 같다. i) 자바 세상에서 품질이 높은 코드를 작성하기 위한 독자 여러분들의 관심이 아주 높다 ii) 좋은 책은 꾸준히 사랑 받는다.

그래서 애독자 여러분을 위한 이벤트를 준비해보았다. 우선, 신규 구매 독자를 위해 구매 영수증(오늘부터 유효하다) 인증샷을 보내주시면 세 분을 추첨해 커피 기프티콘을 선물드리겠다. 다음으로 기존 독자분들 중에서 클린 코드 책을 읽고 나서 겪은 경험담을 공유해주시면 블로그에 실어드리고 특히 가장 멋진 경험을 나눠주신 두 분에 대해 소프트웨어 악취를 제거하는 리팩토링: 구조적 설계 문제를 풀어내는 최선의 실천법과 커피 기프티콘을 선물로 보내 드리겠다. 기간은 4월 말까지다.

다시 한 번 독자 여러분들의 성원에 감사드린다. 꾸벅~

EOB

토요일, 4월 16, 2016

[독서광] 명저, 비즈니스에 답하다

몇 년 전에 [독서광] 100 Best Business Books - 당신이 찾는 비즈니스의 모든 것이라는 책을 독자 여러분들께 소개했었는데, 오늘은 이와 유사한 국내서를 한 권 소개하려 한다. '명저, 비즈니스에 답하다'라는 제목으로 나온 이 책은 세계적인 비즈니스 명저 35권을 추천하고 20권을 선별해 사례 중심으로 흥미롭고 알기 쉽게 소개하며 그 중 10권을 집중 조명하고 있다. '100 Best Business Books'가 지난 50년간 주목받은 경제경영 베스트셀러 100권을 엄선해 정리했지만, 선별한 책에 대해 아주 간략한 정보(책 주제, 책이 중요한 이유, 책이 도움을 주는 방식, 기타 참고 도서)만을 제공하기 때문에 감질맛이 났다면, '명저, 비즈니스에 답하다'는 선별된 책에 나오는 주요 내용을 요약 정리함으로써 빠른 시간 내에 필요한 내용을 습득할 수 있게 도와준다.

책은 크게 의사결정, 마케팅, 리더십, 경영전략, 혁신&창의성, 소비, 세일즈, 대인 관계, 자기 계발, 메가 트렌드라는 10가지 주제를 놓고 각 분야에서 책 두 권을 골라내어 본문에 나오는 재미있는 부분을 소개하는 동시에 의미하는 바를 정리하는 형태를 따른다. 물론 이런 유형의 책을 많이 읽어본 독자분이라면 책 내용이 다소 부족하다는 느낌이 들 수도 있지만, 어디까지나 요약과 소개라는 책의 의도 때문이므로 특별히 문제는 없어 보인다.

결론: 비즈니스에 관심이 많지만 시간이 부족한 분들께 추천한다.

EOB

토요일, 4월 09, 2016

[B급 프로그래머] 4월 1주 소식

(금주의 짤방): 충돌(collison) 위험에 처한 차량

  1. 웹/앱 소식
  2. 개발/관리도구 소식
  3. 고성능 서버/데이터베이스 소식
  4. 빅데이터/인공지능 소식
  5. 기타 읽을거리

마무리 영상:

EOB

토요일, 4월 02, 2016

[독서광] 어떻게 의욕을 끌어낼 것인가

지난 번에 소개한 성공의 새로운 심리학(빌 게이츠가 올해의 책으로 추천해서 세간의 화제가 되었었다)과 마찬가지로 오늘 소개할 '어떻게 의욕을 끌어낼 것인가' 역시 이분법적인 방식으로 세상을 바라보더라도 강력한 통찰을 얻을 수 있음을 보여준다. 이 책은 신호등의 빨간불과 파란불 같은 인간의 두 가지 동기 성향에 대해 다루는데, 하나는 손실을 최소화하고 실패를 피하려 노력하는 '안전지향'(빨간 불)이며 다른 하나는 보상을 최대화하고 기회를 놓치지 않으려는 '성취지향'(파란불)이다. 동기 성향이 중요한 이유는 우리의 일상 삶은 물론이고 업무까지도 영향을 미치기 때문이다. 특정 개인이 어떤 동기 성향을 보이느냐에 따라 일하는 스타일, 관리 방법, 동기 부여 방법이 180도 바뀌기 마련이다. 아, 이런 관점에서 타인의 동기 성향은 물론이고 자신의 동기 성향을 파악하면 남과 다른 나에 대해 고민할 필요가 줄어드니 일석이조의 효과를 얻을 수 있다다.

독자 여러분을 위해 간략한 소개 자료가 담긴 동영상을 공유해드린다.

지금부터 간단한 테스트를 한번 해보자. 나는 안전지향적인 성격이 강할까? 아니면 성취지향적인 성격이 강할까? 다음 항목에 대개 각각 1점(전혀 그렇지 않다)에서 4점(대단히 그렇다)까지 점수를 매겨보기 바란다.

  1. 평소에 나는 실수를 막고 상사와의 갈등을 피하는 데 초점을 맞춘다.
  2. 나는 내가 맡은 업무상 책임과 의무에 미홉할까 봐 걱정이 된다.
  3. 나는 일을 통해 희망과 포부를 달성할 수 있으리라 자신한다.
  4. 나는 내 직업적 목표를 달성하지 못할까 봐 자주 적정한다.
  5. 나는 직업적 성공을 달성할 방법에 대해 자주 생각해본다.
  6. 나는 일이 어떻게 잘못될 수 있을까 곧잘 상상해보곤 한다.
  7. 지금 직장에서 나의 일차적인 목표는 직업적 야망을 달성하는 것이다.
  8. 지금 직장에서 나의 일차적인 목표는 실직을 피하는 것이다.
  9. 평소에 나는 기회를 포착하고 그 기회를 향해 열심히 노력하는 데 초점을 맞춘다.
  10. 나는 장차 내가 얼마나 크게 성공할까 곧잘 상상해보곤 한다.

이미 눈치챈 분들도 계시겠지만 Q1+Q2+Q4+Q6+Q8=안정지향 점수, Q3+Q5+Q7+Q9+Q10=성취지향 점수이다. 일 개인이 안정지향적이면서 성취지향적일 수도 있다는 사실에 주목할 필요가 있다. 일의 유형에 따라 또는 일의 상황에 따라 어떤 경우는 안정지향적으로 반응하다가 어떤 경우에는 성취지향적으로 반응해도 놀랍지 않다. 성향별로 업무와 관련해 강점과 주의할 점을 정리하면 다음과 같다.

 성취지향형안정지향형
업무에서 강점창의성, 혁신, 기회 포착, 신속한 일 처리, 브레인스토밍정확성, 안정성, 일이 매끄럽게 진행되도록 하는 데 능함, 분석적 사고
주의해야 할 점지나친 낙관주의, 엉성하고 성급한 일 처리, 한꺼번에 너무 많은 일을 감당하려고 함, 계획성 부족위험 기피, 너무 느린 일 처리, 마감 시한으로 인한 스트레스, 현재 상태에 지나치게 안주함

그렇다면 성향별로 효과를 발휘하기 위해 적합한 메시지를 어떻게 던질까? 책에서는 다음과 같은 방법을 제안한다. 1) 획득(성취지향) 또는 손실(안정지향)의 관점으로 프레이밍하기, 2) 이유(성취지향) 또는 방법(안정지향) 강조하기, 3) 형용사(성취지향) 또는 동사(안정지향) 사용하기, 4) 성공 또는 실패 회피를 강조하기, 5) 변화 또는 안정성 강조하기, 6) 모험 또는 신중한 접근을 말하기, 7) 감정 또는 이성에 호소하기, 8) 활기 또는 차분한 제스처 사용하기, 9) 전체(성취지향) 또는 부분(안정지향) 강조하기

1)번 예를 들어보면 다음과 같다.

 이익에 접근손실을 회피
축구 연습다섯 번 중 적어도 세 번은 득점을 하기 바란다.다섯 번 중 두 번 이상은 실축하지 말아야 한다.
건강 관리활동적인 생활을 함으로써 얻을 수 있는 혜택은 다음과 같습니다.비활동적인 생활을 함으로써 치러야 할 대가는 다음과 같습니다.
업무 인센티브매출 목표치를 달성했을 때 발생하는 좋은 일들매출 목표치를 달성하지 못했을 경우 발생하는 나쁜 일들

2)번 예를 들어보면 다음과 같다.

 이유방법
축구 연습리그 최고의 팀이 됩시다!상대편의 단단한 수비를 뚫는 기술에 집중합시다.
건강 관리규칙적으로 운동을 하면 외모도 기분도 좋아질 것입니다.규칙적으로 운동을 하면 칼로리가 연소되고 신진대사가 활발해집니다.
업무 인센티브우수 성과자들은 빠르게 진급할 수 있습니다.상위 세 명의 우수 성과자들만 올해 승진 자격을 얻게 됩니다.

약간의 차이가 가져올 놀라운 효과에 대해 알게 되면 동기성향에 대해 새롭게 바라보게 될 것이다.

결론: 2016년 1분기 강력 추천도서이며, 특히 동기 부여와 관련해 고민이 많은 분들이라면 반드시 읽어보시기 바란다.

EOB