전체 글 32

[리뷰]이것이 C#이다(개정판) - C#의 정석

JetBrain사의 2020년도 개발자 에코시스템 설문조사에 따르면 C#은 주로 사용하는 언어 중 8위를 차지할 정도로 흔하게 사용되는 언어 중 하나입니다. 또한 대표적인 게임엔진인 유니티에서 C#을 통해 스크립팅을 하기 때문에 앞으로 VR/AR과 미디어 콘텐츠 시장이 확대됨에 따라 사용자가 증가할 것으로 기대되는 언어 중 하나입니다. 저도 회사 업무에 잠시 C#을 사용한적이 있어서 개인적으로도 많은 관심을 가지고 있었는데, 좋은 기회를 통해서 이번에 소개드리는 책으로 제대로 공부할 수 있었습니다. 저는 컴퓨터공학을 전공하지 않았기 때문에 C계열 언어들에 대한 막연한 두려움을 가지고 있었습니다. 프로그래밍을 시작하는 사람들에게 좌절을 맛보여주는 포인터와 절차지향적 언어라는 인식, 그리고 "cout

공지사항

안녕하세요, 제가 블로그를 운영한지 벌써 3년이 되었습니다. 비록 많은 내용은 없지만 꾸준히 찾아주시는 분들도 계시고 해서 간간히나마 생존신고를 올리곤 합니다. 하지만 앱에서 알람이 오지 않아 종종 댓글을 확인하는 경우가 있습니다. 그래서 늦게 확인했을 때에는 너무 죄송스럽더라구요. 그래서 저에게 다이렉트로 연락을 할 수 있는 연락처를 공개하기로 했습니다. 블로그에 올라가있는 내용들과 제가 겪었던 경험들에 대해서 궁금하신 점이 있으시다면 developer.kelvin@gmail.com으로 메일주시면 같이 의견 나눌 수 있을 것 같습니다. (경우에 따라 좋은 내용인 경우 블로그에 공유하면서 선순환을 하면 좋을 것 같습니다.) 그리고 조만간 블로그 리뉴얼 진행 예정입니다! (최근에 알았는데...예전글을 찾아..

내 이야기 2021.02.05

밑바닥부터 시작하는 딥러닝3 - 다음 단계를 향해

딥러닝을 처음 시작할 때, 우리는 ANN부터 시작되는 신경망 개념부터 시작하여 CNN등 진화된 알고리즘 들에 대한 이론을 먼저 배우게 됩니다. 그리고 이를 구현하기 위해 텐서플로나 케라스, 파이토치 등을 배우고 MNIST같은 예시 데이터를 가지고 딥러닝 알고리즘을 이용하여 예측하며 프레임워크에 익숙해지게 됩니다.제가 보았던 대부분의 커리큘럼은 여기까지였습니다. 플러스 알파라고 한다면 캐글과 같은 경진대회에 나가는 정도. 그리고 이런 커리큘럼에서 성장의 한계를 느꼈던 분들에게 드디어 추천할 수 있는 책이 나왔습니다. 이 책은 파이토치와 같은 딥러닝 프레임워크를 만들기 위한 60개의 단계로 구성되어 있습니다. 저자가 DeZero라 불리는 순수한 파이썬 기반의 딥러닝 라이브러리를 만드는 법과 그 내부 구조들에..

우아한 사이파이, 엔지니어를 위한 강력한 무기

사실 Scipy는 문서화가 매우 잘 되어있는 라이브러리에 속한다. 그 말은 Scipy 라이브러리를 찾아보면 그 구현체에 대한 설명과 수식, 튜토리얼까지 모두 갖추어져 있기 때문에, 이 라이브러리를 사용하기 위해 책을 찾아보는 것 보다 문서를 보는 것이 더 도움이 될 수 있다는 이야기이다. (아무래도 책은 2차 가공이 되어 있기 때문에 라이브러리를 개발한 사람의 의도가 왜곡될 여지가 존재한다.) 위 이미지는 이 책에서 다루는 내용 중 일부인 Optimization에 대한 Scipy 문서의 일부이다. Rosenbrock Function에 대하여 최소값을 구하는 방법에 대한 구현과 Simplex Method에 대한 설명이 잘 기술되어 있다. 그래서 지금까지 연구나 프로젝트를 하면서 문서만 보면서 FFT나 Op..

[리뷰]파이썬과 대스크(Dask)를 활용한 고성능 데이터 분석

[Data Science with Python and Dask] 데이터 분석 강의를 수강할 때 하는 분석 과제의 수준과 현업에서의 분석 수준은 확연하게 다릅니다. 더 많은 Feature들이 존재하고, 결측치가 많고, (실무자가 아닌 경우에는) Feature가 의미하는 것이 무엇인지 정확하게 알지 못하는 등 교육용 데이터에는 존재하지 않는 많은 불확실성들이 분석 난이도를 높이게 됩니다. 결정적으로 데이터의 규모가 노트북 단위에서 처리하기 어려운 경우가 많습니다. 데이터셋 종류 크기 범위 RAM에 적당한가? 하드디스크에 적당한가? 작은 데이터셋 2GB-4GB 네 네 중간 데이터셋 2TB 이하 아니오 네 큰 데이터셋 2TB 이상 아니오 아니오 위의 표는 리뷰한 책에서 데이터셋에 대해 정의한 내용을 발췌한 것입..

해커, 광기의 랩소디 – 동기부여를 위한 고전 명작

오늘날의 해커는 시스템에 침입해 정보를 탈취하고 정보에 대해 몸값을 요구하는 범죄자라는 인식을 가지고 있습니다. 하지만 초창기의 해커는 어떠한 문제에 열중해서 풀어내는 (그중에서도 유능한)사람이었습니다. 전화기를 분해하여 원리를 이해하고, 컴퓨터를 통해 전화 교환국으로 라우팅 하기도 하는 등 본인이 궁금한 것을 참지 못하고 어떤 방법을 사용하더라도 끝장을 보고 원리를 이해하고자 하는 사람들이었습니다. 그리고 이들이 가지고 있는 ‘해커윤리’는 기술을 한발짝 더 발전시키고 더 많은 해커들이 문제에 달려들게 하는 핵심 교리가 되었습니다. 현재 우리는 이 정신을 IT분야의 개발자들이 이어받고 있습니다. 아래에 ‘해커 윤리’와 현재 개발자들의 생각, 인식을 비교해 보았는데, 이를 통해 개발자들이 성공적으로 해커 ..

파이썬으로 배우는 통계학 교과서

이 책은 전공 점추정과 구간추정, 그리고 최대우도와 분산분석까지, 머신러닝과 품질관리등 많은 산업군에서 기본적으로 필요한 통계 지식을 다루고 있습니다. 산업공학과 커리큘럼으로 보자면 기초통계와 응용통계학 1 수준의 범위가 되는 것 같습니다. 하지만 매우 상세한 설명과 이해하기 쉬운 도식으로 처음 통계를 접하거나 자신이 없는 분들이 접하기에 좋을 것 같습니다. 특히 처음에 많이 헷갈리는 부분인 평균과 분산에 따른 데이터 분포 차이와 공분산을 매트릭스로 설명하는 부분 등은 저에게도 직관적인 이해에 많은 도움이 되었습니다. 이 책은 통계적인 개념을 알려줄 뿐 아니라 요근래 머신러닝에 많이 사용되는 파이썬과 넘파이(numpy), 판다스(pandas)와 같은 라이브러리를 활용하여 통계량을 계산하고 분산분석과 선형..

R교과서 - Learning R Programming

책 소개 데이터 사이언스와 컴퓨터 사이언스가 많은 이목을 받으며 최근에 출간되는 많은 책들이 '문과생도 할 수 있는 프로그래밍', 'n주만에 마스터하는 파이썬' 등의 자극적이고 흥미를 부르는 표현을 이용하며 독자를 유치하고 있습니다. 프로그래밍을 처음 시작하는 친구에게 책을 추천해 주기 위해 서점에서 흥미로운 제목의 책을 몇권 읽어 보았는데, '독자가 이 책을 다 읽고 스스로 무언가를 할 수 있을까?'라는 생각이 드는 책들이 많았습니다. 그런 책들은 공통적으로 내용을 쉽게 설명하기 위해 비유와 추상화 된 개념을 이용하여 내용을 전달하고 있었고, 내부적으로 그 코드가 어떻게 동작되는지에 대한 내용은 독자들이 어려워 하기 때문에 넘어가며, 흥미로운 프로젝트를 한줄씩 따라해보며 만들어보는 내용을 가지고 있는 ..

클라우드 네이티브 - 기초부터 탄탄하게

책을 구성할 때 모든 내용을 다 집어넣고 싶어하는 책이 있고 주제의 핵심적인 내용만 짚어주며 필요한 부분들은 독자들 이 직접 찾아 습득하는 방식의 책이 있습니다. 개인적으로는 후자의 책을 더 선호하는데 아무리 저자가 뛰어나다고 하더라도 책 한권에 모든 내용을 다 담는 것이 어려운 일일 뿐 아니라 만약 담았다고 하더라도 독자가 충분하게 이해할 만큼의 설명을 넣는 것은 쉽지 않습니다. 이 책에서는 후자의 형태를 따르고 있습니다. 클라우드 네이티브로 개발하기 위한 개발 방법론과 가이드를 제시해 주지만 실제로 운영되는 서비스를 통해서 구현하는 방법은 다루지 않습니다. 전공서로 따지면 심화된 내용을 배우기 위한 개론에 가까운 내용들을 다룬다고 할 수 있습니다. 그러면서도 CDN, API버전관리, 데브옵스 등 웹 ..

[리뷰]줄리아를 생각하다 - Let's Julia!

평점 별5개 저는 최적화에 많은 관심을 가지고있습니다. 어릴 때는 학교에서 집까지 가는 최단 경로를 찾으려 애썼고 프로그래밍을 짤 때에도 어떻게 하면 0.1초라도 빠르게 동작시킬 수 있을지 고민했습니다(물론 고민하는 시간을 줄였으면 더 빠르게 끝났을 수 있다는건 함정입니다.). 게다가 지금 일하고 있는 곳에서는 스케줄링을 최적화(?)를 하고 있고 이정도면 신이 저를 보고 있다가 최적화를 배우는 전공으로 보내버린 것이 아닐까 하는 생각이 들 정도입니다. 그러던 중에 줄리아라는 언어를 접하게 되었습니다. 저도 꽤 오랬동안 자바를 하다가 파이썬을 3년정도 쓰고 있는데, 책의 역자이신 송한별님께서 언급하셨듯 요즘들어 너무 느리다는 것을 몸소 체감하고 있었습니다. 언젠가 수리 최적화 라이브러리를 만드는 것이 저의..