알라딘

헤더배너
상품평점 help

분류

이름:테크 트랜스 그룹 T4

최근작
2021년 7월 <그래프 알고리즘>

구글 애널리틱스로 하는 데이터 분석

대부분의 기업들은 온라인 비즈니스 또는 마케팅을 위한 웹사이트를 운영한다. 이러한 기업들은 오래 전부터 기업에서 운영하고 있는 웹사이트에서 발생한 웹 로그 데이터들을 마케팅에 이용하기 위해 저장하고 분석해왔다. 최근에는 기업뿐만 아니라 개인들도 쇼핑몰이나 홈페이지, 개인 블로그를 운영하고 있으며, 이러한 웹 서비스 제공을 통해 수익을 창출하고자 하는 사람들이 많이 증가했다. 이러한 사람들은 더 많은 수익을 얻는 데에 자신의 웹사이트가 얼마나 효과가 있는지를 궁금해 하고, 유입되는 이용자들의 행동 패턴을 알고자 한다. 그러기 위해서는 웹 로그 데이터와 이를 측정할 수 있는 측정 도구가 필요하다. 즉 구글 애널리틱스와 같은 웹 로그 분석 도구가 필요함을 의미한다. 그러나 이러한 도구를 이용해서 많은 데이터들을 수집한다 하더라도 이러한 데이터들을 제대로 이해하지 못한다면 무용지물이다. 또한 애초에 목표를 정하지도 않고 데이터를 수집한다면, 데이터 자체가 무용지물이 될 것이다. 이럴 때 필요한 것이 이 책이다. 이 책에서는 구글 애널리틱스라는 웹 로그 분석 도구에 대한 소개 및 사용법만 설명하는 데에 그치는 것이 아니라, 데이터가 실제로 의미하는 바를 설명하며, 웹사이트 목표에 적합한 데이터를 수집하고 이러한 데이터들을 이용해서 더 나은 전략을 세울 수 있게 도와준다. 그리고 학습한 내용들을 적용할 수 있는 샘플 웹사이트를 제공하고 있기 때문에 현재 운영 중인 웹사이트에 직접 테스트하는 모험을 하지 않아도 된다. 이 책의 내용을 차근차근 따라하다 보면 구글 애널리틱스를 단순히 이용하는 데에 그치는 것이 아니라 전략적으로 활용 가능하게 될 것이라고 믿는다. 구글 애널리틱스를 적용해 성공적인 웹사이트를 운영하게 되길 바란다. 이 책은 『Google Analytics Demystified』 원서 제1판을 기반으로, 개정판 내용을 취합해 증보한 버전이다. 2판의 주요 변경사항을 반영해 도움이 되도록 재배치했다. 이 책을 통해서 구글 애널리틱스 최신 기술을 이해하는 데 많은 도움이 되었으면 한다.

구글 애널리틱스로 하는 데이터 분석 3/e

대부분의 기업은 온라인 비지니스나 마케팅을 위해 웹사이트를 운영한다. 기업들은 오래 전부터 기업에서 운영하고 있는 웹사이트에서 발생한 웹 로그 데이터들을 마케팅에 이용하기 위해 저장하고 분석해왔다. 최근에는 기업뿐만 아니라 점차 많은 개인들이 쇼핑몰이나 홈페이지, 그리고 개인 블로그를 운영하고 있으며, 이와 같은 웹 서비스 제공을 통해 수익을 창출하고자 하는 개인이 많이 증가했다. 이러한 사람들은 좀 더 많은 수익을 얻는 데 자신의 웹사이트가 얼마나 효과가 있는지를 궁금해 하고, 유입되는 이용자들의 행동 패턴을 알고자 한다. 그러기 위해서는 웹 로그 데이터와 이를 측정할 수 있는 측정 도구가 필요하다. 즉, 구글 애널리틱스 같은 웹 로그 분석 도구가 필요하며, 이러한 분석 도구를 제대로 활용할 수 있는 기술을 아는 것이 경쟁력 향상에 매우 큰 영향을 미칠 수 있다. 그러나 도구를 이용해 많은 데이터를 수집하더라도 데이터를 제대로 이해하지 못한다면 무용지물이다. 이뿐만 아니라 애초에 목표를 정하지도 않고 데이터를 수집한다면 데이터 자체가 무용지물이 될 것이다. 이때 필요한 것이 바로 이 책이다. 이 책에서는 구글 애널리틱스라는 웹 로그 분석 도구에 대한 소개 및 사용법만 설명하는 데 그치지 않는다. 데이터가 실제로 의미하는 바를 설명하고, 웹사이트 목표에 적합한 데이터를 수집해 이 데이터를 이용해서 좀 더 나은 전략을 세울 수 있게 도와준다. 또한 최신 구글 애널리틱스를 기준으로 향상된 데이터 처리 방법, 데이터 수집 방법, 데이터 분석 방법을 알려주며, 구글이 제공하는 데이터 수집에 대한 많은 내용을 깊이 이해할 수 있도록 설명해준다. 그 외에 구글 애널리틱스 공인 전문가 자격시험에 대비하기 위한 내용도 많이 추가돼 이를 준비하는 많은 분께 도움이 될 것이다. 시험 문제에 대한 많은 내용을 포함하고 있고, 테스트 문제까지 제공해 복합적인 대비가 될 수 있게 구성돼 있다. 이 책의 내용을 차근차근 따라가다 보면 구글 애널리틱스를 단순히 이용하는데 그치는 것이 아니라 전략적으로 활용 가능하게 될 것이라고 믿는다. 구글 애널리틱스를 적용해 성공적인 웹사이트를 운영하길 바란다.

그래프 알고리즘

