<데싸노트의 실전에서 통하는 머신러닝> 북 스포일러
※ 골든래빗 출판사로부터 책을 제공받아 작성했습니다.
책 사러가기 링크(알라딘)

※들어가기에 앞서, 이 서평에는 나 개인의 경험과 그에 기반한 주관적인 견해가 많이 들어가 있다는 점을 미리 알린다.
학원 출신 AI개발자를 도와주는 책
최근 몇 년간 정부의 지원을 받은 인공지능 부트캠프들이 우후죽순 생기고 있다. 학계나 업계에 몸담고 있는 사람이라면 이런 상황에 대해서 모두가 나름대로 할 말이 많으실 줄 안다. 다만 이번 글은 서평단에 선정되어 책을 평가하는 것이 목적이니만큼 각자 가진 의견의 차이에 대해서 논쟁하고 싶은 것은 아니고, 바로 그 ‘국비학원 출신 AI 개발자’ 당사자로서 나에게 필요했던 것들과 이 책이 나의 필요를 어떻게 채워주었는지에 대해 이야기해볼까 한다.
AI뿐만 아니라 개발 관련 부트캠프에는 대개 개인 또는 팀 프로젝트를 기획하고 완수하는 과정이 꼭 포함되어 있다. 이렇게 학원 수업의 연장선으로 진행한 프로젝트는 드물게는 포트폴리오에 자랑스럽게 넣을 만한 프로젝트가 되기도 하지만, 많은 경우 부끄러워서 어디 내놓지 못하겠다 싶은 결과물이 되어 버린다. 전자와 후자를 가르는 요인 중 물론 가장 중요한 것은 나의 주도성과 학습에 들이는 노력일 것이다. 하지만 이것만이 프로젝트의 수준을 결정짓지는 않는다. 게다가 소위 ‘국비학원 출신 비전공자’로서 경험도 학습량도 일천한 상황에서는 아무리 열심히 하려 한들 단시간에 뽑아낼 수 있는 결과물의 수준에 한계가 있을 수밖에 없다.
돌이켜보면 매순간 그때 할 수 있는 만큼은 충분히 열심히 했다고 생각했는데, 부트캠프를 졸업하고 처음 합격했던 회사에서 프로젝트에 투입되었을 때까지도 나는 여전히 혼란스러웠다. 독자적인 AI 기술을 가진 기업은 그리 많지 않고, 그 중에서도 개발과 무관한 전공으로 단기간에 부트캠프를 수료한 취준생이 갈 수 있는 기업은 더더욱 적다. 일부 부트캠프가 아무리 네카라쿠배 어쩌고 초봉 6천 어쩌고 하는 자극적인 광고 멘트를 내걸어도 그걸 그대로 믿을 사람이 많지야 않겠지만, 취준에 뛰어들 때 약간이나마 걸었던 기대가 무색할 정도다. 현업에서 내가 다룰 문제도, 그 문제를 해결하기 위해 써볼 만한 모델도(적어도 내가 있는 위치에서는) 꽤나 한정적이었던 것이다.
게다가 일단은 ‘개발자’ 명목으로 공부한 거니 개발만 잘하면 어떻게 풀릴 줄 알았다면 더더욱 문제다. 코드야 어디 오픈 소스로 공개된 것을 ‘무지성’으로 가져다가 돌릴 수는 있어도(이 말이 그렇게 하라는 뜻으로 받아들여지지 않기를 바란다! 절대 그런 의미가 아니다) 내가 진행하는 또는 진행하려는 프로젝트를 다른 사람에게 설득력 있게 설명하는 글, 즉 기획서를 쓰려는 순간, 나의 수준이 얼마나 얕은지 금방 드러나곤 했다. 오죽하면 부트캠프를 수료하고 넉 달 가까이 포트폴리오를 정리하지 못했을 정도다. (내가 포트폴리오를 뜯어고치면서 낑낑댔던 흔적을 보고 싶으시다면 이리로 → [링크](https://applecider1002.tistory.com/140?category=939937))
여러분과 나는 문제상황을 명확하게 정의할 수 없다면 해결책도 찾아낼 수 없다는 사실을 이미 충분히 배웠다. 그리고 그것은 비즈니스나 개발 수준에서의 문제뿐만이 아니라, 내가 커리어 상에서 겪고 있는 문제도 마찬가지다. 그런데 나의 문제를 직시하기 싫거나 내 언어로 설명할 수 없으니 자꾸 ‘개념이 부족해서’, ‘비전공이어서’, ’개발 이력이 짧아서’, ‘문과라서’(?) 같은 해괴한 자가 진단을 내리게 된다(별 상관은 없지만 이 책의 저자인 데싸노트 권시현 님도 소위 ‘문과 출신’ 데이터 사이언티스트라고 하시니 앞으로 공부하면서 뭐가 막혀도 출신 핑계는 대지 말도록 하자).
프로젝트 고민할 때 펴보세요
아무리 그래도 이 책 한 권만 사서 보라는 말씀은 드리지 못하겠다. 이 책에도 아주 기본적인 개념 설명은 당연히 실려 있지만 책의 제목처럼 ‘실전에서 통하는’ 머신러닝 모델을 찾아야 할 사람이라면 그 부분은 볼 필요가 없을 것이기 때문이다. 그래서 학부 저학년 수준 기초통계나 기본 파이썬 문법 등은 익힌 상태라는 전제, 또는 핸즈온, 밑바닥, 케라스 창시자 시리즈 등등 어지간히 두껍고 유명한 개념서들은 간단히 훑어보고 책장에 한 권씩 다 꽂아두었다는 전제 하에 이 책이 특별히 좋았던 점을 이야기해보겠다.
가장 유용하고 보편적으로 쓰이는 대표적인 머신러닝 모델을, 그 모델에 가장 어울리고 또 유명한 예제의 코드를 돌려가며 설명한다는 구성이 신선하지는 않다. 하지만 복잡하고 어려운 수학적, 통계학적 설명은 최소화하고(물론 있을 건 다 있다!) [문제 정의 및 선택한 모델 설명→라이브러리, 데이터 불러와 확인하기→전처리→모델링→모델 평가→하이퍼파라미터 튜닝→마무리] 라는 기본 틀을 정해 알려준다면, 이건 내 프로젝트에 얼마든지 응용할 수 있다. 즉 책 제목대로 ‘실전에서’ 통하는 것이다. 유명하다는 이 책 저 책 열심히 수집해본 결과 이렇게 바로 접목 또는 활용할 수 있는 책이 생각보다 드물었다. 내가 겪는 문제의 해결책을 엉뚱한 데서 찾느라 애를 먹은 경험이 있는 당사자로서 말하는 것이다.
실전 대비라는 주제로 기획되었으니 예제 코드와 그에 대한 설명도 시원시원하다. 평소에 가볍게 필사하며 연습할 용도의 코드는 깃허브에도 많이 있으니 그런 것 말고, 내가 당장 풀어야 하는 바로 그 문제를 남들은 어떻게 풀었는지 궁금하고 가능하다면 조금 참고라도 하고 싶은 그런 때 이 책을 열어보면 좋겠다(당연하게도 이렇게 잘 정리되어 있는 코드라면 평소에 공부 겸으로 쓰는 데도 도움이 된다).
아, 그때 그거 뭐였더라? 가물가물하다면
희한하게도 ‘실전에 충실한 책’이라고 하면 왠지 이론이나 개념에 대한 설명은 부족할 것 같다는 인상을 주는 모양이다. 하기야 대입 수험생 시절을 돌이켜보면 실전대비라는 이름이 붙은 문제집에서는 개념 설명을 길게 하지 않거나 아예 없는 경우가 많았었다.
이 책은 똑같이 ‘실전’이라는 이름이 붙어 있지만 실전대비 문제집보다는 기본 원리를 충실하게 설명해준다. 깊게 들어가면 한없이 깊게 들어갈 수도 있는데 실전에서 당장 그럴 필요는 없으니 굳이 넣지 않은 것에 가깝다. 앞에서도 말했듯 코드를 치면서 반드시 이해하고 있어야 하는 원리에 대해서는 충분할 정도로 자세하게 알려준다.
분명히 수업에서든 강의에서든 배운 적은 있는 원리가 갑자기 가물가물할 때, 당장 써먹어야 하는데 그게 뭔지 생각이 안 날 때 훑어보면 충분히 도움이 될 것이다. 제목부터 ‘실전에서 통하는’이라고 하지 않는가.