매니징 쿠버네티스 - 창시자가 알려주는 쿠버네티스 클러스터 현장 운영 기법
브렌던 번스.크레이그 트레이시 지음, 오성근 옮김 / 한빛미디어 / 2019년 6월
평점 :
장바구니담기


개발자라면 누구나 한 번쯤 자신의 개발 환경에서 잘 동작하던 애플리케이션이 테스트 서버나 상용 서버에 배포만 하면 정상적으로 동작하지 않는 경험을 해보았을 것이다. 이러한 개발 환경 이전을 쉽게 하기 위해서 컨테이너라는 기술이 등장하게 되었다. 컨테이너는 "애플리케이션과 애플리케이션을 구동하는 환경을 격리하는 공간"을 뜻한다. 애플리케이션 동작에 필요한 모든 것을 이미지에 담아서 배포하기 때문에 외부 구동 환경에 독립적으로 애플리케이션 실행이 가능하다. 이러한 편리한 컨테이너도 그 수가 많아지만 관리와 운영 난이도가 높아질 수 밖에 없는데 이를 효율적으로 운영할 수 있게 해주는 도구가 쿠버네티스다.

이 책은 약 200 페이지의 적은 분량에 핵심적인 개념과 실무에 많이 사용될 만한 관리 방법들을 설명하고 있다. 쿠버네티스를 사용하는 실무자들은 쿠버네티스 심화 학습의 길잡이로써 이 책을 읽는 다면 많은 도움이 되지 않을까 생각된다.

개인적으로는 개발자로써 실제 애플리케이션이 어떻게 운영되는지를 아는 것도 좋은 서비스 아키텍쳐를 설계하는데 중요하다고 생각해서 이 책을 읽게 되었다. 도커 컨테이너에 대한 배경 지식은 있었지만 복수 개의 컨테이너를 관리하는 컨테이너 오케스트레이션 플랫폼 사용 경험은 전무했기 때문에 책의 내용을 이해하는데는 어려움이 많았다. 그래서 컨테이너나 쿠버네티스에 대한 지식이 부족하다고 생각하시는 분들은 먼저 기초 지식을 공부한 후에 이 책을 보시길 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
해커, 광기의 랩소디 - 세상을 바꾼 컴퓨터 혁명의 영웅들, 복간판
스티븐 레비 지음, 박재호.이해영 옮김 / 한빛미디어 / 2019년 5월
평점 :
장바구니담기


오늘날 컴퓨터는 현재 디지털 세상을 살아가는데 없어서는 안될 필수품이 된지 오래다. 하지만 처음부터 컴퓨터가 대중들이 쉽게 접근할 수 있는 기기는 아니었다. 컴퓨터가 개개인들에게 대중화되기까지는 수많은 사람들의 시간과 노력이 필요했다. 이 사람들은 컴퓨터에 너무나도 좋아한 나머지 먹고 자고 씻는 시간까지 아껴가며 컴퓨터를 탐구하는데 일생을 바쳤다. 그리고 이 사람들이 탐구한 내용은 아무런 제약없이 세상에 퍼져 컴퓨터 혁명을 불러 일으켰다. 우리는 이 사람들을 "해커" 라고 부른다.

보통 해커라고 하면 서버에서 개인 정보를 빼내거나 바이러스를 만들어 배포하는 등의 부정적인 이미지가 떠오르는 것이 사실이다. 하지만 그들의 열정으로 만든 수많은 하드웨어와 소프트웨어가 존재하지 않았다면 지금의 디지털 세상은 불가능했을 것이다.

해커에 대해 잘 알고 싶다면 자신의 인생을 컴퓨터 하나만을 탐구하는데 바친 사람들의 이야기, "해커, 광기의 랩소디"를 추천하는 바이다. 그리고 나 또한 책 속의 해커들처럼 한 가지 일에 나의 모든 걸 걸어보고 싶다는 생각이 들었다. 그래야 인생을 마무리할 때 최소한 그 하나에 대해서는 후회가 없을테니까...


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
실습과 그림으로 배우는 리눅스 구조 - 개발자가 알아야 하는 OS와 하드웨어의 기초
다케우치 사토루 지음, 신준희 옮김 / 한빛미디어 / 2019년 2월
평점 :
구판절판


