토요일, 12월 09, 2017

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

(오늘의 짤방: 20 years of Java evolution via @ZhekaKozlov)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB

토요일, 12월 02, 2017

[B급 프로그래머] 11월 5주 소식(빅데이터/인공지능, 가상화폐, 읽을거리 부문)

(오늘의 짤방: 아마존 응답시간 100ms 느려지면 1% 판매 하락. 1초 느려지면 고객 만족도 16% 하락. via ‏@xissy)
  1. 빅데이터/인공지능
  2. 가상화폐/블록체인
  3. 읽을거리
EOB

토요일, 11월 25, 2017

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

(오늘의 짤방: C 문자열 정리 via @fasterthanlime)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB

목요일, 11월 23, 2017

[독서광] 왓슨을 이용한 인공지능 서비스 입문

인공지능 관련해 많은 책이 쏟아져 나오고 있다. 수학적으로 접근, 데이터 관점에서 접근, 알고리즘 관점에서 접근, 프레임워크 등 개발 관점에서 접근하는 여러 가지 유형이 존재하는 데, 오늘 소개드릴 책은 조금 색다르게 서비스 관점(특히 IBM 왓슨을 중심으로)에서 접근하고 있다.

자신의 업무를 개선하고 생산성을 높이기 위해 인공지능으로 실에 어떤 일을 할 수 있을지 감을 잡아야 하는데, 인문학적(응?)으로 개론만 기술한 책을 읽자니 뜬 구름만 잡는 느낌이고, 그렇다고 수학 공식만 적힌 논문과 유사한 책을 읽자니 머리가 아프고, 다 건너뛰고 실제 구현을 위해 복잡한 코드가 잔뜩 나온 책을 읽자니 프로그래밍 언어와 개발 선행 지식부터 쌓아야 한다는 위기감은 누구나 겪는 현실임에 분명하다. 일단 잘 돌아가는 사례를 봐야 그 다음 단계로 넘어갈텐데 진입 장벽은 높고 학습 곡선은 가파르기만 하다. '왓슨을 이용한 인공지능 서비스 입문'은 최소 지식과 최소 데이터만으로 일단 인공지능 세상을 맛볼 수 있게 한다는 점에서 가치가 있다.

이 책은 IBM 왓슨이 제공하는 여러 가지 서비스를 활용해서 방문할 곳과 음식점을 추천하는 챗봇을 만들고, 얼굴 인식이 가능한 간단한 애플리케이션을 만드는 방법을 소개하고 있다. 물론 아주 복잡한 수학/컴퓨터 공학 지식이 없어도 되며, 학습 목적으로 엄청난 데이터를 수집할 필요도 없고, 기본적인 자바스크립트를 이해할 수준이면 재빠르게 돌아가는 뭔가를 만들 수 있으므로 빠르게 뭔가 직접 느껴보는(Hands-on) 출발점으로 나쁘지 않다.

하지만, IBM 왓슨이 복잡한 여러 가지 작업을 뒤에서 모두 처리해버리므로 인공지능 소프트웨어의 내부 동작 원리를 파악하고 맞춤식 소프트웨어 개발 역량을 쌓으려는 분들이라면 단순 따라하기 식의 서술 방식에 한계를 느낄수도 있다. 그럼에도 불구하고 API 설계나 워크 플로우 설계 관점에서 실제로 서비스 가능한 인공지능 시스템을 어떤 식으로 만들어야할지 힌트를 주기 때문에 서비스 관점에서 고객 편의성을 높이는 과정에 도움이 될 수 있다는 사실도 기억하면 좋겠다.

결론: 복잡한 기술적인 사안을 검토하고 학습할 시간이 부족한 상황에서 인공지능 서비스를 실제 프로토타입으로 간단하게 구현하고 싶은 분이나 IBM 왓슨 서비스가 어떻게 구성되어 있고 어떤 범위까지 어느 정도 정확한 결과를 제공하는지 파악하고 싶은 분들께 추천한다.

장점이자 단점: 심도 깊은 인공지능 학습을 위한 책은 아니다.

EOB

