티스토리 뷰

Hobby/Book

[Book] Think Julia : 줄리아를 생각하다

생각많은 소심남 2020. 5. 29. 22:03

(해당 포스트에서 소개하는 "Think Julia: 줄리아를 생각하다." 책은 한빛미디어로부터 제공받았음을 알려드립니다.)

그림 1. Think Julia

 내가 처음 Julia를 알게 된 것은 MOOC 수업을 들을 때 Julia로 문제를 해결하는게 있어서였다. 그 때 했던 과제가 Linear Optimization을 하는 것이었는데, JuliaBox상에서 Julia로 구현된 Linear Solver를 사용하면 Optimal Value를 구할 수 있었다. 그때 잠깐 다뤘던 내용이지만, Python만큼이나 문법도 간결하고, 구현하고자 한 공식이 있으면 그대로 표현도 가능했고, 이해하기 쉬웠던 것으로 느꼈었다.

 사실 Julia는 내가 느낀 것 이외로도 장점이 많다. 책에 기술된 대로 따라가자면,

  • High-Performance Language
  • 대화형 언어
  • Multiple dispatch를 통한 meta-programming
  • 동적이면서 정적 타입 언어
  • 표준 라이브러리 + third-party package

등이 있다. 한마디로 배우기 쉬우면서 성능은 성능대로 이점을 가져올 수 있다는 것이다. 특히 Julia는 Optimization에서 강점을 가지고 있어, 딥러닝 학습시 필요한 Hyperparameter optimization에도 활용할 수 있다. 나도 회사에서 일하는 부분이 제어쪽 분야다 보니, 새로운 기술이 뭐가 없나 하다가 Julia로 구현된 ControlSystem 패키지가 워낙 정리도 잘되어 있고, 원리 이해도 쉬워 많이 살펴보고 있다. 특히 PID 제어 같은 경우에는 각 제어기의 Magnitude를 결정하는 계수값 선정이 중요한데, 해당 패키지로도 그런 것을 해볼 수 있다. 이렇게 잠깐 살펴보던 와중에, Julia 관련 번역서가 출간되어 읽어보게 되었다. 국내엔 julia 관련 번역서가 거의 없어서, 참고하기 좋을 듯 했다.

 기본적으로 이 책의 전개는 일반 입문 도서와 비슷하다. 기본적으로 다루는 언어의 문법부터 시작해서 자료구조, 파일 핸들링, 더 나아가 Julia를 활용한 예제를 통해서 처음 입문하는 사람부터, Julia를 응용해 적용해보려는 개발자를 포괄할 수 있는 내용을 담고 있다. 더불어 프로그래밍 언어 이외에 Unit test나 debugging 방법 등 개발시 참고할 수 있는 부분도 담고 있다. 

 물론 다른 책에 소개되어 있지 않은 뭔가 쌈빡한 비기같은 것이 담겨 있지는 않지만, 일반 입문 서적과 전개가 비슷한 만큼, 처음부터 책을 읽으면서 직접 실습해보며 배울 수 있도록 내용이 진행된다. 각 파트별로 설명이 필요한 용어와 연습 문제들은 조금더 심화로 배우고자 하는 사람에게는 도움이 많이 될 듯하다. 나같은 경우도 MOOC에서 살짝 다뤘긴 하지만, 초반에 나온 부분은 문제와 설명을 통해서 쉽게 넘어갈 수 있었다. (책을 읽다보면서 느끼는 것이지만, Julia 문법도 어떻게 보면 Python이랑 비슷한 것 같다.)

 참고로 이 책은 아마 O`reilly 책을 많이 본 사람이라면 알고 있을, Think 시리즈 중 하나이다.

그림 2. Think 시리즈

 그리고 Think 시리즈의 저자인 allen downey는 자신이 작성한 책들을 홈페이지를 통해서 무료로 배포하고 있다. 이번 서적은 비교적 최근작이어서 안 올라와있지만, 아마 근 시일내에 올리지 않을까 싶다. 아니면 책 내용이 어떤가 궁금한 사람은 영문판은 또다른 저자인 Ben Lauwens가 따로 공개해놨다. 참고하면 좋을듯하다.

댓글