오늘날 우리는 수많은 IT 서비스들의 도움으로 과거와는 비교할 수 없을 정도로 편리한 삷을 영위하고 있다. 웹 브라우져를 통해 이메일과 일정을 관리하고 메신져 앱을 통해 사람들과 의사소통을 하며 집에서도 인터넷을 통해 음식 배달을 주문할 수 있다. 이러한 서비스들을 제공하기 위해서 수많은 프로그램들이 유기적으로 동작하고 있는데 이러한 프로그램들은 OS 라는 기반이 존재하지 않으면 실행될 수 없다. 이러한 이유로 OS에 대한 지식은 프로그램의 품질 향상 뿐만 아니라 서비스 장애 발생 시 원인 분석 및 해결에 많은 도움이 된다.


이 책에서는 오픈 소스 기반의 인기 OS인 리눅스를 가지고 OS의 핵심 기능에 대해 설명하고 있다. 다들 OS라고 하면 무척 난해하고 복잡한 기능들을 떠올릴 것이다. 필자도 학교에서 공부할 때 프로세스, 스레드, 메모리 관리, 파일 시스템 등을 공부하면서 무척 힘들었던 추억(?)이 있다.


이 책은 놀랍게도 이러한 난해하고 복잡한 OS의 핵심 기능들을 간단한 그림과 그래프, 간단 명료한 코드, OS 상태 지표를 확인하는 몇몇 프로그램들을 이용하여 신기할 정도로 알기 쉽게 설명하고 있다. 300 페이지 정도의 책이지만 많은 부분이 그림과 코드 영역이기 때문에 글자가 많지 않아서 쉽게 읽힌다. 원서는 일본 서적이지만 번역이 잘되어 있어서 문장을 읽고 이해하는데 아무런 어려움도 느낄 수 없었다. (번역가가 내용을 제대로 이해하지 못했거나 번역이 어색한 일부 번역서들은 오히려 원서보다도 더 이해가 안되는 경우가 몇 번 있었다.)


책에서 제공하는 코드들도 설명하려는 OS의 핵심 기능의 실습에 초점을 맞추고 있어서 코드 내용을 이해하는데 크게 많은 시간이 들거나 어렵지 않았다. 그리고 책에서 사용된 각종 OS 상태 확인 유틸리티들이 표시하는 지표들의 의미를 명확히 이해할 수 있어서 실제 프로그램 장애 분석 시  해당 유틸리티를 잘 사용한다면 장애 분석 및 해결에도 많은 도움이 될 것으로 생각된다.


이 책은 OS의 핵심 기능을 알기 쉽게 설명한 책이다. 초급 개발자들이 OS에 대해 처음 공부할 때 좋은 시작이 될 수 있다. 중, 고급 개발자들도 짧은 시간에 과거에 배웠던 OS의 기능들을 다시 상기해보기에도 훌륭한 도서라고 생각된다. 단, OS를 직접적으로 다루거나 좀 더 깊은 내용을 공부하고 싶은 사람들은 다른 책을 보아야 한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
한 권으로 끝내는 딥러닝 텐서플로 - 회귀분석에서 강화학습까지 최고의 딥러닝 입문서
바라스 람순다르.레자 자데 지음, 장정호 외 옮김 / 한빛미디어 / 2018년 11월
평점 :
절판


오늘 서평을 할 책은 "Tensorflow for Deep Learning" 이라는 책이다. IT에 종사하는 사람으로써 최근 많은 이슈가 되고 있는 AI에 대해 기초적인 지식이라도 알아야 하지 않을까 라는 생각을 가지고 있던 중 한빛미디어의 "나는 리뷰어다" 이벤트에 응모하여 운좋게 이러한 서평을 쓸 수 있는 기회를 가지게 되었다.

이 책을 한마디로 요약하면 구글에서 개발한 TensorFlow 오픈소스 라이브러리 (신경망과 같은 머신 러닝 어플리케이션에서 사용)를 예제로 사용하는 딥러닝 입문서이다. 이 입문서에는 다음의 내용이 포함되어 있다.

* 딥러닝을 학습하는데 필요한 기초 지식 설명

* 딥러닝의 다양한 아키텍쳐 설명

* TensorFlow을 이용하여 실제 딥러닝 수행

* 딥러닝 적용 시에 유의해야할 사항들

