알라딘

헤더배너
상품평점 help

분류

이름:이정문

최근작
2021년 8월 <TCP/IP Illustrated, Volume 1, Second Edition>

데이터 과학으로 접근하는 정보보안

이 책의 목표는 조직의 정보보안 부서에서 보안 관련 의사결정을 내릴 때 데이터에 기반한 결정을 내리도록 유도하는 것이다. 따라서 이 책이 대상으로 하는 주요 독자는 조직 내에서 보안 관련 업무를 맡고 있는 보안 도메인의 전문가다. 데이터에 기반한, 혹은 데이터 주도의 보안이란 결국 보안 도메인에서 생성되는 데이터를 데이터 과학의 여러 기법으로 분석하고 이를 바탕으로 의사결정을 내리는 것을 의미한다. 데이터 과학은 IT 업계에서 가장 떠오르는 유망 분야로 손꼽히지만, 위키피디아 정의의 첫 마디가 '학제적(둘 이상이 학문분야에 걸치는)' 접근 방법이라는 것에서도 알 수 있듯이 매우 넓은 범위의 지식을 바탕으로 한다. 데이터 과학에 요구되는 스킬을 도메인 전문 지식, 데이터 관리, 프로그래밍, 통계학, 데이터 시각화로 분류할 때, 한 명의 데이터 과학자가 이 모든 스킬을 갖추는 것은 불가능하다. 하지만 자신의 전공 분야가 아니라 할지라도 기본적인 이해를 갖춰야 원활한 협업과 피드백을 기대할 수 있을 것이다. 이 책의 저자들은 정보보안 분야에 오랜 경험이 있는 전문가로서, 데이터 과학에 필요한 스킬을 골고루 소개하면서 정보보안 분야의 경력자가 데이터 과학의 세계에 입문할 수 있도록 안내한다. 책에서 사용되는 예제는 모두 정보보안 분야와 관련이 있으며, 프로그래밍 언어는 R과 파이썬을 사용한다(다만, 파이썬은 중반 이후에는 사용되지 않고 R을 중점적으로 사용하며, R과 파이썬의 기초 문법을 다루지는 않는다). 또 다양한 데이터베이스를 소개하면서 효율적인 데이터 관리 방법을 설명한다. 특히 최근의 NoSQL 계열의 데이터베이스를 강조하고 있으며, 대용량 처리를 위한 하둡 및 기존의 관계형 데이터베이스의 개선에 대해서도 다룬다. 특히 저자들은 오픈소스 솔루션에 호의적이라는 점을 감안하고 읽으면 도움이 될 것이다. 통계학과 관련해서는 기초적인 통계학 지식과 더불어 기계학습을 소개한다. 기계학습은 최근 구글, MS, 페이스북 등에서 앞다퉈 투자를 확대하고 API를 공개하는 중으로, 이 책에서는 인공신경망이나 서포트 벡터 머신 등의 고급 기법을 소개하지는 않으나 기본적인 개념과 관련 기법을 소개하고 있으므로 기계학습에 대한 이해를 높일 수 있는 출발점 역할은 충분히 할 수 있다. 이 책은 효율적인 데이터 시각화의 바탕이 되는 인지과학적 지식을 설명하며, 저자들의 경험에서 우러나오는 보안 대시보드(상황판) 작성 예제를 통해서 데이터 시각화의 어려움과 문제 해결 과정을 유감없이 드러내고 있다. 마지막으로, 저자가 근무하는 버라이즌(미국의 이동통신사)의 정보보안 부서에서 공개한 보안 사고 데이터 수집을 위한 VERIS 프레임워크 및 VCDB 데이터베이스를 통해서, 분야의 특성상 공개가 어려운 보안 사고 데이터에도 오픈소스의 움직임이 일어나고 있음을 느낄 수 있다. 어쩌면 이 책을 읽고 나면 더 많은 내용을 공부해야 한다는 사실을 깨닫게 될 지도 모른다. 하지만 천 리 길도 한 걸음부터라고 한다. 좋은 나침반이 있으면 천 리 길을 가는 것도 어렵지만은 않다. 이 책이 데이터에 기반한 정보보안 의사결정이라는 목표에 다다르기 위한 좋은 나침반이 되길 희망한다.

데이터 시각화 Visualizing Data

최근 들어 가장 주목받는 단어 중 하나가 데이터 과학(Data Science)입니다. 데이터 과학은 도메인 전문지식, 데이터 관리, 프로그래밍, 통계학, 데이터 시각화 등의 다양한 스킬을 필요로 하는데, 이 책에서 주로 다루는 것이 바로 데이터 시각화입니다. 데이터 과학의 목적이 결국 의사결정을 지원하는 것이라면, 분석 결과를 효과적으로 전달함으로써 다른 사람을 설득하기 위해서는 효과적인 시각화가 필수적입니다. 이 책에서는 Processing이라는 프로그래밍 환경을 사용합니다. 이 책의 저자인 벤 프라이(Ben Fry)가 2002년 발표한 Processing은 애초에는 디자이너 같은 컴퓨터 비전공자를 대상으로 비교적 간단하게 시각화 결과물을 산출할 수 있는 자바 확장으로서 개발됐지만, 현재는 건축, 바이오인포매틱스, 통계학 등의 다양한 분야에서 널리 사용되고 있습니다. Processing에서 프로그램 소스 파일을 스케치(sketch)라고 부르는 이유도 원래 디자인 계통에서 출발한 프로그래밍 환경이기 때문입니다. 그렇지만 이 책을 제대로 읽기 위해서는 프로그래밍 경험이 어느 정도 필요합니다. 만일 프로그래밍에 익숙하지 않은 분이라면, 벤 프라이가 저술한 Processing 입문서를 먼저 읽어보시는 편이 나을 수도 있습니다. 프로그래밍 경험이 있는 분이라면 이 책의 2장에서 Processing에 관한 간단한 소개를 읽는 것으로도 이후의 장들을 읽어나갈 수 있을 것입니다. 데이터 시각화는 예술과 공학이 융합된 분야로, 효율적인 시각화를 위해서는 프로그래밍 스킬뿐 아니라 인지과학적 지식과 수많은 시행착오가 요구됩니다. 이 책이 독자 여러분이 효과적인 데이터 시각화 구축을 위한 기초를 다지는 데 도움이 된다면 더할 나위가 없을 것 같습니다.

모던 파이썬 쿡북

파이썬은 의심할 여지 없이 현재 가장 많은 관심을 받는 언어 중 하나로, 특히 미국, 영국, 독일에서 가장 빠른 성장세를 보인다. 이와 같은 파이썬의 인기는 소프트웨어 산업 중에서도 매우 빠르게 성장하고 있는 데이터 과학과 인공지능 분야에서 파이썬이 대세가 되고 있는 것과 무관해 보이지 않는다. 파이썬은 문법이 쉽고 직관적이기 때문에 일단 프로토타입을 작성해 실제 동작 여부를 신속히 확인할 수 있다는 큰 장점이 있다. 스크립트 언어라서 속도가 느린 단점은 C로 작성된 라이브러리를 사용해 보완할 수 있으며, 오히려 하드웨어 사양의 급속한 발전으로 퍼포먼스보다 범용성이 더욱 중요하게 여겨지는 시대적 흐름과도 잘 어울린다. 게다가 객체지향이나 함수형 프로그래밍의 장점도 활용할 수 있다. 이 책은 특정 상황별로 파이썬을 사용해 문제 해결법을 보여주는 접근 방식을 취하고 있다. 총 13개의 장으로 구성돼 주제별로 사전 지식 소개, 프로그램 작성 방법, 프로그램의 동작 원리, 추가적인 개선 사항 등을 순서대로 설명한다. 이 책에서 다루는 주제는 자료 구조, 객체지향 특징, 함수형 프로그래밍 기법, 통계 프로그래밍 라이브러리뿐 아니라 테스트 코드 작성, 웹 서비스, 설정 파일 관리, 애플리케이션 통합 등 매우 광범위하다. 이 책은 초심자를 대상으로 하지 않으므로 파이썬 언어의 구문을 기초부터 설명하지는 않는다. 독자들이 어느 정도 파이썬 지식을 갖췄다고 전제하므로, 필요하다면 다른 입문서와 함께 읽는 것이 도움이 될 수 있다. 또한 상황별로 문제 해결책을 제시하고 있어, 굳이 처음부터 읽지 않고 필요한 부분만 선택적으로 읽어도 무방하다.

양자 컴퓨터 원리와 수학적 기초

