목록서평/IT-책 (52)
Scientia Conditorium
WSL이 등장한 것은 2016년부터 였지만, 최근에 들어서야 사용자들이 많아지기 시작했다. 컴퓨터 사용자들 대다수가 윈도우 운영체제를 사용하기 때문에 개발자들도 윈도우 환경에서 테스트가 필요하다. 스택오버플로우 2021 통계에 따르면 개발자들 45% 정도는 윈도우 운영체제를 선호한다고 한다. 그러나 재밌는 점은 2021년도부터 WSL도 하나의 운영체제로 선호도 반열에 올라섰다. 나 역시 윈도우 환경에서 서류 작업과 코드를 짜면서 동시에 리눅스 환경에서 빌드 테스트를 해야할 일이 많다. 보통은 가상머신을 설치하여 리눅스 환경을 별도로 구축하거나, 리눅스 노트북을 이용하여 개발을 진행해왔다. 그러나 WSL 존재를 알고난 이후부터 따로 해도 되지 않아 편리해졌지만, 아직 개선점이 많이 필요하지만 훌륭하게 동작..
비전 시스템을 위한 딥러닝(Deep Learning for Vision Systems) 신경망을 활용한 엔드투엔드 컴퓨터 비전 애플리케이션 구축하기 딥러닝은 컴퓨터 비전 분야에서 엄청난 활약을 하고 있으며 대단한 성능, 결과를 내놓고 있다. 지금껏 여러 딥러닝 책을 봐왔지만 너무 쉽거나 너무 어렵거나 둘 중 하나였다. 보통은 가장 인기 많은 GAN을 집중적으로 다루는 책이 많았다. 그러나 이 책은 비전 시스템을 공부하고자 하는 학생들을 위한 교과서라고 볼 수 있다. 이 책은 컴퓨터 비전을 위한 딥러닝을 직관적으로 가르치는 책이다. 그러나 적어도 머신러닝의 기본적인 개념과 파이썬을 할 줄 아는 사람을 대상으로 한다. 초반부에는 머신러닝의 기초를 가볍게 다루고, 이후 본격적으로 수학 개념을 설명하면서 고급 ..
제목에서 짐작할 수 있듯이 초급자용 책이 아니다. 입문자용이 판치는 머신러닝 서적에서 이런 책은 반갑기만 하다. 입문자용이 아니기 때문에, 코드 설치 방법이나 파이썬 함수의 의미를 설명하는 쓸데없는 짓도 없다. 수학없이 딥러닝을 가르쳐준다는 사람들도 존재하지만, 저자는 수학 공식을 외면하지 않았다. 수학 공식은 연구 영역을 깊숙이 이해하는 데 필수적인 요소이기 때문이다. 게다가 대충 강화학습이 이런거다를 설명하는 책이 아니고, 심층 강화학습으로 고품질 솔루션을 만들기 위해서는 이론적인 배경도 필요하다. 그러나 공식에만 의존한 책은 아니다. 이 책의 목표는 이론과 실제 코드 사용간의 틈을 메우는 것이라고 하는데 정확한 것 같다. 그러나 적어도 딥러닝 기본 지식과 파이썬 코드를 볼 줄 아는 사람 한정이다. ..
최근들어 한빛미디어에 자주 느끼는 점은 책 제목을 굉장히 잘 짓는 느낌이다. 이 책이 단순히 '수학적 최적화'라고 했으면 실망할 뻔했지만, 앞에 '제대로 배우는'을 달았기에 이 책이 수준이 높다는 느낌을 주고 있다. 결론은 프로그래밍보다는 수학책에 가까우니 수학적 지식이 어느정도 있는 상태에서 읽기를 권장한다. 단 한줄의 프로그래밍은 들어가있지 않다. 프로그래밍 공부를 하다보면 알고리즘 문제를 푸는 경우가 많은데, 대표적으로 외판원 문제, 탐색 알고리즘 등등 수학적 지식을 이용해야 할 때가 있다. 가령 반복문 한번 쓰고 해결하는 방법이라던가, 그런 것을 기대하고 이 책을 접했다. 그러나 내용 자체는 비슷하지만 설명 방법은 전혀 달랐다. 위의 이미지처럼 어느정도 수학 지식이 있는 사람들만 읽을 수 있을 정..
사실 디자인패턴은 공부할 필요가 없는 영역이긴 하다. 알아두면 좋다 이정도?!. 이유는 간단하다. 프로그래밍을 하다보면 문제해결에 꼭 필요한 구조를 짜야할 때가 있는데, 완성시켜보면 어느 패턴 중 하나라는 걸 알게된다. 즉, 나도 모르게 자연스럽게 디자인패턴 중 일부를 사용하고 있다는 것이다. 이 때쯤 되면, '아, 이게 그런 패턴이라고 하는구나' 라고 깨닫는다. 가벼운 예시로, '음식점에서도 선입선출(先入先出)이 있듯이 먼저 들어온 데이터가 먼저 처리되게끔 코딩해야겠군. 엥? 이걸 큐(queue)라고 부른다고?! 당연한거에 굳이 이름을...' 이런 느낌이랄까... 그렇다면 이 책은 필요없는 책인가?! 그렇지 않다. 책에서 말하는 24가지 패턴 중 일부만이라도 알고 있다면 코딩할 때의 시간 단축이 많이 ..
리눅스 환경에서 작업해야 하는 개발자들, 특히 여지껏 윈도우에서만 개발하다고 리눅스가 익숙하지 않은 사람들(나...)에게 적극 추천하는 책이다. 실제로 나는 이 책을 업무에 매우 잘 활용하고 있다. 명령어가 익숙해질 때까지 계속해서 옆에두고 사용할 계획이다. 윈도우에서는 개발할 때에는 GUI 기반으로 마우스가 익숙해졌기 때문에, 터미널에서 명령어를 친다는 것 자체가 불편하다. 가장 먼저 익히는 명령어가 'sudo apt-get update', 'sudo apt-get full-upgrade' 등등, 대부분의 실행을 터미널을 통해 이루어진다. 사실 어떤 사람들은 내가 원하는 기능들만 명령어를 통해 설치할 수 있기 때문에 편리하다고 하지만, 내가 왜 이런 자잘자잘한 설치까지 관여해야 하는지 이해되지는 않는다..
내 경우 네트워크 보안과는 거리가 멀었다. 사실 취직하기 전까지만 해도 네트워크에 거의 관심이 없었으며, 비전공자이다보니 네트워크 공부를 따로 할 시간도 없었다. 책을 보면 항상 지은이의 말과 목차를 살펴보는데 이번에도 지은이의 말에 상당히 공감이 갔다. 현재 시중에 나와있는 대부분의 보안 관련 책들은 공격이나 분석에 초점을 맞춰져있다. 물론 방어 관점에서 서술한 책들도 있지만 초보자들이 보기에는 썩 좋은 책들은 아니였다. 그렇기에 책 제목처럼 네트워크 보안을 처음 배우는 사람들에게는 이 책은 정말 좋았다.(특히 나) 물론 내가 네트워크 보안 시스템을 구축하는 일을 하진 않을 것 같다. 그러나 응당 프로그래머라면 보안에 관심이 가져야 한다고 생각하며, 최소한 네트워크 보안이 어떠한 식으로 이루어지는 알아..
개체지향 프로그래밍에서 디자인 패턴은 특정 문제에 대해 재사용 가능한 해결책이다. 즉, 코드를 효율적으로 설계하여 비슷한 문제가 발생했을 때 해결하기 위함이다. 아키텍처 패턴은 이보다 상위 수준을 뜻한다. 하드웨어의 성능 제한, 소프트웨어 설계의 비용 및 위험성 등을 들 수 있다. 프로그래밍을 해본 사람이라면 디자인패턴 한두개쯤은 알고 있을 것이다. 중복되는 코드를 최대한 줄이고 재사용성을 높이기 위해서라도 필수일 것이다. 아키텍처 패턴은 필수라고 한다면 필수이지만 당장은 아니다. 프로젝트의 규모가 커질수록 혼자서만 코드를 작성하는게 아니기 때문에 여러가지 상황을 고려해야 한다. 주니어 프로그래머 단계에서는 당장 공부해야할 내용은 아니지만 언젠가는 해야될 내용이기에 천천히 봐두면 좋다. 나 역시, 실무 ..
리뷰에 앞서 좋은 책을 집필해준 저자 파비앙 상글라르님께 감사의 말씀을 드리며, 이런 책을 번역해준 박재호님과 한빛미디어에도 감사의 말씀을 드립니다. 프로그래머를 넘어 엔지니어를 꿈꾸고 있다면 반드시 읽어보아야할 교양서 지금 현재, 2021년이 프로그래머가 되겠다고 말하는 사람들이 넘쳐나는 시대인 것 같다. 물론 이전에도 수요와 공급은 꾸준히 지속되고 있었지만 기폭제가 된 것은 넥슨의 연봉 인상이라고 생각한다. 신입 사원 초봉을 5천만원으로 주겠다는 파격적인 기사를 내걸었고, 개발자를 뺏기면 안되는 다른 업체들도 연봉 인상 대열에 합류하였다. 아직까지는 개발자의 공급이 수요를 쫓아가지 못하는 상황이다. 단순히 연봉만 보고 너도나도 프로그래머가 되겠다고 학원에 등록하는 사람들이 늘어났고, 자칭 프로그래머라..
[책리뷰] 인공신경망 이해를 위한 기초 수학, 친절한 딥러닝 수학 한줄평을 쓰기도 애매하다. 결론부터 말하자면 크게 추천하지 않는다. 모든 것은 개인차가 있는 것이니 어쩔 수 없고... 서평단으로 참여하고 있지만 그거와 상관없이 내가 마음에 안드는 건 안드는 것이니. 가장 먼저 '기초수학/친절한' 이라고 적혀있지만 절대로 기초수학이 아니며 친절하지 않다. 최소한 행렬이 뭔지 시그마 함수 등 고등수학 정도는 알고 있어야 한다고 생각한다. 어떻게 해서든 식을 최대한 간랸하게 나타내볼려고 하는 것 같지만, 결국 공대생에게는 익숙한 그리스 문자와 여러 첨자들이 등장하게 된다. 물론 이런 문자와 첨자들을 설명해주긴 하지만... 여러 줄에 걸쳐서 수식을 보여주고 이건 이렇게 정리할 수 있어! 라고 해도 어려워 보인..