그래프 알고리즘은 오래 전부터 일상생활에서 많이 활용돼 왔다. 특히 스마트폰의 지하철 애플리케이션이나 자동차의 내비게이션은 자주 사용한다. 서울역에서 강남역까지의 가장 빠른 길을 찾으려고 지하철로 이동할 수도 있고, 자가용으로 이동할 수도 있다. 하지만 어떻게 가야 가장 빨리 도착할 수 있는지는 판단하기 어렵다. 이러한 어려움을 해결할 때 그래프 알고리즘이 사용된다. 출발지와 목적지를 입력만 하면 어느 길이 빠른지, 환승을 줄일 수 있는지 모두 살펴볼 수 있다. 이때 사용되는 그래프 알고리즘이 바로 최단 경로 알고리즘이다. 최단 경로 알고리즘은 그래프상의 두 정점 사이를 연결하는 경로 중 가장 짧은 경로를 찾는 방법이다. 여기서 '짧다'는 것은 단지 물리적인 거리 외에도 시간과 비용 등의 다양한 기준을 사용할 수 있다. 이렇게 일상생활에서 중요한 위치를 차지하는 그래프 알고리즘은 개발자라면 누구든지 습득해야 하는 필수 지식으로 자리를 잡았다. 뉴욕 주립 대학교의 스티븐 스키에나 교수는 "그래프는 교통 시스템, 인간 상호작용 및 통신 네트워크의 조직을 설명하는 컴퓨터 과학의 추상적 통합 주제 중 하나이며, 그래프 교육을 받은 프로그래머는 매우 다양한 구조를 모델링할 수 있기 때문에 개발할 때 큰 도움이 된다."라고 언급했다. 개발자들이 산업 전반에서 사용되는 그래프 이론을 현실의 개발에 적용하는 데 이 책은 많은 도움이 된다. 자동차 업계에 있는 개발자라면 자율 주행 알고리즘을 만드는 데 그래프 알고리즘을 가장 필수적으로 적용해야 하지 않을까? 여러 가지 그래프 알고리즘을 학습하고 그 알고리즘 중 어느 것을 사용할지 정하는 일은 매우 어려운 일이지만 이 책이 그 결정에 도움될 수 있을 것이다. 그래프 알고리즘의 다양한 주제를 다루며, 사용자가 자유롭게 사용할 수 있을 정도의 상세한 설명을 제공한다. 알고리즘의 기능에 대한 설명을 학습하고, 알고리즘의 사용 사례와 자세한 내용을 확인할 수 있다. 더불어 스파크, Neo4j 또는 두 가지 모두에서 구체적 알고리즘 사용 방법을 볼 수 있어서 실제로 알고리즘을 사용하려는 개발자들의 레퍼런스가 될 수 있다. 진심으로 이 책이 모든 독자가 그래프 알고리즘을 이해하고 실제로 구현하는 데 많은 도움이 되길 바란다.

실무 예제로 배우는 ReactJS 완전정복

React.js는 MVC 프레임워크에서의 뷰 부분을 컴포넌트로 만들기 위한 라이브러리다. 페이스북, 인스타그램, 에어비앤비, 야후 등의 여러 선도적인 업체에서 사용하고 있다. React.js는 사용자 인터페이스를 만드는 라이브러리로, 페이스북과 인스타그램에 의해서 개발돼 점점 많은 인기를 얻고 있다. 지금의 페이스북은 단순히 소셜 네트워크 서비스를 제공하는 것을 넘어 오픈소스 생태계의 새로운 강자로 자리매김하고 있다. 페이스북은 백엔드 기술과 웹 기술뿐만 아니라 iOS와 Android로 대표되는 모바일 기술까지 IT 전 분야에 걸쳐 다양한 기술을 오픈소스화해 많은 개발자들이 활용하는 것을 마다하지 않고 있다. 페이스북은 React.js뿐만 아니라 React Native까지 개발해 많은 사람들이 활용할 수 있도록 공개했다. React Native는 React.js를 기반으로 개발된 기술이며, 네이티브 모바일 앱을 만들기 위한 프레임워크다. 이렇게 페이스북의 기술 발전 노력은 계속되고 있다. 페이스북의 오픈소스 기술 중 ReactJS를 사용한 유명 사이트들을 어렵지 않게 발견할 수 있다. 스트리밍 서비스의 대표 주자로 손꼽히는 Netflix를 비롯해 세일즈 포스의 웹 서비스에서도 React.js를 사용하고 있다. 깃허브의 '아톰 에디터' 같은 데스크톱 응용프로그램에도 리액트가 활용됐다. React.js는 한 가지 문제를 해결하기 위해서 만들어졌다. 시시각각으로 변화하는 데이터를 사용하는 큰 규모의 애플리케이션을 만들기 위해서다. 단순함, 선언적 문법, 컴포넌트 이 세 가지 특징으로 React.js는 여러분이 UI를 구성하는 데 매우 직관적이고 효율적인 방안을 제시해 줄 것이다. 이 책은 React.js를 마스터해 React.js의 다양한 특성들에 집중할 수 있도록 해 준다. JSX, 애드온, 성능, Redux에 대한 많은 것을 다룬다. 이 책은 두 명의 개발자가 실제로 개발을 진행하듯이 구성해 읽기 편하며, 대화형으로 많은 내용들을 설명함으로써 React.js가 생소한 개발자들은 효과적인 애플리케이션의 UI 구현 방법을 쉽게 배울 수 있다.

양자 컴퓨팅 발전과 전망

미래 사회의 근간이 될 양자 컴퓨팅 기술은 기존 슈퍼컴퓨터보다 우월한 정보 처리 속도로 문제를 해결할 수 있다. 기존 컴퓨터와 전혀 다른 새로운 개념의 컴퓨터이므로 금융, 의료, 교통 등의 다양한 분야에 혁신을 가져올 것이다. 2018년 초, 구글, IBM, 인텔 등이 각각 수십 큐비트의 양자 프로세서를 공개하면서 양자 컴퓨터 구현의 기대감이 높아졌으며, 이후 2019년 구글이 양자 프로세서 칩 '시카모어'를 공개하며 53개의 큐비트를 이용해 현존하는 최고 성능의 슈퍼컴퓨터를 압도하는 연산 속도를 달성했다. 이와 같이 양자 컴퓨팅 기술은 지속적으로 발전하고 있고 게임 체인저 역할을 할 준비가 돼 있다. 그러나 양자 컴퓨터를 실제로 구현하는 데는 양자 게이트를 제어하고 동작 과정에서 오류를 정정하는 것이 중요하며, 이를 위해 초전도체, 이온트랩과 같은 기존 큐비트 구현 방식을 비롯한 관련 기술이 발전해야 한다. 이 책에서는 양자 컴퓨팅과 관련된 기본 요소와 고급 기술을 모두 다루므로 양자 컴퓨팅 기술에 필요한 핵심 내용을 신속히 알 수 있다. 핵심 내용은 2장부터 6장까지로, 2장에서는 양자역학의 원리를 다루며, 아날로그 양자, 디지털 노이즈가 있는 중간 규모 양자(디지털 NISQ) 및 완전 오류 정정된 양자 컴퓨터의 3가지 양자 컴퓨팅 유형을 소개한다. 3장에서는 양자 알고리즘을 좀 더 세부적으로 살펴본다. 4장에서는 현재 사용되는 고전적인 암호 및 암호화 시스템을 대형 양자 컴퓨터가 어떻게 깨뜨릴 수 있는지, 이런 취약성을 해결하려면 지금 해야 할 일과 지금까지 진행한 작업을 설명한다. 5장과 6장에서는 양자 컴퓨팅의 하드웨어와 소프트웨어 구성 요소를 만드는 데 필요한 전반적인 아키텍처와 진전 내용을 설명한다. 7장에서는 양자 컴퓨팅의 기술적 진보와 기타 요소, 사용 가능한 기간을 평가/재평가하는 도구, 개발 의미, 미래의 평가 결과를 제공한다. 이 책은 다양한 관점과 기술적 전문성으로 선택된 개별 전문가가 검토한 각 보고서를 종합한 결과물이다. 수많은 전문가의 지식과 의견이 녹아 들어가 있어서 이 책을 통해 얻을 수 있는 지식의 깊이는 매우 깊다. 양자 컴퓨팅은 기존 고전 컴퓨터와 비교해 많은 기술이 다르기 때문에 단번에 모든 것을 이해하기는 어렵다. 하지만 한 장씩 순차적으로 진행해 나가면 기본적인 요소들을 이해함으로써 시작해서 앞으로의 발전 방향까지 습득하게 될 것이다. 진심으로 모든 독자가 양자 컴퓨팅의 다양한 지식을 이해하고 실제로 활용하는 데 이 책이 많은 도움이 되길 바란다.