수학에 관한 기본적인 배경지식을 갖춘 독자를 대상으로 양자 컴퓨터의 기본 원리를 설명하는 이론서입니다. 양자 컴퓨터의 바탕이 되는 양자역학은 얽힘, 중첩 등의 개념을 포함합니다. 상식적으로는 받아들이기 쉽지 않은 개념이며 단어로 나타내면 정확히 이해하기 어렵습니다. 그래서 수학적 표현이 필수입니다. 이 책은 이런 개념들의 수학적 모델을 가급적 단순화해서 제시하는 데 집중합니다. 이를 위해 저자가 복소수 표현을 배제하고 선형대수학의 기초 개념을 설명하는 등 많은 노력을 기울입니다만, 그럼에도 고등학생 수준의 수학 지식은 필수입니다. 1장은 양자 컴퓨팅의 기본 단위인 큐비트를 소개합니다. 큐비트는 흔히 전자 스핀으로 표현되므로, 스핀을 다양한 방향에서 측정할 때 무슨 일이 일어나는지 보여주는 실험 예제를 통해 큐비트의 성질을 설명합니다. 이어지는 2장은 이 책을 공부하는 데 필요한 선형대수학의 핵심 개념을 이야기합니다. 특히 벡터와 행렬 계산 방법을 소개합니다. 3장에서는 2장에서 배운 선형대수학을 사용해 1장에서 배운 전자 스핀의 수학적 모델을 제시하고, 이를 통해 큐비트를 정의합니다. 4장과 5장은 얽힘에 관해 다룹니다. 우선 4장에서는 텐서곱의 개념을 소개함으로써 큐비트의 집합을 하나의 모델로 기술하는 방법을 설명합니다. 5장은 벨의 부등식을 이야기합니다. 얽힘을 '도깨비 같은 원격 작용'이라고 부르면서 반대했던 아인슈타인의 주장의 정당성을 실험적으로 판단할 수 있는 식입니다. 결국 아인슈타인이 틀린 것으로 결론이 나고 있지만, 부등식을 고안한 벨조차도 아인슈타인의 시각과 접근법을 옹호했으며 저자도 이에 동의하고 있습니다. 6장과 7장은 본격적으로 컴퓨터와 관련된 용어가 나오기 시작합니다. 6장에서는 고전적 컴퓨터의 비트, 게이트, 논리에 관해 설명하고 가역적 컴퓨팅과 범용 게이트의 개념을 소개합니다. 7장에서는 이 개념들의 양자 컴퓨터 버전을 설명하고, 큐비트가 양자 게이트를 통과하면 어떻게 바뀌는지 보여줍니다. 8장은 몇 가지 양자 알고리즘을 소개하고, 고전적 알고리즘보다 얼마나 속도가 향상되는지 설명합니다. 마지막으로 9장은 그로버의 검색 알고리즘과 쇼어의 소인수분해 알고리즘을 간단히 소개하고, 양자 컴퓨터가 양자역학 프로세스를 정밀하게 시뮬레이션하는 데 이미 사용되고 있음을 보여줍니다. 이 책은 프로그래머를 위한 책이 아닙니다. 양자 컴퓨터의 주요 원리를 수학적 기반 위에서 이해하고자 하는 독자가 양자 컴퓨터에 입문하기에 적절한 책입니다. 대학원생 수준의 책을 읽기 전에 거쳐 갈 만한 책이라고 생각해도 좋을 것 같습니다.

양자 컴퓨터 프로그래밍

이 책의 기본적인 목적은 IBM이 발표한 클라우드 양자 컴퓨터 플랫폼인 Q Experience에서 프로그램을 작성하는 방법을 설명하는 것입니다. Q Experience를 사용하면 일반인도 양자 컴퓨터의 동작 원리를 따르는 프로그램을 작성하고 실행할 수 있습니다. 실제 양자 컴퓨터는 고가의 장비이므로 사용 횟수에 제한이 있지만, 시뮬레이터는 아무런 제한 없이 사용할 수 있습니다. 양자 컴퓨터의 동작 원리는 우리가 알고 있는 컴퓨터와 매우 다릅니다. 양자 컴퓨터는 양자역학의 원리들을 기반으로 하는데, 양자역학이 말하는 중첩과 얽힘은 우리의 상식으로는 이해하기 어렵습니다. 하지만 양자역학은 미시 세계의 현상을 매우 성공적으로 설명하고 있으며, 이를 활용해 기존 컴퓨터의 한계를 뛰어넘고자 하는 시도가 양자 컴퓨터라고 말할 수 있습니다. 이 책은 본격적으로 Q Experience를 소개하기 전에 양자역학의 역사와 핵심 개념을 설명하는 것으로 시작합니다. 1장은 아인슈타인이 양자역학의 확률적 해석을 끝까지 반대하면서 보어와 대립했던 역사를 흥미 있게 기술하며, 2장은 양자 컴퓨터의 특징인 큐빗의 중첩과 얽힘 원리를 중심으로 최근의 양자 컴퓨터 설계 방안 등을 설명합니다. 3장부터는 Q Experience에서 양자 프로그램을 작성하는 방법을 본격적으로 소개합니다. 화면 구성, 회로 작성, 실험 실행, 파이썬 SDK 설정 등을 설명하고, 이를 바탕으로 난수 생성, 초고밀도 코딩, 양자 순간 이동을 직접 수행합니다. 또한 QISKit 튜토리얼에 포함된 게임을 직접 구현해보고, 양자 알고리즘의 힘을 보여주는 퍼즐도 풀어봅니다. 마지막으로 양자 컴퓨터의 가능성을 이야기할 때 빠지지 않는 그로버의 검색 알고리즘과 쇼어의 소인수 분해 알고리즘을 자세히 다룹니다. 최초의 진공관 컴퓨터가 지금처럼 소형화되기까지 수십 년이 걸렸듯이 양자 컴퓨터를 PC처럼 사용하려면 많은 시간이 걸릴 것입니다. 하지만 거대 IT기업들이 앞다퉈 양자 컴퓨터 개발에 나서고 있으므로, 양자 컴퓨터가 데이터 센터의 서버들을 대체하는 날은 생각보다 빨리 올 수 있습니다. 이를 대비해서 양자 컴퓨터의 개념과 동작 원리를 파악하는 것은 좋은 일이라고 생각합니다.

