다들 알다시피 원하는 좋은 IT분야의 기업에 가기 위해서 코딩인터뷰 준비는 필수다.

 이를 위해 자료구조/알고리즘은 많이 공부하지만 실제 코딩테스트를 준비하거나 응용력을 높이기 위해 어떻게 해야 할지 어려운 경우가 많다관심이 있는 친구들이면 코딩인터뷰 완전분석 cracking the coding interview 책 또는 다양한 알고리즘 책이나 백준온라인저지, codility, leetcode 프로그래밍 사이트에서 실력을 테스트 해보기도 한다.

 

 우선 이 책은 실제 카카오 코딩인터뷰 문제를 준비한 박상길 저자분이 작성하여 카카오 및 리트코드 사이트의 문제를 다루고 있다. 그리고 막연히 "문제를 풀어내고 이렇게 하면된다"라기보단 자료구조와 알고리즘 카카오 공채 문제를 갖고 설명해준다.

 

 실제 마인드 맵을 통해 배열, 연결리스트, 스택, , 데크, 우선순위 큐, 해시테이블, 그래프, 최단경로, 트리, , 정렬, 이진검색, 비트조작, 슬라이딩윈도우, 그리디 알고리즘, 분할 정복, 다이나믹 프로그래밍 등 목차별로 학습할 수 있다.

 사실 온라인으로 문제를 풀때는 자기가 잘하는 언어로 풀이를 해도 좋지만, 시간적인 제약사항등을 생각하지 않을 수 없다. 수도코드로는 생각해냈어도 표현하는 개발언어를 어떤걸 선택하느냐에 따라 시간이 부족하거나 남을 수도 있는데 아무래도 요즘 대세는 파이썬3이 아닐까 싶다. 그런점에서 이 책에서 파이썬을 위주로 진행된다.

 

 그렇다고 파이썬을 그냥 쓰면 되요 라기보다는 왜쓰는지 그냥 쓰면 안되고 필요한 고급문법은 어떤건지 친절하게 설명해주고 있다. 기초파이썬 책에서 놓치기 어려운 내용을 잘 담아두고 있다.

 

 실제 문제로 들어가보면 하나의 문제를 갖고도 많은 접근방식이 있을 수 있음을 포용하고 있다. 보통 다른 책들에서는 하나의 문제에 하나의 풀이만 갖고 설명하는 경우가 많이 있다.

 

 하지만 우리가 실제 비즈니스 로직을 코딩하고 코드리뷰를 통해 하나의 방법만 있는 게 아닌 여러 개의 방법이 있는 경우 개선하거나 검증할 수 있는데 이 책에서는 그런 점이 잘 녹아 있다.

 

 예를 들어 첫 번째 문제는 유효한 팬린드롬인데, 풀이가 리스트로 변환, 데크자료형을 이용한 최적화, 슬라이싱사용, c언어(?)까지 4가지 방식을 설명해주고 있다. 그리고 각각의 풀이 방식에 따른 실행시간을 비교해 알려주었고, 필요할 때마다 파이썬 문법 팁도 있다.