작고 강력한 Underscore.js

HTML은 웹 페이지의 내용과 양식을 저장하고, 방문자에게 보여주기 위해 사용되며, CSS는 웹페이지의 시각적 표현 방식을 결정한다. 자바스크립트는 웹 애플리케이션에 다양하면서 효과적인 표현을 제공하기 위해 개발되었다. 오늘날 거의 모든 웹페이지에서 자바스크립트가 사용되고 있다. 방문자 브라우저에서 실행되는 스크립트 언어인 자바스크립트는 웹페이지를 편리하게 사용하려는 목적으로 만들어졌기 때문에 만약에 자바스크립트가 사용이 해제되어 있다면 웹페이지의 내용이나 기능이 제한되거나 사용이 불가능해질 수 있다. 자바스크립트(JavaScript)는 객체 기반의 스크립트 프로그래밍 언어다. 이 언어는 웹브라우저 내에서 주로 사용하며, 다른 애플리케이션의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 에이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발했으며, 최종적으로 자바스크립트가 되었다. 웹페이지 안에서 객체를 자유롭게 조정하고 브라우저의 각종 기능을 이용하기 위해 필수적인 자바스크립트는 웹사이트 개발에 필수 언어가 되었고, 웹사이트에서 많은 기능을 제공하려는 다양한 고객들의 요구를 분석해 볼 때 앞으로 자바스크립트 활용은 가파르게 늘어날 것이다. 자바스크립트는 인터프리팅 방식을 사용하고, C++이나 자바같은 정적인(Static) 언어가 아니라 동적 언어기 때문에 좀 더 유연하며 추상화(abstraction)나 위임(delegation) 등의 메커니즘이 프로토타입(prototype) 객체나 함수를 통해 구현 가능하다. 독특한 구조의 유효범위(scope)와 이를 보완하기 위한 클로저(closure) 기법 등은 개발을 더욱 편리하게 하고 기능 구현에 풍부함을 더할 수 있도록 돕는다. Underscore는 Prototype.js(혹은 Ruby)처럼 기본적인 자바스크립트 객체들을 확장하지 않고도, 함수형 프로그래밍을 지원할 수 있는 유용한 자바스크립트 라이브러리다. Array나 Object의 데이터를 쉽게 다루기 위한 API를 제공한다. 사용자 인터페이스 관련한 템플릿 엔진으로 사용 가능한 라이브러리로서 Undersocre.js, Handlebars.js, mustache.js가 있지만, 그 중에서 Undersocre.js가 제일 인기가 높다. Undersocre.js 컬렉션을 다루기 쉽게 해주는 메소드들과 함수형 프로그래밍을 쉽게 해주는 메소드를 제공한다. Underscore.js을 처음 시작하는 독자나 빠른 시간 안에 Underscore.js를 살펴보고자 하는 개발자 모두에게 추천한다.

추천 엔진을 구축하기 위한 기본서

최근 들어 책이나 영화와 같은 매체를 선택하는 데 도움이 되는 다양한 추천 서비스가 제공되고 있다. 이뿐만 아니라 쇼핑하는 동안에도 구매 욕구를 불러일으키는 다양한 상품들을 추천받기도 한다. 이렇게도 추천 서비스는 머신 러닝의 진화와 함께 기술적으로 눈부시게 발전하고 있다. 1990년대에 연구가 시작됐을 무렵, 추천 시스템은 다소 조잡하고 그다지 정확하지 못했지만 웹 기술이 발전하고 웹사이트 이용자들이 증가함에 따라 그들에 대한 다양한 데이터를 활용하면서 시스템이 빠르게 개선됐다. 또한 딥러닝과 인공지능의 발전으로 추천 시스템은 더욱 정교해져 현재 훨씬 더 개인화된 추천 서비스를 제공한다. 구글, 아마존, 페이스북, 유튜브, 넷플릭스 등의 미국 기업뿐만 아니라 국내 기업에서도 사용자의 활동, 습관 등의 데이터를 수집하고, 딥러닝 기술을 이용해 그 데이터를 분석한 결과를 기반으로 개인 취향에 맞는 콘텐츠를 추천한다. 그리고 이러한 추천 시스템의 효과는 어마어마하다. 아마존의 경우 판매의 35%가 추천 엔진으로부터 비롯됐으며, 넷플릭스의 경우 구독자의 80%가 추천 시스템을 통해 영화를 선택한다고 추정할 뿐 아니라 추천 엔진 덕분에 연간 10억 달러를 절약할 수 있다고 밝혔다. 네이버 역시 인공지능 기반 추천 시스템을 적용해 뉴스 소비량은 약 17%, 동영상 소비량은 약 18% 증가했으며, 이런 성과를 바탕으로 점차 적용 범위를 확대하고 있다. 추천 엔진을 구축하는 데 바탕이 되는 이론을 이해하는 것은 성능이 좋은 추천 엔진을 구축하는 중요한 기반이 된다. 이 책에서는 R 언어를 사용해 콘텐츠 기반의 추천 엔진과 협업 필터링 방식의 추천 엔진을 실제로 구현해볼 뿐만 아니라, 각 추천 엔진의 기반이 되는 이론도 충실하게 다룬다. 이 책이 모든 독자들이 추천 엔진에 대한 기본 이론을 이해하고 정확도가 높은 추천 엔진을 실제로 구현하는 데 많은 도움이 되길 바란다.

컴퓨터 비전과 딥러닝