파이썬 플레이그라운드

파이썬이 처음 발표된 지도 벌써 25년이 되었다. 네덜란드 출신 프로그래머로서 구글을 거쳐 현재 드롭박스에서 근무 중인 귀도 반 로섬(Guido Van Rossum)이 창조한 파이썬 프로그래밍 언어는 실행 시간에 데이터 타입을 검사하는 동적 타이핑을 제공하며 객체 지향적 성격을 갖고 있는 대화식 언어다. 많은 수의 유용한 라이브러리가 존재해 데이터 과학 등의 분야에서 사용이 확대되고 있으며, 무엇보다도 코드를 작성한 뒤에 컴파일과 링크 과정 없이 곧바로 실행해볼 수 있기 때문에 사용하기가 무척 편리하다. 이 책은 파이썬으로 뭔가 재미있는 걸 만들어보고 싶은 프로그래머를 대상으로 한다. 따라서 파이썬의 기본 문법은 어느 정도 알고 있다고 가정하며, 약간의 수학적 지식도 요구한다. 경험상, 프로그래밍 공부는 물론 기초 개념을 탄탄히 하는 것도 중요하지만, 실제 실행 결과를 눈으로 확인하는 과정도 함께 할 때 지루함을 덜 수 있을 것이다. 그런 측면에서 파이썬 초심자라고 하더라도 이 책에서 제공하는 소스 코드를 다운받아서 실제로 실행해봄으로써 파이썬 공부를 위한 의욕을 유지하고 동기를 부여받는 효과를 얻을 수 있을 것이다. 이 책은 총 5부 14개 장으로 구성되어 있다. 1부의 1장에서는 아이튠즈 재생목록의 구조를 이해하고 조작하는 방법을 설명하며, 2장에서는 스파이로그래프라는 재미있는 곡선을 파이썬으로 생성할 것이다. 2부는 수학적 모델을 바탕으로 몇 가지 시뮬레이션을 파이썬으로 구현한다. 인공 생명을 위한 시뮬레이션으로서 많은 관심을 모은 콘웨이의 생명 게임을 비롯해, 현악기의 음을 컴퓨터로 재생하는 방법, 그리고 장거리를 이동하는 새의 무리가 그 대오를 유지하며 이동하는 모습을 구현하는 알고리즘을 배울 수 있다. 3부에서는 주로 이미지를 조작하는 방법을 다룬다. 아스키 코드(영화 <마션>에서 아스키 코드로 통신을 주고받는 모습이 어찌나 반가웠는지 모른다)를 이용한 이미지 생성, 포토모자이크 처리, 3차원 환상을 일으키는 오토스테레오그램 등이 파이썬으로 구현된다. 4부는 OpenGL을 사용한 3D 처리 방법을 설명한다. 다소 어려운 주제이니만큼, 우선 OpenGL의 기초를 설명하는 데 하나의 장을 할애하며, 이후에는 불꽃이 분수처럼 퍼져나가는 입자 시스템을 시뮬레이션하고, 볼륨(체적) 데이터를 렌더링하는 알고리즘도 구현한다. 마지막으로 5부에서는 아두이노와 라즈베리파이와의 연동을 통해 간단한 하드웨어를 제어하는 방법이 소개된다. 또한 파이썬 기반의 경량 웹 서버를 통해 간단한 날씨 모니터링 시스템이 구축된다.