토요일, 11월 18, 2017

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

(오늘의 짤방: Programmers' hardest tasks via @lifedefrager)
  1. 빅데이터/인공지능
  2. 가상화폐/블록체인
  3. 읽을거리
(보너스: Marginalized people are over-mentored and under-sponsored via @kosamari)
EOB

토요일, 11월 11, 2017

[독서광] 현장중심형 스마트팩토리

최근 들어와서 4차 산업혁명과 스마트팩토리라는 단어가 언론에 노출되는 빈도가 부쩍 늘고 있다. 일시적인 유행어인지 아니면 정말 유의미한 변화를 반영한 용어인지는 시간이 지나봐야 알겠지만, 최근 현장 상황을 보면 변화의 조짐이 있음은 분명하다. (특히 앞서가는 기업에서는) 공장자동화라는 목표는 이미 상당 수준 달성했지만, 지속적으로 경쟁력을 확보하려면 이를 뛰어넘어야 하므로 새로운 뭔가를 찾아야 한다. 바로 여기서부터 4차 산업혁명과 스마트팩토리가 시작되지 않나 싶다. 하지만 용어와 개념만 앞선다면 텅 빈 깡통이나 다를 바 없기에 늘 현장과 긴밀하게 엮어서 고민해야 한다. 오늘 소개할 책은 '현장중심형'이라는 제목이 강조하듯이 현장에서 바라본 스마트팩토리에 대한 이야기를 담고 있다.

IoT나 빅데이터는 사실상 IT(정보기술) 관점에서 현장에 이러저러한 개념이 필요할 것으로 예상해서 나온 기술로 볼 수 있다. 하지만 현장에서는 OT(제조운영기술) 관점에서 적용 가능한 기술을 원하지 단순히 첨단 기술이 있다고 무조건 도입하지는 않는다. 당연한 말이지만, 생산 과정에서 부가가치를 높이는 방법을 찾아내어 올바른 곳에 적용해야 성공할 가능성이 높아지기 때문이다. IT 부문에 속한 사람들이 OT를 이해해야 한다는 문제가 생긴다. 물론 개발자들이 현장 상황을 경험적으로 이해하고 있다면 좋겠지만, 실천하려면 여러 가지 어려움이 많으므로 간접적으로라도 현장을 맛봐야 한다. 오늘 소개하는 200페이지 남짓한 이 책이 출발점으로 좋지 않을까 생각이 든다.

이 책은 실제 일화를 중심으로 공장자동화에서 스마트팩토리로 옮겨가기 위한 방안을 사람 중심으로 풀어내고 있기 때문에 현장과 호흡을 맞추는 과정에서 필요한 여러 가지 선행 지식을 제공한다. 현장의 생산라인에서는 AI와 완전 자동화로 인한 실직의 우려성으로 인해 IoT나 스마트팩토리에 대해 상당한 두려움을 느끼고 있을테니까 아무리 자동화 수준이 높아지더라도 사람을 중심에 놓아야 한다는 당위성과 배경 논리를 만들어 공유할 필요가 있다.

책 내용을 살짝 엿보려면 한국능률협회 컨설팅에서 제공하는 '제 4차 산업혁명의 진화 스마트팩토리' 연재 블로그 글을 읽어보면 도움이 될 것이다.

결론: 빠른 시간 안에 스마트팩토리가 무엇인지 왜 중요한지 맛보고 싶은 IT 분야의 개발자들에게 추천한다. 스마트팩토리 도입을 시작하는 OT 분야의 관리자들도 개론서로 읽어보면 머리 속에서 큰 그림이 그려질 것이다.

EOB

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

(오늘의 짤방: 아이폰 X를 위한 missing manual via @JoannaStern)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
(보너스: 죽은 코드의 위험성 @amyengineer)
EOB

토요일, 11월 04, 2017

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

(오늘의 짤방: 삶은 엉망진창인데 결국엔 모든게 제대로 돌아갈때. via @blackbox0209)
  1. 빅데이터/인공지능
  2. 가상화폐
  3. 읽을거리
EOB

토요일, 10월 28, 2017

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

(오늘의 짤방: 그냥 먹고 살기도 이렇게 어려운데. via @gaddongyi)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
(보너스: that's 279 thousand cores. via @RDOcommunity)
EOB

토요일, 10월 21, 2017

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

(오늘의 짤방: 주요 주류와 음료의 칼로리)
  1. 빅데이터/인공지능
  2. 가상화폐
  3. 읽을거리
EOB

토요일, 10월 14, 2017

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

(오늘의 짤방: High Context 문화 via @kate20131006)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB

일요일, 10월 08, 2017

[독서광][B급 프로그래머] 코딩 트레이닝

오늘은 정말 간만에 프로그래밍 관련 서적을 하나 소개하겠다. '코딩 트레이닝'이라고 제목이 붙어 있기 때문에 뭔가 프로그래밍을 잘하기 위한 훈련 방법을 다룰 책처럼 보이지만, '새로운 언어를 배울 때 다시 풀어보는 57개 연습문제'라는 부제가 정확하게 이 책의 성격을 드러내듯이 특정 프로그래밍 언어(이 책에 나오는 대다수 문제는 프로그래밍 언어에 중립적인 특성이 있다. 물론 C나 자바로 풀려면 번잡해져서 머리 아픈 경우가 있긴 하다)를 배우는 과정에서 도전할만한 연습 문제가 핵심이다.

요즘은 과거에 비해 워낙 프로그래밍 과정에서 알아야 할 내용이 많기 때문에 간단하게 연습할만한 프로젝트를 찾기가 점점 더 어려워지고 있는데, 이 책은 초보자뿐만 아니라 중급자에게도 몸을 풀기에 적합한 운동장을 제공한다. 실제 구성과 목차를 확인하고 싶다면 인사이트 출판사에서 제공하는 미리보기(목차와 머리말, 실전 문제 2개 포함)를 살펴보면 좋겠다. 미리 보기에 나오는 문제는 가장 초보적인 내용을 담고 있지만, 뒤로 갈수록 복잡해지고 난이도가 높아지므로 별거 아니라고 얕보면 안 된다. 실제 깃허브에서 이 책의 원서 제목인 "Exercises for Programmers"를 찾아보면 예상외로 끝가지 문제를 푼 경우를 찾기가 어렵다는 사실을 쉽게 확인할 수 있다(하스켈을 사용해 거의 다 푼 사례를 찾기는 했다.).

이 책의 가장 큰 특징은 해답이 없다는 점이다. 하긴 프로그래밍 언어가 워낙 다양하므로 모든 해답을 실을수도 없을 뿐더러, 도전 과제까지 포함할 경우 경우의 수가 상당히 많아지게 되므로 이중고를 겪을 가능성이 높다. 따라서 수고스럽겠지만 본인이 책에 나온 힌트와 인터넷을 참조해 모든 문제를 해결해야 한다. 인사이트 출판사에서 초보 개발자들을 위해 야심차게 깃허브에 문제 풀이 방법 공유 저장소를 개설했지만, 조금 썰렁한 느낌이라서 파이썬 개발자를 위해 발토비와 함께 깃허브 Exercises for Programmers (코딩 트레이닝) 저장소를 열어 기본적인 문제 풀이 방법을 공유하려 한다(이 글을 적고 있는 현재 46/57까지 완료한 상황이며 10월 내로 모든 문제에 대한 풀이 방법을 올리려는 목표로 열심히 뛰고 있다). 문제 풀이 과정에 부족한 점이 많더라도 양해해주시고, 혹시 더 좋은 해법이 있으면 PULL 리퀘스트를 주시면 더욱 좋겠다.

결론: 프로그래머라면 필요에 따라 새로운 프로그래밍 언어를 습득해야 경쟁력을 확보할 수 있는데, 그 과정에서 이 책을 참조하면 도움이 될 것이다.

보너스: 이 책에서 다루는 프로젝트보다 조금 더 어려운 프로젝트가 필요하면 Mega Project List(A list of practical projects that anyone can solve in any programming language.)를 참조하면 좋겠다.

EOB