컴퓨터 비전은 컴퓨터에 시각을 부여해 이미지를 분석함으로써 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등의 다양한 객체를 인식하는 데 응용되며, 인공지능 기술이 발전하면서 객체 인식 기술의 진화 속도는 빨라지고 있다. 컴퓨터가 사물을 정확하게 인식해 유용한 정보를 제공할 수 있게 되면서 컴퓨터 인터페이스에 변혁이 일어나고 있다. 아이폰 X에는 얼굴을 인식하는 기능인 페이스 ID가 탑재됐고, 스마트폰의 카메라를 이용한 신용카드 스캔 등의 기술이 실제로 적용되고 있다. 컴퓨터 비전을 구현하기 위한 사용자의 프로젝트에서 컴퓨터 비전 알고리즘을 시작하길 원하더라도, 어디서부터 시작해야 할지 다소 막막할 수 있다. 컴퓨터 비전 엔지니어라 해도, 심도 있게 접근하거나 더 많은 내용을 배우려면 많은 기술을 알아야 한다. 이와 같은 목적을 달성하려면 실전 경험이 가장 중요하다. 실제 문제를 해결하는 방법을 통해 현존하는 방법들을 사용자의 요구 사항에 맞춰 수행해야 하며, 샘플 코드들을 통해 컴퓨터 비전 알고리즘의 가능성과 한계를 충분히 이해해 나가야 한다. 이 책은 실제 컴퓨터 비전 작업을 할 때 직접적으로 큰 도움이 될 수 있도록 구성됐다. 텐서플로(TensorFlow)를 사용해 추론, 제품 검색을 위한 시각적 기능의 제공 및 다양한 사용 방법을 학습할 수 있고, 유사도 매칭(similarity matching)과 얼굴 인식을 위한 모델을 훈련시키는 방법도 배울 수 있다. 이러한 내용들을 다룬 이 책은 딥러닝 학습을 위한 많은 내용들을 담고 있으며 이해하기 쉽게 예제 코드와 그 결과물까지 한꺼번에 보여준다. 컴퓨터 비전 학습을 위한 시맨틱 분할(semantic segmentation), 유사도 학습(similarity learning), 이미지 캡션(image caption), 생성 모델(generative model), 동영상 분류(video classification)에 대해 알기 쉽게 설명해주므로 데이터 기반 컴퓨터 비전 기술에 대한 지식을 한 번에 쉽게 습득할 수 있다. 모든 독자들이 텐서플로/케라스(Keras)와 딥러닝 등에 대한 기본 이론을 이해하고 실제로 구현하는 데 많은 도움이 되길 진심으로 바란다. 각각의 심오한 주제와 관련된 내용 전체를 하나씩 천천히 끄집어낸 후 설명하고 있으므로 순서대로 읽다 보면 전반적인 내용을 충분히 파악할 수 있을 것이다.

컴퓨터 비전과 알고리즘

컴퓨터 비전은 시각을 컴퓨터에 부여해 이미지에 대한 분석으로 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등의 다양한 객체를 인식하는 데 응용된다. 인공지능 기술이 발전하면서 객체 인식 기술 진화에 속도가 붙고 있다. 컴퓨터가 사물을 정확하게 인식해 유용한 정보를 제공할 수 있게 되면서 컴퓨터 인터페이스에 변혁이 일어나고 있다. 스마트폰에서 얼굴을 인식하는 기술이라던가, 도로를 주행하는 차량의 차선 인식, 보행자 인식에 이르기까지 매우 다양한 디바이스에서 활용되고 있다. 컴퓨터 비전을 구현하기 위한 프로젝트에서 컴퓨터 비전 알고리즘을 시작하고 싶어도 어디서부터 시작해야 할지를 찾는 것은 어려울 수 있다. 컴퓨터 엔지니어라고 해도 비전과 관련해서 더 많은 내용을 알려면 관련 알고리즘들을 많이 알아야 한다. 이 책에서는 비전 구현을 위한 알고리즘을 소개하고 활용할 수 있도록 도와준다. 기본적인 OpenCV의 내용부터 시작해서 이미지에 도형, 텍스트를 그리는 방법과 히스토그램 시각화에 이르기까지 기초를 탄탄히 다진 후, 실전에 활용 가능한 비디오 분석, 객체 탐지, 머신 러닝과 같은 알고리즘들을 소개한다. 6장의 '비디오 분석 - 동작 검출 및 추적'에서는 컴퓨터 비전에서 가장 널리 사용되는 추적 알고리즘을 사용해 실시간 객체 탐지 및 추적과 같은 작업을 위해 비디오를 처리하는 방법을 설명한다. 7장의 '객체 탐지 - 특징 및 기술자'는 템플릿 매칭을 사용해 객체 검출에 대한 간단한 소개부터 시작해 형상 분석에 사용할 수 있는 광범위한 알고리즘에 대해 알려준다. 8장의 '컴퓨터 비전에서의 머신 러닝'은 OpenCV 내 머신 러닝(ML) 및 심층 신경망(DNN) 모듈과 가장 중요한 알고리즘, 클래스 및 기능에 대해 다룬다. SVM 알고리즘으로 시작해 유사한 훈련 그룹을 기반으로 모델을 훈련시키는 방법을 배우고 그 모델을 사용해 입력 데이터를 분류한다. 이러한 내용들을 학습하면서 각자의 실력을 배양할 수 있을 것이다. 진심으로 이 책이 독자들에게 OpenCV와 머신 러닝 등에 대한 알고리즘들을 이해하고 실제로 구현하는 데 많은 도움이 되길 바란다.

파이썬과 OpenCV를 이용한 컴퓨터 비전 학습

컴퓨터 비전은 컴퓨터에 시각을 부여해 이미지를 분석함으로써 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등의 다양한 객체를 인식하는 데 응용한다. 또한 인공지능 기술이 발전하면서 객체 인식 기술의 진화 속도가 빨라지고 있다. 최근에는 컴퓨터가 사물을 정확하게 인식해 유용한 정보를 제공할 수 있게 되면서 컴퓨터 인터페이스에 변혁이 일어나고 있다. 아이폰 X에는 얼굴을 인식하는 기능인 페이스 ID가 탑재됐고, 스마트폰의 카메라를 이용한 신용카드 스캔 등의 기술이 실제로 적용되고 있다. 컴퓨터 비전을 구현하기 위한 사용자의 프로젝트에서 컴퓨터 비전 알고리즘을 시작하길 원하더라도 어디서부터 시작해야 할지 다소 막막할 수 있다. 시작이 어렵거나 해결하기 막막한 문제점이 있다면 이 책을 통해 해소할 수 있다. 이론으로 시작하며, 각각의 작은 주제를 하나의 예제로 나타내 원리와 실행 결과를 한꺼번에 살펴볼 수 있다. 레시피를 보고 그대로 따라 조리하는 것처럼 책의 본문을 보고 그대로 따라 하고 결과를 확인하면 기본적인 동작의 이해에 쉽게 다가갈 수 있을 것이다. 이 책에서 다루는 OpenCV는 비전 작업에 필요한 많은 기능을 지원하는데, 이 책은 이와 같은 오픈소스 컴퓨터 비전 라이브러리를 사용해 비전 애플리케이션 개발까지 나갈 수 있는 발판이 될 것이다. 간단한 예제를 위주로 다루지만, 이를 토대로 비전과 관련된 내용을 하나씩 이해하면 유용한 많은 정보를 얻게 될 것이다. 이 책을 통해 비전 학습을 위해 필요한 개념인 객체 검출과 머신 러닝에 대한 내용을 학습할 수 있다. 그리고 여러 가지 다른 형태의 객체를 검출하고 추적하는 방법을 파악할 수 있으며, 딥러닝 부분에서는 심층 신경망을 사용하는 OpenCV 내의 새로운 기능을 살펴볼 수 있다. 또한 사용된 딥러닝 모델을 소개하고 그 모델을 컴퓨터 비전 태스크에서 사용하는 예제를 확인할 수 있다. 이미지 특징 기술자를 어떻게 사용하는지에 대한 내용도 다룬다. 여러 가지 방법들로 특징 기술자를 연산하고 표시하며, 객체 검출과 추적을 위한 매칭 방법도 살펴볼 수 있다. 이 책이 모든 독자가 OpenCV와 머신 러닝 등에 관련된 기본 이론을 이해하고 실제로 구현하는 데 많은 도움이 되길 진심으로 바란다.