솔직히 책을 보면서 코딩인터뷰를 준비하는 목적보다도 파이썬을 이용한 자료구조/알고리즘을 통해 문제풀이 능력을 키우고 싶은 생각이 든다. github에 제공된 소스를 갖고 직접 해보고 디버깅해보며 데이터가 흘러가는걸 보면서 재밌다고 생각한다.

 

 그리고 부록으로 회사 및 이직가이드 와 카카오 공채문제 풀이도 제공되는데 모두 좋은 내용이라 처음부터 끝까지 잘 챙겨보면 좋을 것 같다. 아무래도 내용이 충실하다 보니 두께가 좀 있는 편인데(724) 원하면 내용을 분철해서 다녀 갖고 봐도 좋을 것 같다.

 구글이 2019년부터 코틀린을 안드로이드에서 우선으로 지정하고 난 뒤 많은 app뿐만 아니라 자바환경의 웹에서도 코틀린으로 많이 대체하고 있다. 내가 읽은 다른 책과 다른 점은 우선 단순 자바와의 비교 또는 예제를 위주로 작성된 책이 아니었다. 코틀린은 함수형 프로그래밍에서 비롯된 많은 기법에 친화적으로 설계되어 자바에서 갈증이 있었던 부분을 많이 해소시켜주고 기존 자바소스와 혼합해 사용해도 문제없을 정도로 통합이 잘되어 있다는 점이다.

 전체적으로 650여 페이지로 구성된 얇지 않은 책이다. 아에 코틀린을 모른다면 조금 난이도가 있을 것 같다. 소개글부터 지은이의 자바의 대한 고민과 코틀린에 대한 생각을 엿볼수 있어, 어떻게 이 책을 구성하려 했는지 느낄 수 있다. 1장부터 바로 코틀린의 역사 뭐 이렇게 시작하지 않고, 어떻게 프로그램을 더 안전하게 만들지에 대해 작성하였다. 함수형 프로그래밍을 구현하는 데 필수적인 문법적 요소도 잘 설명하고, 함수형 라이브러리를 구현하는 과정을 샘플 코드로 단계적으로 설명하였다.

 

 또한 참조 안전성을 확보하기 위한 불변성 개념, 스택 안전한 꼬리호출을 설명하기 위한 재귀와 공재귀 개념, 반복 계산을 방지하여 연산 성능을 높이는 메모화, 분기를 함수 내부로 위임하여 오류를 방지하고 재사용성과 투명성을 확보하는 선택적 데이터 구조의 개념, 파이프라이닝을 통해 연산의 연쇄를 더욱 효율적이고 효과적으로 만드는 지연 계산의 개념 등 함수형 구현의 근간을 이루는 핵심 개념들을 설명과 그림, 코드, 연습문제 구성 등으로 되어있다. 연습문제도 힌트와 해법으로 잘 구성되어 있으니, 한번쯤은 더 고민해보면 좋을 것같다.

 실습 소스의 경우 https://github.com/gilbutITbook/080208 에 올라와있는데, 추천하는 환경인 intelliJ에서 매끄럽게 실습하면서 배울 수 있다.

 

 역자 오현석님은 “Kotlin in Action” 및 함수형 프로그래밍에 대한 책을 다수 번역하여 두개의 경험을 잘 잡을 수 있는 좋은 책 소개를 해주었다. 단순 코틀린의 겉핥기가 아닌 함수형 프로그램의 안전성 측면 뿐만 아니라 추사항화로 모듈화, 안전성을 달성하는 특성을 알고 싶다면 차분하게 읽고, 예제를 수행해보면 좋을 것 같다.  

 

# 구매처

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=235710864

 

코틀린을 다루는 기술

이해하기 쉽고 유지 보수하기 편하며 안전한 프로그램을 코틀린으로 작성하는 법을 가르쳐준다. 함수형 프로그래밍에서 영감을 얻은 다양한 기법을 소개하고 프로그래밍할 때 발생하는 일반적

www.aladin.co.kr

http://book.interpark.com/product/BookDisplay.do?_method=detail&sc.shopNo=0000400000&sc.prdNo=332078551&pis1=book&pis2=product

 

싸니까 믿으니까 인터파크도서

생년월일 - 출생지 - 출간도서 0종 판매수 0권 KAIST에서 전산학 학사와 석사 학위(프로그래밍 언어 연구실)를 취득했다. 삼성 메디슨, 비트앤펄스 등에서 UI 개발자와 개발 팀장을 지냈고, 현재 호�

book.interpark.com

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791165210960&orderClick=LEa&Kc=

 

코틀린을 다루는 기술 - 교보문고

코틀린은 자바와 부드럽게 연동되는 우아한 JVM 언어로, 구글은 2019년부터 안드로이드에서 최우선 언어로 코틀린을 채택했다. 이 책은 이해하기 쉽고 유지 보수하기 편하며 안전한 프로그램을 ��

www.kyobobook.co.kr

http://www.yes24.com/Product/Goods/89564200?Acode=101

 

코틀린을 다루는 기술

코틀린은 자바와 부드럽게 연동되는 우아한 JVM 언어로, 구글은 2019년부터 안드로이드에서 최우선 언어로 코틀린을 채택했다. 『코틀린을 다루는 기술』은 이해하기 쉽고 유지 보수하기 편하며

www.yes24.com

 

딥러닝 분야의 베스트셀러 길벗출판사의 모두의 딥러닝이 개정2판으로 돌아왔다.

이번 개정2판에서 가장 눈에 띄는 부분은 텐서플로 2.0이 반영되어 있다는 점이다.

소개에 나와있는 것처럼 GAN, 오토인코더, 자연어 처리, 전이 학습 등 새로운 내용을 수록되어 있다.

 

그리고 나와 같이 수학이 부족한 사람들 위한 기초수학 개념도 추가되어 이해를 돕고 있다.

실행 소스의 경우 주피터를 통해 바로 확인 가능한 구조로 되어있다.

그리고 부록에서 구글 코랩, 파이참을 통한 실행환경도 설명이 되어있다.