pfSense 마스터

pfSense는 FreeBSD 운영체제에 기반을 둔 오픈소스 방화벽 소프트웨어다. 그리 높지 않은 사양의 PC에서도 pfSense는 무리 없이 실행될 수 있으며, 네트워크의 방화벽 혹은 라우터로서 구현한 pfSense 시스템은 FreeBSD 기반이니만큼 높은 신뢰성을 보입니다(VMWare나 VirtualBox 등의 가상화 소프트웨어상에서 pfSense를 실행하는 경우라면 다소 높은 사양의 PC가 필요하다). 웹 인터페이스를 통해 모든 설정이 가능해 FreeBSD에 대한 사전 지식이 굳이 필요하지 않다. pfSense 시스템은 방화벽, 라우터, 무선 액세스 포인트, DHCP 서버, DNS 서버 등 다양한 용도로 사용될 수 있으며, VLAN, 종속 포털, 트래픽 셰이핑, VPN, 이중화 등의 고급 기능도 구현할 수 있다. 또한 스노트, 스퀴드 등의 서드파티 패키지를 통해 침입 탐지 시스템, 프락시 서버 등을 설치하는 것도 가능하다. 이 책은 작년 4월 발표된 pfSense의 최신 2.3 버전을 기준으로 pfSense 설치부터 고급 구현까지 폭넓게 설명한다. 다만, 설치 방법의 경우 단계별로 자세히 설명하는 것이 아니고 중요한 부분만 짚는다. 기초 설정의 경우에도 그리 많은 분량이 할애되지 않기에 네트워크 관리에 대한 사전 지식이 전혀 없다면 다소 이해하기 어려울 수도 있다. 3장부터 설명되는 고급 구현의 경우에는 구체적인 설정 방법을 세부적으로 살펴본다. pfSense를 이미 자유롭게 다루는 고급 사용자라면 다소 지루하게 느껴질지 모르지만, 이제 막 pfSense를 시작한 중급 사용자라면 이 책을 통해 pfSense에 대한 이해도를 높일 수 있을 것이다.

TCP/IP Illustrated, Volume 1, Second Edition

이 책은 TCP/IP 프로토콜 모음의 바이블로 알려진 『TCP/IP Illustrated』의 2판입니다. 1판은 TCP/IP 프로토콜을 이해하는 데 필독서로 불릴 정도로 유명한 책이었으나, 인터넷과 소프트웨어 기술의 발전에 따라서 업그레이드가 필요하게 됐습니다. 그런데 안타깝게도 1판 저자였던 리차드 스티븐스(W. Richard Stevens) 님이 작고하면서 케빈 폴(Kevin R. Fall) 님이 저술한 2판이 세상에 나오게 됐습니다. 1판과 마찬가지로 2판 역시 저자의 내공이 느껴질 정도로 폭넓으면서도 깊이 있는 내용을 다루고 있습니다. 다만, 저자가 다르다 보니 주제를 서술하는 방식이 1판과 다르고, 거기에 새로 추가된 내용도 1판보다 어려운 부분이 있기 때문에 입문자가 읽기에는 다소 어려울 수 있습니다. TCP/IP 입문자라면 다른 입문서(혹은 1판)를 먼저 읽고 이 책을 읽거나, 혹은 이 책의 내용 중에서 IPv4 부분만 골라서 끝까지 읽는 방법을 생각해볼 만합니다. 거의 대부분의 내용에서 IPv4와 IPv6를 함께 다루고 있는데 IPv6 부분이 좀 더 어렵기 때문입니다. IPv6의 보급률이 당초 예상보다 더딘 점을 감안하지 않더라도, 일단 IPv4의 이해를 바탕으로 IPv6을 공부하는 접근 방법을 택하면 처음부터 분량에 압도되지 않고 TCP/IP 프로토콜 모음의 전체적인 그림을 얻을 수 있다는 장점이 있습니다. 1,000페이지가 넘는 방대한 분량에 TCP/IP 프로토콜 모음의 수많은 프로토콜을 읽다 보면 지치는 느낌을 받을지도 모릅니다. 하지만 TCP/IP 프로토콜 모음의 전체적인 구조를 파악하며 구체적인 세부 내용을 깊이 있게 파고들기에 이보다 좋은 책이 별로 없을 것입니다.

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