MariaDB 구축과 활용

기존의 파일시스템에서는 중복된 정보를 효율적으로 처리하는 방법이 매우 중요하다. 중복을 피해 정보의 관리를 효율적으로 진행하기 위해서 수많은 정보가 서로 관련성을 가지는지 확인하고, 중복이 존재하면 이를 효과적으로 처리한 데이터의 집합을 유지하는 것을 데이터베이스라고 한다. 그리고 데이터베이스를 관리하는 시스템을 데이터베이스 관리시스템(DBMS, Database Management System)이라 한다. 관계형 데이터베이스 관리 시스템(RDBMS, Realational Database Management System)은 비즈니스, 연구, 교육뿐만 아니라 인터넷상의 콘텐츠 전달까지 다양한 영역에서 중요한 역할을 하는 도구다. 다만, 아쉽게도 최근 빅데이터가 큰 흐름으로 대두되면서 관계형 데이터베이스의 대표 주자인 MySQL에 대한 관심이 예전만 못한 것 같다. 구글 트렌드(http://www.google.co.kr/trends)에서만 보더라도 2005년 이후로 MySQL에 대한 관심사가 뚝 떨어지고 있는 것을 확인할 수 있다. 도큐먼트 기반 NoSQL은 RDBMS보다 뛰어난 확장성과 가용성으로 데이터가 많이 쌓이는 시스템에서 사용하기 적합하며, MySQL은 이러한 특수한 상황을 고려해야 하는 시스템이 아닌 모든 일반적인 시스템에 적합하다. 하지만, MariaDB는 2009년 이후에 많은 관심을 가지면서 관심사가 계속 증가하고 있다. MariaDB는 완성된 형태의 안정적인 오픈소스 관계형 데이터베이스다. 처음 MySQL 데이터베이스로부터 뻗어 나와, 많은 리눅스 배포판의 기본 데이터베이스이자 크고 작은 많은 회사들이 선택하는 대표 데이터베이스가 되었다. MariaDB는 부모격인 MySQL 데이터베이스의 많은 특성과 기능을 동일하게 제공하지만, 다양한 면에서 MySQL 데이터베이스를 능가한다. MariaDB는 누구나 쉽게 사용할 수 있는 세상에서 가장 유명한 데이터베이스다. 데이터베이스에 대한 전문적인 지식이 없더라도 가볍고 쉽게 누구나 사용해볼 수 있지만, 절대 간단히 구현된 데이터베이스가 아니다. 이 책을 통해서 MariaDB 사용자가 되면, 안정적이고 최적화된 성능을 가진 데이터베이스를 운용할 수 있는 자신감을 가지게 될 것이다. 그렇기 때문에 이 책은 MariaDB을 처음 시작하는 독자이거나 빠른 시간 안에 MariaDB를 살펴보고자 하는 개발자에게 모두 추천하고 싶은 책이다.

MySQL Fifth Edition 한국어판

대학 시절 개인 홈페이지를 구축하고 나만의 정보를 친구들에게 제한적으로 공유하던 시절, 아파치와 PHP, MySQL을 사용한 제로보드를 사용하면서 처음 MySQL을 접하고 root와 password를 기억하기 시작했다. 이후 SI 업무를 하면서 수많은 RDBMS를 사용했지만, MySQL만큼 손에 익숙하면서 안정적이고, 사용하기 쉬운 데이터베이스는 없었던 것 같다. 물론 초창기에 다소 불안한 점은 있었지만, 누구나 사용할 수 있게 오픈되어 있다는 점이 큰 매력이었고, 이제는 MySQL을 사용한 대규모 프로젝트를 주변에서 쉽게 볼 수 있다. 다만 아쉽게도 최근 빅데이터가 큰 흐름으로 대두되면서 MySQL에 대한 관심이 예전만 못한 것 같다. 구글 트렌드(http://www.google.co.kr/trends)에서만 보더라도 2005년 이후로 MySQL에 대한 관심사가 뚝 떨어지고 있는 것을 확인할 수 있다. 도큐먼트 기반 NoSQL은 RDBMS보다 뛰어난 확장성과 가용성으로 데이터가 많이 쌓이는 시스템에서 사용하기 적합하며, MySQL은 이런 특수한 상황을 고려해야 하는 시스템이 아닌 모든 일반적인 시스템에 적합하다. 엔지니어가 가장 피해야 할 것이 있다면 나는 주저 없이 오버엔지니어링 (Overengineering)을 꼽을 것이다. 오버엔지니어링이란 현재 필요한 것보다 더 과하게 제품을 디자인하는 것이다. 실제로 페이스북, 트위터 같은 대규모 시스템은 아직도 MySQL을 사용한다. 페이스북의 월별 이용자는 10억 명이 넘고, 트위터는 초당 수천 건의 트윗이 들어온다. 이같이 대규모 트랜잭션을 처리하는 대부분의 서비스들도 주요 저장소로 RDBMS의 대표격인 MySQL을 사용한다. 확장성이 가장 중요한 이슈일 것 같은 서비스들이 아직 NoSQL을 사용하지 않는 이유는 아직까지 NoSQL이 가야 할 길이 멀다는 사실을 반증하는 것일 수 있다. 당분간 아니 어쩌면 앞으로도 계속 MySQL을 한쪽 겨드랑이 옆에 꼭 끼워둬야 할지도 모르는 일이다. MySQL은 누구나 쉽게 사용할 수 있는, 세상에서 가장 유명한 데이터베이스다. 데이터베이스에 대한 전문적인 지식이 없더라도 누구나 사용할 수 있지만, 절대 간단히 구현된 데이터베이스는 아니다. 이 책을 통해 MySQL의 고급 사용자나 관리자가 되면 안정적이고 최적화된 성능을 가진 데이터베이스를 운용할 수 있는 자신감을 갖게 될 것이다. 그렇기 때문에 이 책은 MySQL을 처음 시작하는 독자거나 이미 현업에서 수없이 MySQL 문법을 닳도록 사용한 개발자 모두에게 추천하고 싶다.

Node.js 하이 퍼포먼스

최근의 주된 관심사는 단연 자바스크립트(JavaScript)를 기반으로 한 여러 가지 새로운 기술이다. 그중 Node.js는 생산성 향상에 기여하며 가장 많은 관심을 받고 있다. 사실 Node.js를 사용하면 간단한 서버는 수 분 내에 만들어낼 수 있다. 하지만 많은 장점을 내세우고 있는 Node.js에도 엄연히 단점이 존재하기 마련이고, 애플리케이션의 규모가 커지면 커질수록 이러한 단점은 쉽게 드러난다. 자바스크립트는 웹 브라우저 내에서 주로 사용하며, 다른 응용프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 에이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발했으며, 최종적으로 자바스크립트라는 이름을 갖게 됐다. 웹 페이지 안에서 객체를 자유롭게 조정하고 브라우저의 각종 기능을 이용하기 위해 필수적인 자바스크립트는 웹사이트 개발에서 필수적인 언어로 자리매김했고, 웹사이트에서 많은 기능을 제공하려는 다양한 고객들의 요구를 분석해볼 때 앞으로 자바스크립트의 활용은 가파르게 늘어날 것이다. 이 책에서 기반이 되는 Node.js는 이전보다 우리에게 더 많이 친숙해진 플랫폼이다. 물론 여전히 많은 부분에서 업데이트가 이뤄지고 있지만, 기본적인 구조와 동작 원리에는 큰 변화가 일어나고 있지 않다. 이제는 Node.js를 기반으로 애플리케이션을 작성할 때 모든 애플리케이션이 안고 있는 이슈인 '성능 문제'를 고려해야 한다고 생각한다. 물론 모든 개발자들이 성능 문제를 고려하지 않고 애플리케이션을 작성한다고 생각하지는 않지만, Node.js에 대한 장단점을 파악해 효율적인 애플리케이션을 작성하는 것 또한 쉽지 않을 것으로 생각한다. 이 책은 Node.js에 적용되는 다양한 구현 방식과 프로파일링 및 최적화 기법을 기술하면서 최고의 성능을 이끌어낼 수 있는 방법을 제시한다. 우리는 이 책을 통해 많은 개발자들이 효과적으로 Node.js 기반의 애플리케이션을 만들어낼 수 있길 기대한다. 최적화와 관련해 처음 시작하는 독자뿐 아니라 빠른 시간 안에 고성능 앱을 만들어보고자 하는 개발자에게 이 책을 추천하고 싶다.

Node.js, MongoDB와 Angular를 이용한 웹 개발 2/e

다루고 있는 MEAN 스택은 몽고DB, 익스프레스(Express), 앵귤러, Node.js으로 이뤄진 토탈 솔루션이며 자바스크립트 언어로 웹 애플리케이션을 제작하기 위한 모든 것을 제공한다. MEAN 스택이 갖고 있는 이러한 특징은 개발자에게 큰 장점으로 다가올 수 있으며 이제는 자바스크립트로 서버부터 클라이언트까지 전부 구현할 수 있게 됐다. 이 책은 이러한 MEAN이 갖고 있는 장점을 잘 활용할 수 있도록 스택의 핵심 내용을 제공한다. MEAN 스택 중에서도 Node.js는 생산성 향상에 기여하며 많은 관심을 받고 있다. 사실 Node.js를 사용하면 간단한 서버는 수분 내에 만들어낼 수 있는 것이 사실이며 Node.js를 사용해 브라우저에 의존하지 않는 자바스크립트 프로그램을 만들 수 있게 됐다. 익스프레스는 Node.js에서 동작하는 웹 개발 프레임워크 모듈로, 유연한 구조를 갖고 있으며 미들웨어를 통한 확장이 가능하다는 장점을 제공한다. Node.js, 익스프레스와 더불어 유연한 스키마를 제공할 수 있는 몽고DB, 앵귤러라는 자바스크립트 프레임워크를 통해 웹 앱 개발 속도가 가속화될 수 있다. 이 책에서는 이러한 각 요소의 주요 내용을 다루고 있다. MEAN 스택은 더 이상 새로운 기술이 아니다. 물론 여전히 많은 부분에서 업데이트가 이뤄지고 있지만 기본적인 구조와 동작 원리에 큰 변화는 없다. MEAN 스택을 이용하면 개발자의 아이디어를 빠르게 프로토타이핑을 구현해 서비스를 시작하고 싶을 때 활용할 수 있고 큰 규모의 서비스 데이터를 구축하고 처리하는 데도 필요하다. 이번 버전은 기존 1판에 비해 앵귤러 부분(특히 4, 5부)의 내용이 많이 업데이트됐다. 앵귤러는 타입스크립트 기반 오픈 소스 프론트엔드 웹 애플리케이션 프레임워크다. 따라서 이 책을 읽는 사용자들은 새롭게 업데이트된 내용을 쉽게 접할 수 있을 것이다. 이 책에서는 MEAN 스택을 구성하는 각각의 기술에 대해 소개하고 있다. 이 책을 통해 많은 개발자들이 효과적으로 MEAN 스택 기반의 웹 애플리케이션을 만들어낼 수 있길 기대한다. 그리고 이 책이 모든 독자가 Node.js, 몽고DB와 앵귤러에 대한 기본 이론을 이해하고 실제로 구현하는 데 많은 도움이 되길 바란다.

Node.js, MongoDB와 AngularJS를 이용한 웹 개발

스위스 제네바 소재 유럽입자물리연구소에 근무하던 팀 버너스리(Tim Berners-Lee)가 1989년부터 개발하기 시작한 월드와이드웹(World Wide Web)은 다양한 형태로 된 데이터와 정보에 어디에서든지 접근할 수 있게 해준 서비스로, 현재까지 지속해서 진화하며 발전하고 있다. 월드와이드웹은 고에너지 물리(High Energy Physics) 학계의 정보 교환 프로젝트 모델이었지만, 지금은 다양한 데이터를 누구든지 공유하고 주고받을 수 있는 정보 제공 매개체 겸 소비매개체로서 중요한 역할을 담당하고 있다. 월드와이드웹을 바탕으로 삼아 다양한 서비스를 제공하는 일에는 웹 애플리케이션 개발이 매우 중요하다. 웹 애플리케이션 구축 시 서버 프로그램은 자바로 구현하고, 클라이언트 프로그램은 HTML과 자바스크립트와 CSS 등을 이용해 구현하면서, MySQL과 같은 관계형 데이터베이스를 사용하는 것이 일반적인 방법이다. 이와 같은 조합이 분명히 강력한 해법이기는 하지만, 간단한 웹을 구현하더라도 SQL과 자바와 자바스크립트와 CSS 등을 모두 사용할 줄 알아야 한다는 단점이 있다. 또한, 같은 데이터를 담은 객체들의 형식이 서로 달라서 객체 간에 변환 작업을 반드시 수행해야 하다 보니 오버헤드가 발생하고 이로 인해 성능도 낮아질 수밖에 없다. 이를 해결하기 위해 등장한 솔루션 중 하나가 바로 MEAN(MongoDB, Express, AngularJS, Node.js)이라는 스택이다. 이 조합을 해법으로 삼은 경우에는 같은 언어(JavaScript)와 같은 데이터 객체(JSON)를 사용하게 되므로 웹 애플리케이션 개발 시 진입 장벽이 낮아진다. 이 책은 이러한 MEAN 스택을 좀 더 쉽게 이해할 수 있게 하는 한편으로 이 조합을 이용해 실제 웹 애플리케이션을 구축할 수 있게 한다. 이 책에는 웹 프로그래밍을 위한 핵심 요소 기술들이 잘 설명되어 있고 예제도 많이 수록되어 있다. 이 책으로 독자들은 많은 활용 사례를 확보할 수 있을 것으로 예상된다. 이와 같은 각 사례를 바탕으로 삼아 자신만의 것으로 확장하는 방법을 고민해 보아야 할 것이다.

OpenCV 4 마스터 3/e

컴퓨터 비전은 컴퓨터에 시각을 부여해서 이미지에 대한 분석으로 유용한 정보를 생성하는 기술이다. 비전 기술은 컴퓨터나 로봇 등을 통해 얼굴, 건물 등과 같은 다양한 객체를 인식하는 데 응용되며, 인공지능 기술이 발전하면서 객체 인식 기술의 진화도 점점 빨라지고 있다. 이 책은 실제 컴퓨터 비전 작업을 할 때 직접적으로 많은 도움이 될 수 있도록 구성됐으며 OpenCV의 최신 API(v4.0.0) 지식을 포함한다. OpenCV는 비전 작업을 할 때 광범위하게 가장 많이 사용되는 오픈소스 컴퓨터 비전 라이브러리로, 실제 애플리케이션을 구축할 때 많이 선택된다. 2장부터 5장까지는 다양한 OpenCV의 핵심 기술을 설명한다. 카메라 포즈(camera pose)를 포함해 희소(sparse) 포인트 클라우드로 장면을 재구성하고, 멀티 뷰 스테레오를 사용해 밀집(dense) 포인트 클라우드를 얻는 방법을 보여준다. 이미지 세그멘테이션(image segmentation), 특징 추출(feature extraction), 패턴 인식(pattern recognition) 기본 사항, 두 가지 주요 패턴 인식 알고리즘인 SVM(Support Vector Machine)과 DNN(Deep Neural Network)을 소개하고, 이미지에서 얼굴을 검출하는 다양한 기법을 보여준다. 또한 하르(haar) 특징이 있는 캐스케이드 분류기를 사용하는 방법 외에 딥러닝을 사용하는 최신 기법을 포함하는 다양한 방법을 제공한다. 6장에서는 웹에서도 활용 가능한 OpenCV의 자바스크립트용 컴파일 버전인 OpenCV.js를 사용해 웹용 컴퓨터 비전 알고리즘을 개발하는 새로운 방법을 보여준다. 7장과 8장에서는 모바일 세상의 양대 산맥인 안드로이드와 iOS를 위한 솔루션을 제공한다. OpenCV의 ArUco 모듈, 안드로이드의 Camera2 API 및 JMonkeyEngine 3D 게임 엔진을 사용해 안드로이드 생태계 시스템에서 증강현실(AR) 애플리케이션을 구현하는 방법을 보여준다. 그리고 OpenCV의 사전 컴파일된 iOS용 라이브러리를 사용해 아이폰에서 파노라마 이미지 스티칭 애플리케이션을 작성하는 방법도 알아본다. 근래 떠오른 주요 컴퓨터 비전 문제의 OpenCV 코드 샘플 작업 방법을 알려주고, OpenCV 프로젝트 엔지니어링과 유지 관리에 관한 모범 사례를 제시한다. 또한 복잡한 컴퓨터 비전 작업을 위한 실용적이고 알고리즘적인 설계 방식도 파악할 수 있게 해주며, OpenCV의 간단한 예제부터 복잡한 예제까지 고루 제공하므로 많은 유용한 정보를 얻을 수 있을 것이다. 진심으로 이 책이 OpenCV와 머신러닝 등에 관련된 다양한 이론을 이해하고 실제로 구현하는 데 많은 도움이 되길 바란다.

OpenCV 4를 활용한 머신러닝 입문 2/e

지금 전 세상을 뒤덮는 화두 중 하나가 머신러닝이라는 것을 아무도 부인하긴 어려울 것이다. 구글 딥마인드의 알파고가 세기의 이벤트를 많은 사람에게 보여준 이후에 그 관심도는 나날이 급상승 중이다. 이제는 우리 주변에서 머신러닝이 적용된 사물을 쉽게 볼 수 있다. 대표적인 예로 스마트폰에서도 이미 머신러닝이 적용돼 사용자들에게 많은 편의 사항을 제공하고 있다. 머신러닝이 적용된 사회에 살아가면서 머신러닝이라는 단어 외에도 내부에 어떠한 원리가 동작하는지를 함께 알아가야 한다. 이러한 시작점에 이 책이 일정한 역할을 할 수 있다고 믿는다. 이 책은 실제 컴퓨터 비전 작업을 할 때 직접적인 도움이 될 수 있도록 구성됐고 OpenCV의 최신 API(v4.0.0) 지식들을 포함한다. 1장부터 8장까지는 분류 및 회귀와 같은 통계 학습의 핵심 개념으로 시작해 지도/비지도 머신러닝도 살펴본다. 의사 결정 트리(Decision tree), 서포트 벡터 머신(Support vector machine), 베이지안(Bayesian) 네트워크와 같은 다양한 알고리즘을 탐색하고 다른 OpenCV 기능과 결합하는 방법을 배운다. 9장부터 11장까지는 딥러닝 기술, 숫자 필기 인식 분류, 앙상블 기법을 사용한 분류 방법과 모델 성능을 개선하기 위한 과정을 살펴본다. 12장은 2판에서 새롭게 도입한 부분이다. OpenVINO(Open Visual Inference & Neural Network Optimization)도 학습할 수 있는데, OpenVINO는 개방형 시각 추론과 신경망 최적화 솔루션이며 고성능 컴퓨터 비전과 딥러닝 추론 애플리케이션 개발용으로 설계됐다. 이 책에서는 비전 처리와 관련된 분야에서 머신러닝을 어떻게 활용할 수 있는지 상세한 이론 설명과 예제를 통해 보여준다. 머신러닝을 완벽하게 이해하려면 가장 기본적인 원리를 이해하는 것이 좋다. 이해 과정은 이 책에서의 설명과 코드를 통해 시작해보자. 진심으로 모든 독자가 OpenCV와 머신러닝의 기본 이론을 이해하고 실제로 구현하는 데 이 책이 많은 도움이 되길 바란다.

OpenCV를 위한 머신 러닝

지금 전 세계를 뒤덮는 화두 중 하나가 머신 러닝이라는 것은 누구도 부인하기 어려울 것이다. 구글 딥마인드의 알파고가 세기의 이벤트를 보여준 이후, 그 관심도는 나날이 급상승 중이다. 이제는 우리 주변에서 머신 러닝이 적용된 사물들을 쉽게 볼 수 있다. 대표적인 예로, 우리가 사용하는 스마트폰은 이미 머신 러닝이 적용돼 사용자에게 여러 가지 편의를 제공하고 있다. 전 세계의 많은 기업들이 인공지능 기술을 개발하는 데 뛰어들었고, 주요 기술 강대국은 이미 많은 성과를 차근차근 거두어들이고 있다. 기술력이 매우 뛰어난 대표적인 기업인 아마존웹서비스는 연례 기술 컨퍼런스 'AWS 리인벤트re:Invent 2017'에서 딥러닝을 지원하는 무선 비디오 카메라 'AWS 딥렌즈(DeepLens)'와 개발자를 위한 새로운 머신 러닝 서비스 '아마존 세이지메이커(Amazon SageMaker)'를 공개했다. 그리고 누구나 인정하는 초기술 기업 구글은 맞춤형 머신 러닝 모델인 텐서플로와 머신 러닝 엔진을 비롯해 사전 훈련 기반 머신 러닝 모델인 비전, 음성 인식, 번역, 자연어 처리 API 등의 기술을 개발자와 기업 고객에게 제공하고 있다. 구글의 텐서플로를 활용해 생산 효율을 높인 대표적인 사례로는 일본 식품회사 '큐피(Kewpie)'가 도입한 텐서플로 기반의 식재료 검수 시스템을 들 수 있으며, 구글의 AI 기술이 의학 분야에 활용된 사례에서 보듯이 헬스케어와 환경 보존 같은 사회적 이슈에 대비하기 위해 머신 러닝을 지속적으로 접목하고자 노력하는 중이다. 또한 각종 질병과 암 검진율을 높이는 연구에도 딥러닝이 활용되는 등 AI와 머신 러닝 기술은 인류가 당면한 중요한 문제들을 해결하는 데 큰 도움을 줄 것으로 예상된다. 이처럼 우리는 머신 러닝이 적용된 사회 속에서 살아간다. 따라서 머신 러닝의 개념뿐 아니라 그 내부에서 작용하는 원리도 함께 알아가야 하며, 그 과정에서 이 책이 여러분에게 일정한 역할을 할 수 있다고 믿는다. 이 책은 비전 처리와 관련된 분야에서 머신 러닝이 어떻게 활용될 수 있는지를 이론과 예제를 바탕으로 상세히 설명한다. 머신 러닝을 완벽하게 이해하려면 가장 기본적인 원리들을 파악하는 것이 좋으며, 이 책은 풍부한 설명과 코드로 원활하게 시작할 수 있도록 도울 것이다. 진심으로 모든 독자가 OpenCV와 머신 러닝에 대한 기본 이론을 이해하고 실제로 구현하는 데 이 책이 많은 도움이 되길 바란다.

React.js 핵심정리

2015년 1월, 페이스북은 리액트 네이티브를 처음 공개했다. 이전부터 자바스크립트를 이용해서 모바일 앱 개발을 시도한 경우는 많았지만 대부분이 웹뷰(Webview)를 이용한 하이브리드 앱이었다. 하지만 리액트 네이티브를 통해, 자바스크립트로 작업해서 네이티브 앱을 개발하는 것이 가능해졌다. 처음 공개 시에는 iOS용 리액트 네이티브만 공개했으나 곧 안드로이드용을, 그리고 최근에는 윈도우 10뿐만 아니라 타이젠 개발까지 가능해졌다고 발표했다. Tom Occhino는 첫 공개 당시 자신의 블로그에서 다음과 같이 말했다. "우리는 'Write once, run anywhere(한 번만 코딩하여, 모든 플랫폼에서 동작한다)'를 추구하는 것이 아니다. 모든 플랫폼들은 서로 다른 룩앤필과 장점을 갖고 있기 때문에 여전히 각 플랫폼마다 개별적으로 앱을 개발해야 한다. 하지만 이제는 어떤 플랫폼을 선택하든 상관없이 개발자들은 새로운 기술을 배우지 않고도 앱 개발이 가능해졌다. 그리고 우린 'learn once, write anywhere (한 번의 공부로, 모든 플랫폼에 적용한다)'라고 말할 수 있다." 이 기술은 자연스레 많은 모바일 앱 개발자들의 관심을 끌었다. 그리고 이 기술의 가장 기본이자 시작은 바로 이 책에서 소개하고 있는 React.js다. React.js는 페이스북과 인스타그램의 UI를 위해 만들어진 자바스크립트 라이브러리다. 그리고 페이스북과 인스타그램 같은 지속적으로 데이터가 변경되는 큰 규모의 애플리케이션을 구축하는 문제를 해결하고자 React.js를 개발했다고 이야기하고 있다. 단순함, 선언적 문법, 컴포넌트 이 세 가지 특징으로 React.js는 여러분이 UI를 구성하는 데 매우 직관적이고 효율적인 방안을 제시해 줄 것이다. 이 책은 React.js의 설치부터 시작해, 간단한 컴포넌트에서 다소 복잡한 컴포넌트까지 함께 만들어 보면서 기본적인 React.js의 활용 방법을 설명해주고, 마지막에는 애플리케이션 아키텍처인 Flux를 활용하는 방법까지 자세히 설명한다. 이 책이 React.js가 생소한 개발자에게 효과적인 애플리케이션의 UI 구현 방법을 제시하는 데 많은 도움이 되기를 바란다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자