기본 소스도 출판사 사이트 및 깃허브에 공개되어 있다.

실제로 아나콘다, 텐서플로, 케라스 등 화면을 통한 순서대로 설치하면서 따라 해볼 수 있다.

욕심 부리지 않고 차분히 내용 설명을 찾아보고,

모르는 부분에 대해서는 별도로 더 깊게 확인해 나가며 기본 원리를 잡고 나가면

여기에 나와있는 실제 프로젝트를 통해 자신의 것으로 만들어 볼 수 있다.

 

 전체적인 구성은 5개의 파트와 심화 학습으로 되어 있다.

첫번째로 딥러닝 준비운동이 있는데, 개발환경 세팅해보고 실제로 코드를 돌려볼 수 있다. 다만 기본적인 파이썬의 문법은 알고 있는 것이 좋다. (파이썬 3.7 기준) 간단하게 딥러닝 코드를 맛본 뒤, 기초수학으로 들어가는데 딥러닝을 이해하기 위한 일차함수,기울기 절편등부터 미분,편미분,지수,로그 등에 대해 되짚고 넘어간다.

 두번째로 답러닝의 동작 원리다. 선형 회귀(예측선 긋기), 경사하강법(오차수정하기), 로지스틱 회귀(참 거짓판단)을 공부할 수 있다. 개념에 대해 설명 뿐만 아니라, 그래프, 그림, 기본 파이썬 코드 등으로 이해하기 쉽게 되어있다.

 세번째는 신경망인데, 딥러닝을 설계할 때 반드시 필요한 신경망과 역전파의 개념에 대해 배운다. 많이 들어봤던 퍼셉트론, 다층 퍼셉트론, 역전파에 대해 나오는데 앞에서 이해한 동작원리 선형회귀에 대한 이해를 바탕으로 신경망의 내부로 들어와 학습하게 된다. 개념뿐만 아니라 도표, 용어 설명을 쉽게 풀어주고 있어 좋다.

 네번째는 실전 프로젝트인데, 기본적으로 배운 내용을 갖고 해볼수 있다. 인디언의 당뇨병 예측이다든가 아이리스 품종 예측 등이 있는데 주제에 대해 나오고 샘플 데이터, 속성, 클래스 구분 등을 통해 함수별로 단락별로 파이썬 코드를 통해 설명해주고 있어 이해하기 좋았다

 다섯번 째로 딥러닝 활용인데 CNN, RNN, 자연어처리, GAN, 전이학습 등이 나온다. 이것도 실전 프로젝트와 유사한 구조로 개념 설명해주고 어떻게 수행할지 예를 들어 이미지인식의 경우 그림의 각 좌표를 숫자로 표현하던걸 확인하고, 각 파이썬 코드를 통해 라인별로 어떻게 진행되는지 직관적으로 나와있다.

 마지막으로 심화 학습의 경우 역전파와 신경망에 대해 조금 더 자세한 설명이 추가되어 있다. 단순히 코드를 가져다 쓰는 걸 목표로 하는 게 아닌 상세한 공부를 전공하고 싶어하는 사람들을 위한 친절한 설명이 가미되었다. 개념 설명과 그림 그리고 공식 등이 주를 이루는데 어렵더라도 기본기를 다지기 위한 사람들은 좋은 내용이 될것 같다.

 

구입처: 

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791165210397&orderClick=LAG&Kc=

https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=228962401

http://www.yes24.com/Product/Goods/86611190?Acode=101

 

모두의 딥러닝

2년 연속 베스트셀러, 내용과 소스 코드 전면 업그레이드딥러닝 기초부터 최신 트렌드까지 한 권으로 공부하자그동안 딥러닝 입문서로 제 역할을 톡톡히 해낸 『모두의 딥러닝』이 최근 주목받는 주제들을 담아 기존 내용을 보강하여 개정 2판으로 돌아왔다. 초판에서 다루지 않았던 GAN, 오토인코더, 자연어 처리, 전이 학습 등 새로운 내용을 ...

www.yes24.com

 

모두의 딥러닝

베스트셀러 『모두의 딥러닝』이 최근 주목받는 주제들을 담아 기존 내용을 보강하여 돌아왔다. 초판에서 다루지 않았던 GAN, 오토인코더, 자연어 처리, 전이 학습 등 새로운 내용을 수록하였고, 딥러닝을 공부하면...

www.aladin.co.kr

 

모두의 딥러닝

그동안 딥러닝 입문서로 제 역할을 톡톡히 해낸 『모두의...

www.kyobobook.co.kr

 

+ Recent posts