결론만 말하자면 이 책은 현재 나의 수준에서 이해하기에는 어려운 책이었다. 이 책의 내용을 이해하고 실제 TensorFlow를 실전에 사용하기 위해서는 AI 영역에서 사용되는 수학 지식들 (행렬, 확률 & 통계, 미분 등등)을 알아야 하며 기본적으로 AI, 머신 러닝, 딥 러닝에 대한 기본 개념을 알고 있어야 한다. 그렇지 않으면 이 책에서 설명하는 각종 개념들과 그래프, 지표들의 의미를 이해하는데 어려움이 있다.

하지만 AI에 관련된 기본 개념들을 이미 알고 있는 데이터 과학자들이 참고하기에는 괜찮은 책인 것 같다. 딥러닝 을 실제 TensorFlow 샘플 코드를 통해 수행해볼 수 있고 딥러닝 중 경험할 수 있는 여러 문제들을 미리 파악할 수 있기 때문에 실제로 실전에서 딥러닝을 사용할 때에 시행착오를 줄일 수 있을 것이다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
이것이 C++이다 - 강의 현장을 그대로 옮긴 C++ 입문서 (무료 인터넷 강의, Q/A를 위한 네이버 C++ 카페 운영)
최호성 지음 / 한빛미디어 / 2016년 1월
평점 :
장바구니담기


지금은 프로그래밍 언어의 시대라고 불러도 좋을 만큼 세상에는 수많은 언어들이 존재한다. 그 수많은 언어들 중에서도 오랫동안 사랑받으며 지금까지 활발히 사용되는 언어가 있는 반면 몇몇은 미쳐 개발자들에게 사용되기도 전에 사라져버리기도 한다.

C++은 1983년 Bjarne Stroustrup에 의해 클래스를 가진 C언어("C with Classes")라는 개념으로 세상에 등장하여 지금까지도 널리 사용되고 있는 프로그래밍 언어다. 그 역사가 오래된 만큼 Unix를 포함한 수많은 소프트웨어들이 C++을 기반으로 개발되었으며 또한 현재 존재하고 있는 대부분의 프로그래밍 언어들에게도 많은 영향을 주었다. 비록 최근에 등장한 언어들에 비하면 복잡하고 배우기 어려울 수 있으나 한번만 제대로 배워두면 User Application에서 OS나 Driver 등의 로레벨에 이르기까지 많은 분야에 사용할 수 있다. 그리고 최근 언어들도 C++이 제공한 개념들을 많이 참고하기 때문에 C++과의 차이점을 중점적으로 공부하면서 학습 시간을 단축할 수 있다.

개인적으로 생각하는 C++을 공부해야 하는 이유
* 최신 언어들을 쉽게 익힐 수 있다.
* 역사가 깊은 만큼 많은 오픈소스와 라이브러리가 존재한다.
* 성능이 우수하다. (대부분의 최신 언어들은 성능 향상을 위해 C/C++로 작성된 코드를 사용할 수 있는 방법을 제공한다.)
* 대부분의 OS들은 C/C++로 작성되어 있다.

이 책의 저자는 수많은 강의를 통해 얻는 풍부한 경험을 기반으로 C++의 주요 특징들을 간단 명료하게 설명하고 있다. 개인적으로 마음에 드는 부분을 정리하면 다음과 같다.
* 각 장마다 핵심 개념 목록을 적어두어 독자가 무엇에 집중해야 하는지를 명확히 알 수 있다.
* 핵심 사항 강조 처리 (추후 복습 시 시간 절약 가능)
* 간단 명료한 샘플 코드를 통해 핵심 개념을 이해하기 쉽게 설명한다.
* 인터넷 카페를 통한 Q/A 및 동영상 강좌 제공

최근 입사하는 신입 사원들을 보면 대부분 C/C++를 배운 적이 없다. 그리고 당장 현업에 적용할 수 있는 언어들을 빨리 배워서 사용하기를 원한다. C/C++은 현재 대부분의 소프트웨어가 동작하는 OS를 작성하는데 사용된 언어이다. 최근 언어들보다 OS나 하드웨어 쪽에 가깝기 때문에 최근의 프로그래밍 언어들에 비하면 배우기 어렵다. 하지만 알아두면 직접 사용하지 않더라도 소프트웨어 전반적인 개발을 진행하는데 많은 도움이 된다. "이것이 C++이다" 는 그 시작점으로써 좋은 선택이라고 생각된다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo