메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

파이썬 자료구조와 알고리즘 : 기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥

한빛미디어

번역서

판매중

  • 저자 : 미아 스타인
  • 번역 : 최길우
  • 출간 : 2019-07-03
  • 페이지 : 360 쪽
  • ISBN : 9791162241912
  • 물류코드 :10191
초급 초중급 중급 중고급 고급
4.6점 (16명)
좋아요 : 0

기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥 

파이써닉한 코딩으로 배우는 핵심 알고리즘 

 

이 책은 파이썬을 십분 활용해 필수적인 자료구조와 알고리즘을 두루 살펴본다. 스택, 큐, 연결 리스트 등 추상 데이터 타입과 정렬, 검색, 동적 계획법, 그래프, 트리 등 개발자가 꼭 알아야 할 알고리즘 핵심을 짚는다. 모든 알고리즘은 파이써닉한 코드로 전체를 구현했고 일부 장은 연습문제도 제공한다. 파이썬에 능숙하지 않은 독자를 위해 파이썬의 내장 데이터 타입, 객체지향, 동시성 등 파이썬 중고급 주제도 앞부분에서 설명한다. 

 

 

상세-이미지.jpg

 

저자

미아 스타인

서프라인(Surfline)의 시니어 소프트웨어 보안 엔지니어. 이전에는 엣시, 애플, 옐프 등에서 근무했다. 고교 시절부터 리눅스로 해킹과 코딩을 즐겼고 2014년 리커스 센터(Recurse Center)를 졸업했다. 2015년 데프 콘(DEF CON)에 참가해 자신과 같은 괴짜들을 만났고 양자 암호학에 관해 발표했다. 주요 관심 분야는 보안과 인공지능/머신러닝/딥러닝이다. 로스앨러모스 국립연구소, 브룩헤이븐 국립연구소, NASA 등에서 연구했다.

역자

최길우

클라우드 업계에서 솔루션즈 아키텍트로 근무하다가 현재는 어느 스타트업에서 솔루션 엔지니어로 평범한 직장인의 삶을 살고 있다. 개발자 옆에서 가끔씩 코드를 보고 간단한 쿼리를 수행하고 로그를 살펴보며 개발 외 이런저런 잡무를 담당하고 있다. 번역서로는 『우아한 사이파이』, 『Head First C# 3판』, 『처음 시작하는 파이썬』(이상 한빛미디어) 등이 있다. 

[PART 01 헬로, 자료구조!]

  

CHAPTER 01 숫자

1.1 정수 

1.2 부동소수점 

1.3 복소수 

1.4 fraction 모듈 

1.5 decimal 모듈 

1.6 2진수, 8진수, 16진수 

1.7 연습문제 

1.8 넘파이 패키지 

 

CHAPTER 02 내장 시퀀스 타입

2.1 깊은 복사와 슬라이싱 연산 

2.2 문자열 

2.3 튜플 

2.4 리스트 

2.5 바이트와 바이트 배열 

2.6 연습문제 

 

CHAPTER 03 컬렉션 자료구조

3.1 셋 

3.2 딕셔너리 

3.3 파이썬 컬렉션 데이터 타입 

3.4 연습문제 

 

CHAPTER 04 구조와 모듈

4.1 모듈 

4.2 제어문 

4.3 파일 처리 

4.4 오류 처리 

 

CHAPTER 05 객체지향 설계

5.1 클래스와 객체 

5.2 객체지향 프로그래밍의 원리 

5.3 디자인 패턴 

 

CHAPTER 06 파이썬 고급 주제

6.1 멀티 프로세스와 멀티 스레드 

6.2 좋은 습관 

6.3 단위 테스트 

 

 

[PART 02 알고리즘 세상 속으로]

 

CHAPTER 07 추상 데이터 타입

7.1 스택 

7.2 큐 

7.3 데크 

7.4 우선순위 큐와 힙 

7.5 연결 리스트 

7.6 해시 테이블 

7.7 연습문제 

 

CHAPTER 08 점근적 분석

8.1 복잡도 종류 

8.2 재귀 알고리즘 

8.3 함수의 실행 시간 

 

CHAPTER 09 정렬

9.1 2차 정렬 

9.2 선형 정렬 

9.3 로그 선형 정렬 

9.4 시간복잡도 비교 

9.5 연습문제 

 

CHAPTER 10 검색

10.1 정렬되지 않은 배열 

10.2 정렬된 배열 

10.3 연습문제 

 

CHAPTER 11 동적 계획법

11.1 메모이제이션 

11.2 연습문제 

 

 

[PART 03 아름다운 그래프와 트리의 세계]

 

CHAPTER 12 그래프 기초

12.1 용어 

12.2 이웃 함수 

12.3 트리와의 연결점 

 

CHAPTER 13 이진 트리

13.1 용어 

13.2 이진 트리 구현하기 

13.3 이진 탐색 트리 

13.4 자가 균형 이진 탐색 트리 

 

CHAPTER 14 트리 순회

14.1 깊이 우선 탐색 

14.2 너비 우선 탐색 

14.3 트리 순회 구현하기 

14.4 연습문제 

 

CHAPTER 15 한국어판 부록 : 참고 자료

파이썬 프로그래밍과 알고리즘 핵심만 쏙쏙쏙 

 

자료구조와 알고리즘은 개발자의 기본 소양이다. 나날이 인기를 얻고 있는 파이썬은 거의 의사코드 그대로 로직을 작성할 수 있다는 점에서 알고리즘 학습에도 유용하다. 이 책은 파이썬을 십분 활용해 필수적인 자료구조와 알고리즘을 두루 살펴본다. 

파이썬 문법을 갓 뗀 독자를 위해 파이썬의 내장 데이터 타입, 객체지향, 동시성 등 파이썬 기초 및 고급 주제를 설명한다. 이어서 스택, 큐, 연결 리스트, 해시 테이블 등 추상 데이터 타입을 익히고 파이썬으로 구현해보며, 나아가 정렬, 검색, 동적 계획법, 그래프, 트리 등 개발자가 꼭 알아야 할 알고리즘들의 핵심을 짚어본다. 풀이 과정을 그린 그림으로 이해를 돕고, 모든 예제에 대해 파이써닉한 코드를 함께 수록했다. 일부 장은 연습문제와 해답도 제공한다. 

 

주요 내용

  • 숫자, 시퀀스, 컬렉션 등 파이썬의 데이터 타입
  • 모듈, 클래스, 객체지향 등 설계에 필요한 지식
  • 동시성, 가상 환경, 단위 테스트 등 고급 주제
  • 스택, 큐, 데크, 연결 리스트, 해시 테이블 등 추상 데이터 타입
  • 2차, 선형, 로그 선형 등 점근적 분석을 통한 시간복잡도 이해
  • 다양한 시간복잡도의 정렬/검색 알고리즘
  • 동적 계획법과 메모이제이션
  • 그래프/트리 용어 이해 및 트리 순회 알고리즘 구현

  • 최근 한 기사에서 엔지니어들이 가장 선호하는 프로그래밍 언어 1위를 발표하였다. 

     

    엔지니어들이 가장 선호하는 프로그래밍 언어 1위는 파이썬인 것으로 조사됐다.​ 원래 프로그래밍 언어 인기 순위 1위는 자바스크립트였다. 파이썬이 1위를 차지할 수 있었던 덕목은 머신러닝 분야에서의 사용자 증가 이유가 핵심이 아닐까 싶다. 파이썬은 Numpy, Keras 등의 기타 머신러닝 툴과 라이브러리에서 사용하기 쉽기 때문에 머신러닝 엔지니어라면 주 언어로 사용하고 있을 것이다. 

     

    이번에 한빛미디어에서 나온 파이썬 자료구조와 알고리즘 이라는 책에 대해서 리뷰하고자 한다. 필자는 필요할 때만 자료구조를 찾아서 쓰기 일수였는데, 이번기회에 자료구조를 바싹 익혀 더 원활하게 코드를 작성할 수 있도록 책을 완독하였다. 

     

    책이 다소 가벼워서 들고다니면서 완독할 수 있었는데, 책이 얇은거에 비해 목차는 탄탄히 구성되어있다는 점이 아주 마음에 들었다. 또한 이 가벼운 책 안에 자료구조 뿐만아니라 알고리즘도 담고 있어서 한번에 두 가지를 볼 수 있어서 좋았다.

     

    필자는 C나 C++로 자료구조를 익혔던 사람인데, 학부 때 배웠던 자료구조나 알고리즘들을 다시한번 파이썬으로 복습하니 개인적으로 더욱이 복습되어 좋았다. 자료구조를 처음 접하는 사람이라면 다소 약간 어려울 수 있겠지만, 책에서 담고있는 자료구조나 알고리즘 내용은 처음 학습하는 사람도 이해가 쉽게 그림을 적절히 배열하여 설명하고 있어서 어려움은 없을 것 같다고 생각되었다.

     

    이 책을 완독할 수 있었던 이유도 여기에 있었다. 기회가 된다면 한번 더 훑어보면 좋을 것 같은 책이다. 

     

     

    파이썬 자료구조와 알고리즘.jpg

     

  • 파이썬 자료구조와 알고리즘 책 표지

    자료 구조와 알고리즘!

    요즘 왠만한 개발자라면 이미 잘 알고 있는 단어들이다.

    아니 당연하게 알아야만 하는 것이라는 게 맞을 듯.

    예전엔 간단한 프로그래밍 언어만 알아도 개발자로 취업이 가능했지만,

    요즘엔 입사 시험에서 직접 알고리즘을 구현할 것을 요구받기도 한다.

    임백준 님의 '누워서 읽는 알고리즘'에서 언급하신 MS의 입사시험이

    요즘 한국에서도 보편화 되어 간다고나 할까.

    자바보다 더 긴 역사를 갖었지만, 상대적으로 인지도가 낮았던 파이썬은

    인공지능의 시대에 자바보다 쉽고 보편화된 언어로 많은 사람들이 배우고 있다.

    하지만 지금까지 나온 책 중에 이 책만큼 파이썬 언어 자체를 깊이 알게한 책은 없는 듯 하다. 대개의 파이썬 책들은 파이썬을 통해 다른 영역 - 예를 들어, AI, Machine Learning, 통계, 라즈베리파이까지 새로운 영역을 도전하기 위한 도구로 설명되어 아주 기초적인 영역에서 제한적으로 소개되곤 했다.

    특히나 자료구조나 알고리즘 관점에서라면 더 제한적이었다.

    아직도 자료구조론의 대부분의 책이 C 언어를 기반으로 작성되어 있고,

    알고리즘 역시 C나 Java 기반인지라 파이썬으로는 이러한 정보가 충분하지 않다.

    파이썬 자료구조와 알고리즘 책은 파이썬에서 사용 가능한 다양한 자료구조들에 대한 이해와 이를 활용한 알고리즘에 대한 설명이 나와 있다.

    출판사의 소개에 따르면 이 책에서 주로 설명하는 내용은 다음과 같다.

    출판사에서 제공하는 책의 내용 일부

    ※ 주의사항

    이 책에 보시기 전에 반드시 파이썬과 자료구조, 알고리즘에 대한 기본적인 지식이 필요합니다. 이 책의 장점이자 단점은 설명이 많지 않고 간결하다는 점입니다.

    예를 들어 한가지 개념을 설명하고 이에 대한 코드를 보여줍니다. 하지만 이 코드 내에는 자세한 설명은 없습니다. 스스로 돌려보고 이해하라는 저자의 의도가 보입니다만, 아직 파이썬이나 자료구조 이론에 익숙하지 않은 독자는 저자가 무성의하다고 느낄 수도 있습니다.

    따라서 이 책을 보시는 독자는 사진 지식을 갖으시길 권유 드립니다.

  • SAM_8426.JPG

     

    책 제목이 눈낄을 끌었다.
    자료구조와 알고리즘. 이 두 주제는 파이썬 기초를 배우고 나면 들리기 시작하는 것들이다.
    요즘 취업을 할때 코딩 시험을 보는데, 이때 이런 유형의 문제가 나온다고 하니 더욱 관심이 갔다.
    특히 "기초 튼튼".

     

    오늘은 이 관점에서 책을 보기로 한다.
     

    SAM_8427.JPG

     

    목차를 보면, 아는 챕터도 있고, 처음 들어본 용어가 있는 챕터도 있다.

     

    파이썬의 다양한 분야를 저술한 것 느낌이 든다.
     

    SAM_8428.JPG

     

    이 책은 개념을 먼저 간단하게 설명한 다음, 파이썬 코드를 보여준다.
    여기서 호불호가 갈라질 것 같다.
    일단 설명이 너무 간단하다. 이 말은 중급자들은 아~ 이런 개념이었지 하면서, 기억을 상기시키면서, 바로 소스 코드를 공부하면 좋다.

     

    그런데, "기초 튼튼"을 보고 책을 산 입문자에게는 설명이 짧아 무슨 말인지 모르는 상태에서, 코드를 통해 좀 익히려고 하면, 이 소스 코드를 설명한 부분이 없어서, 파이썬 기초가 약하면 힘들 것 같다는 생각이 들었다. 그래서 입문자에게는 안 맞는 책이라고 본다.
     

    SAM_8429.JPG

     

    이 책의 장점으로 못 들어본 다양한 개념들이 나온다는 점이다. 물론 뚜거운 중급책을 사면, 다 나오는 내용들이지만, 아~ 이런 것을 공부해야 겠다는 마음과 그 개념들의 장점(특히 구현 속도) 간단하게 살펴보는데 매우 좋다는 생각이 들었다. 처음부터 너무 상세하게 너무 많은 것을 보면, 정리도 안되고, 중간에 공부를 그만 두는 경우도 많은데, 이 책은 설렁설렁 읽으면서 공부할 내용을 정하는 용도로 사용하면 좋을 것 같다. 그리고 가장 좋았던 점은 좋은 코딩과 나쁜 코딩 예를 보여주면서 설명하는 방식이었다.

     

    SAM_8430.JPG

     

    파이썬 자료 구조 부분은 일반 파이썬 문법책과 비슷한 느낌이다. 단지 서술 순서가 자료 구조라는 측면에서 접근한 느낌이다. 다 읽고나면 파이썬 책을 읽었는데, 속도랑 각 메소드의 비교를 공부했다는 느낌이 든다. 알고리즘 부분은 이렇게 그림과 설명 부분이 많이 들어갔지만, 알고리즘을 이해하기에는 턱없이 내용이 부족한 느낌이다.

     

    SAM_8431.JPG

     

    소스코드도 이렇게 간단하게 주석을 달아놓았기에, 아는 사람에게는 쉬운 소스코드이나, 기초가 약하면, 본인이 일일이 하나하나 검색하면서 공부해야 한다.

     

    SAM_8432.JPG

     

     

    이 책이 어렵다고 느껴지신다면, 한빛미디어에서 나온 아래 두 책을 소개한다.
     
    http://eonnow.blog.me/221350911898 : [도서리뷰]Hello Coding 한입에 쏙 파이썬 을 읽고...

     

     

    http://eonnow.blog.me/221000996115  :  'hello coding 그림으로개념을이해하는알고리즘' 정말 쉬울까요?
     

     

     

     

    입문자들이 처음 접하는 것을 고려해서, 그림과 풍부한 설명을 한 책으로, 위 책들을 여러번 반복해서 익힌 다음, 이 책을 보면, 좋을 것 같다. 이 책은 중급자용입니다.

     

  •  

    1.jpg

     

     

    프로그래밍언어 인기도의 척도로 자주 인용하는 TIOBE index에 따르면 2019년 8월 현재 파이썬은 Java, C에 이어 3위를 기록하고 있다. 파이썬이 여전히 인기인 이유를 몇가지만 들라면 문법이 간단하고 명확하여 배우기 쉬운 언어인 점, 내부적으로 리스트, 딕셔너리, 스트링, 튜플과 같은 강력한 내장 객체 자료형을 가지고 있는 점, 다른 언어와의 인터페이스도 용이하고 수많은 라이브러리를 활용할 수 있어서 확장성이 좋은 점 정도가 떠오른다. 데이터 분석, 사물인터넷 분야에서도 많이 쓰이고 있으니 거의 만능 수준이 아닌가 하는 생각도 든다. 

    인기 만큼이나 파이썬 관련 책들을 많이 볼 수 있다. 그중에서 '파이썬자료구조와 알고리즘'는 좀 특이한 책 같다. 360페이지의 얇고 작은 체구로 문법, 자료구조에 대해서 다양하게 다루고 있으니 말이다. 처음 이책의 전체적인 내용을 간단히 훑어보았을때 단순히 문법책인줄 알았다. 다시 목차를 찬찬히 보니 전체 분량의 반은 문법(PART1), 반은 알고리즘과 자료구조(PART2,3)에 할애했다. 

     

     

    구성을 살펴보면 

    1. 문법 

        숫자 - 정수, 부동소수점, 복소수, fraction 모듈 , decimal 모듈, 넘파이 패키지 

        내장 시퀀스타입 - 가변성, 슬라이싱 연산자, 문자열, 튜플, 리스트, 바이트와 바이트 배열

        컬렉션 자료구조 - 셋, 딕셔너리, 파이썬 컬렉션 데이터 타입

        구조와 모듈 - 모듈, 제어문, 파일처리, 오류처리

        객체지향 설계 - 클래스와 객체, 객체지향 프로그래밍 원리, 디자인 패턴

        파이썬의 고급주제 - 멀티 프로세스와 멀티 스레드, 가상환경, 프로파일링, 단위 테스트 

     

    2. 자료구조.알고리즘 

        추상데이터 타입 - 스택, 큐, 데크, 힙, 해쉬, 연결리스트

        점근적 분석 - 복잡도, 재귀 알고리즘 

        정렬 - 거품 정렬, 선택정렬, 삽입정렬, 놈 정렬, 카운트 정렬, 병합정렬, 퀵정렬, 힙정렬, 

        검색 - 순차검색, 이진검색, bisect 모듈, 행렬검색,  단봉형 배열

        그래프 기초 - 부분 그래프, 완전 그래프, 가중 그래프

        이진트리 , 트리순회 

     

     

     

    2.jpg

     

     

     

    3.jpg

     

     

     

    4.jpg

     

     

     

    5.jpg

     

     

     

     

    6.jpg

     

     

    [장점] 

     얇고 작은 사이즈라 문법과 자료구조관련 알고리즘 사전처럼  활용하기 좋다.

     

     

    [단점] 

     주제별로 다양한 아이템들을 다루고 제시하고 있지만 역시 지면의 한계로 부족함이 느껴진다.  

     

     

     

  • 파이썬 자료구조와 알고리즘

     

    파이썬 자료구조와 알고리즘

    파이썬 자료구조와 알고리즘

    미아 스타인 저/최길우 역

    기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥 파이써닉한 코딩으로 배우는 핵심 알고리즘 이 책은 파이썬을 십분 활용해 필수적인 자료구조와 알고리즘을 두루 살펴본다. 스택, 큐, 연결 리스트 등 추상 데이터 타입과 정렬, 검색, 동적 계획법, 그래프, 트리 등 개발자가 꼭 알아야 할 알고리즘 핵심을 짚는다. 모든 알고리즘은 파이...

     


    파이썬의 기초적인 부분을 배웠다면 학부 2학년, 3학년이 되면 이제 자료구조와 알고리즘에 대해 배우게 된다. 수많은 데이터 즉 자료들이 구조적으로 형성되어 있고 좀 더 효율적이고 관리가 쉽고 다루기 쉽게 만드는 것이 자료구조라는 과목이다. 이러한 자료들을 좀 더 신속하고 부하없이 처리하고 연산하는 방법이 알고리즘이다. 따라서 일반적으로 자료구조와 알고리즘을 같은 연장선에서 많이 알고 있으며, 이 책 또한 그러하다.

     

    첫번째 구성은 자료구조이다. 넘파이 패키지를 통해 정수 및 복소수와 같은 숫자 자료형에 대해 알아본다. 내장 자료형인 문자열과 튜플, 리스트, 딕셔너리 등에 대해서도 배운다. 각 챕터가 마무리되면 연습문제가 몇 가지 있어 간단히 확인해볼 수 있다.  파이썬의 자료형은 일반적인 언어의 자료형과는 다소 다르다는 것을 알 수 있다. 우리가 일반적으로 아는 배열이 파이썬에서는 리스트이고, 변경할 수 없는 리스트를 튜플, 인덱스를 지정할 수 있는 자료형을 딕셔너리라고 한다. 

     

    챕터5부터는 객체지향 설계를 비롯한 파이썬 고급 주제에 대해 다루게 된다. 데커레이터, 옵서버, 싱글턴 패턴과 같은 디자인 패턴에 대해 다루며, 6장에서는 멀티 프로세스와 멀티 스레드 및 디버깅, 단위테스트 등 중급자 이상 나아가기 위한 내용들을 담았다. 

     

    파트2부터는 이제 추상 데이터 타입에 대해 다룬다. 스택, 큐, 힙, 해시 테이블 등 일반적인 학부 수업시 배우는 자료구조를 파이썬을 통해 구현해본다. 이러한 자료구조가 정의되면 마찬가지로 나오는 것이 시간복잡도이다. 각 자료구조에 따른 시간복잡도를 알아보고 특히 자료의 순서를 결정하는 정렬 알고리즘에 대해 다양한 알고리즘, 버블 정렬, 선택 정렬, 삽입 정렬 등 각 알고리즘별로 시간복잡도를 알아본다. 

     

    파트3은 그래프와 트리의 세계를 다룬다. 그래프는 점에서 점으로 가는 경로를 그려놓은 자료구조이다. 형태에 따라 부분 그래프, 완전 그래프, 가중 그래프 등이 있다. 이러한 그래프는 인접 리스트 및 인접 행렬로 변환할 수 있다. 우리가 일반적으로 네비게이션 및 길찾기에 이용되는 것이 그래프 자료구조이다. 모든 지도의 지점들이 그래프로 나타내고 가장 가까운 경로를 알고리즘을 통해 찾아 빠른 길을 찾는 것이다.

     

    이진 트리 또한 자료구조 및 알고리즘에서 필수적으로 다루는 것으로 빠른 검색과 정렬 속도를 보여 효과적인 자료구조이다. 이러한 트리를 순회하는 알고리즘은 깊이 우선, 너비 우선 탐색 알고리즘 등이 있는데 이러한 부분도 기존의 C 및자바언어가 아닌 파이썬을 통해 구현하고 실행해본다.

     

    과거 우리는 자료구조와 알고리즘을 C와 자바등 저급 언어를 통해 배웠다. 하지만 많은 사람들이 파이썬 언어를 익숙하게 배우면서 비전공자들도 이러한 자료구조와 알고리즘을 배울 기회가 많아졌다. 과거 학창시절 배운 수학적 지식을 직접 사용할 수 있는 기회일수도 있고 누구에게는 사고력을 높일 수 있는 기회이기도 하고, 또 다른 누구에게는 훌륭한 서비스를 개발할 수 있는 밑바탕이 될 수 있을 것이다. 전체적인 책의 구성과 내용도 알차고 알맞은 형태여서 파이썬 중급이상으로 나아가고 싶다면 추천한다.


  •  

    빅데이터와 인공지능 시대에 파이썬 언어를 습득하는 것은 개발자가 유능한 데이터 과학자가 되도록 도와주며. 필수 불가결한 일이다. 
    텐서플로우, 케라스, 파이토치와 같은 딥러닝 프레임워크는 파이썬 언어를 사용하여 딥러닝 모델을 개발하며, 전처리, 데이터셋 구성, 모델 학습, 평가와 같은 단계에서 파이썬 라이브러리를 활용한다.

    여기에 파이썬 기반의 자료구조와 알고리즘을 마스터한다면 , 보다 전문가다운 데이터 사이언티스로서의 면모를 갖추게 될것이다.

    KakaoTalk_20190827_002112360.jpg

     

     

    이책은 파이썬으로 자료구조와 알고리즘을 해부한 책이다. 
    초반부는 개발자에게 익숙한 자료구조로서 리스트, 셋, 딕셔너리의 메소드를 다루며, 나아가 객체지향 디자인 패턴, 멀티쓰레딩까지 다룬다.
    실제 파이썬언어를 사용하여 스택, 데크, 힙, 해시테이블, 트리 ,그래프도 구현하고, 정렬,검색,동적 프로그래밍과 같은 알고리즘도 소개한다. 
    알고리즘성능과 관련하여 점근적 분석법을 통해 간단하지만 명쾌하게 시간 복잡도를 다룬다.

     

    KakaoTalk_20190827_000943802.jpg

     

    알고리즘 관련하여 실제 코드를 분석하며 저자의 아이디어를 배우는 것만으로도 개발자의 능력을 업그레이드하는 데 많은 도움이 될 것이다. 
    파이썬 언어를 통해 자료구조와 알고리즘을 보다 심도있게 배우고 싶은 개발자라면 일독을 권하고 싶다.

  • 저번학기였나 퍼블릭 블록체인을 수강할때였나,  ZKIP(zero knowledge interactive proof) 알고리즘을 구현하는 것을 이야기하다가, 나는 편하게 파이썬 알고리즘으로 구현하면 된다고 이야기했다.

    교수님이 이야기 하는 것은 그런 알고리즘을 대신해서 이용하는 것이 아닌 zkip 알고리즘 자체를 구현하는 것을 말씀하셨었다. 

     

    대학교 때 간결한 코드를 짜던 친구들은 대부분, 알고리즘에 대해서 잘 이해하지 못하거나 배우지 않았어도, 생각으로 그런 것을 구현하였었다. 

     

    나중에 그런 학문이 있다는 것을 알았는데 그런 학문을 자료구조라고 한다. 

    자료구조는 훨씬 어렵고 심오한 세계를 가지고 있었는데 내가 처음 접한 자료구조를 배웠던 언어는 Turbo C였다. 

    당시에 C++ 언어도 알고 있었는데, 각각의 컴파일러가 서로 다른 해석 체계를 가지고 있다라는 사실을 그 때 처음 알았다. 

     

    다만 그때 파이썬은 스크립트 언어 같다라는 생각이 많았지만, 대학교 2학년때던가 나는 마이크로소프트웨어라는 잡지를 통해서 처음 파이썬을 접했었다. 

    당시만 해도, 파이썬은 C처럼 자료구조를 배울 수 있는 언어라고 생각하지는 않았다. 

    또는 있었는데 내 학문의 깊이가 그 정도가 안되었을지도 모른다. 

    예를 들어서 php로 자료 구조를 하는 사람은 없지 않을까?

     

    책은 처음부터 자세한 내용을 시작한다. 

    파이썬이 가지고 있는 기본적 문법부터 자세하게 설명하고 있다. 

    대화형으로 진행되는 정말 어렵다면 책에서 미리 코딩된 내용을 복사해서 붙여넣기를 해도 좋다. 

     

     

    그 다음부터는 쉬운 알고리즘부터 시작한다. 

    정렬과 배열이 바로 그것인데, 꽤 오랬동안 자료구조를 공부했었는데, 기술사에서 그게 바로 출제가 되어서였는데, 실제로 시험을 외어서 적용하는 것은 쉽지가 않다. 

    각자가 잘하는 언어가 있다면 그것으로도 괜찮은데, 이제 생각해보니까, 파이썬으로 하는 것도 나름 재미가 있을것 같다. 

     

    아주 오래전에 랩실에서 트리를 운영했을 때, 아름답게 펼쳐지는 트리의 모습을 보고 아직도 기억에 남는데, 누군가에게는 이 책이 바로 그런 책이 되면 좋지 않을까 생각해 본다. 

  • book2.png

     

    이번 에 읽은 파이썬 자료구조와 알고리즘” (미아 스타인 지음/ 최우길 옮김)을한마디로 이야기하면 파이썬 활용 사전이라고 할 수 있다. 많은 파이썬 입문/활용서가 장황한 설명과 함께 예제를 하나 하나설명하는 방식인데 반해, 이 책은 필요한 내용만을 언제든 찾아서 볼 수 있는 사전 같은 구성이 특징이다. 옮긴이의 말을 빌면, 파이썬과 자료구조 및 알고리즘을 동시에 습득하고자하는 독자 혹은 개발자/엔지니어 면접을 준비하는 독자에게 적합한 책이라고 한다. 파이썬에 대해 아예 기초가 없는 초보자에게는 다소 어려울 수 있지만, 파이썬이상대적으로 배우기 쉬운 언어이고, 시작하고자 할 때 참고할 만한 자료가 넘치는 것을 감안해 본다면 수긍이가기도 한다. 특히나 이미 파이썬을 알고 있지만, 파이썬의다양한 쓰임새를 미처 맛보지 못한 초/중급 개발자에게 보다 넓은 시야를 갖게 하는 데 있어서는 이만한책도 없는 것 같다.

     책은15개의 챕터로 구성된다. 마지막 15장이 한국어판 부록으로 참고자료를 간략히 다루는 것을 빼면, 14개의큰 분야에 대해 다양한 주제를 다루고 있다. 책의 초반은 숫자, 내장시퀀스 타입, 컬렉션 자료 구조, 구조와 모듈에 대해 제1장에서 제 4장에 걸쳐 파이썬의 기본 데이터 타입을 이용한기본기를 다지는 데 할애한다. 5장부터는 단순히 자료구조 책이라고 하기엔 좀더 심오한 주제인 객체지향설계, 멀티 프로세스와 멀티 스레드 등 파이썬의 고급주제로 발전해 나간다. 그 이후는 알고리즘 파트에 대한 이야기가 펼쳐지는데 제 7장부터는 추상 데이터 타입, 점근적 분석, 정렬, 검색 그리고 동적 계획법에 대해 다룬다. 마지막 파트의 주제는 자료구조 및 알고리즘에서 빼 놓을 수 없는 그래프와 트리이다.

     360여페이지 밖에 안되는 작은 책에 이렇게 많은 주제를 충실히 다루고 있는 데서, 지은이의 내공이 느껴지며, 옮긴이의 번역 역시 칭찬하지 않을 수 없다. 딱딱하고 무미 건조하기쉬운 기술서의 내용을 EBS 인터넷 강의를 보는 듯한 느낌으로 풀어내어 읽기에 부담이 없었다. 파이썬에 대해 좀더 깊이 알고 싶고, 보다 효율적으로 문제를 해결하고자하는 파이써니스트라면 곁에 두고 자주 찾아 볼 만한 책이다.

     

  •  

    파이썬으로 자료구조까지

     

    정녕 개발자가 아닌데도 요새 가장 뜨거운 파이썬과 거기에 기본이 된다는 자료구조까지 올 것이 온 것이다.

    그러기에 더 더욱 도전이 되는 책이다.

     

    기초 튼튼. 핵심 쏙쏙 실력 쑥쑥 책표지에 제대로 정보가 정리되어 있다.

     

    1.jpg

     

    최근에 만난 가장 핵심만 정리되어 있는 책이라는 것이다.

     

    2.jpg

    넌 지금 알고리즘이 땡긴다. 첫 표지만 보고도 이렇게 많은 의미가 내포되어있는 것이다.

     

    3.jpg

     

    뒷표지도 시대감각이 있음이다.

    주요내용이 바로

    -숫자, 시퀀스, 컬렉션 등 파이썬의 데이터 타입

    -모듈, 클래스, 객체지향 등 설계에 필요한 지식

    -동시성, 가상환경, 단위 테스트 등 고급 주제

    -스택, 큐, 데크, 연결리스트, 해시 테이블 등 추상 데이터 타입

    -2차, 선형, 로그 선형 등 접근적 분석을 통한 시간복잡도 이해

    -다향한 시간복잡도의 정렬/검색 알고리즘

    -동적 계획법과 메모이제이션

    -그래프/트리 용어 이해 및 트리 순회 알고리즘 구현

     

    4.jpg

     

    상세하게 설명이 되어 있다.

    이것은 자료구조책인가 코딩책인가?

     

    5.jpg

     

    저자 이야기

    6.jpg

    하얀 책표지

    7.jpg

    초판 서문

    8.jpg

     

    목차

    9.jpg

     

    책장에 꼽았을때 이런 느낌

     

    10.jpg

     

    상세 내용

    12.jpg

     

    한빛미디어의 최고는 바로 미리 보기

    이책이 어떤 책인지 알수 있다는 것이다.

    http://preview2.hanbit.co.kr/books/wpso/

     

    그림1.png

     

    그림2.png

     

    크기도 그리 크지 않고 어려모로 도움이 되는 책이다.

    소실때 배웠던 자료구조보다 훨씬 더 세련되어 진 책이다.

     

  • 20190809_131036.jpg

     

    빠르고 간단하게 파이썬을 훑어볼 있는 책입니다.

     

    보통 자료구조, 알고리즘 책과 달리 책이 작습니다.

    주제에 대해 자세하게 설명하지는 않지만 중요 내용을 빠르게 있다는 장점이 있습니다.

     

    초반부에는 파이썬의 내장 데이터 타입들을 사용하는 방법을 설명하고, 중반부에는 디자인 패턴, 멀티 프로세스/스레드, 테스트등에 대한 설명 그리고 후반부에는 직접 자료구조와 알고리즘을 구현해 있도록 되어 있습니다.

     

    책에서는 파이썬 코드가 많은 부분을 차지하고 있습니다. 파이썬에 맞게 짜여진 코드를 보며 이해할 있는 부분은 책의 장점이라고 생각합니다.

     

    다른 프로그래밍 언어 사용 경험이 있고 파이썬을 처음 시작하시는 분이나, 파이썬을 다시 한번 살펴보고 싶은 분들에게 추천합니다.

     

  • 개발 분야에서 자료 구조와 알고리즘은 무척 중요하다. 어플리케이션을 개발할 때 어떠한 자료 구조와 알고리즘을 사용하느냐에 따라서 엄청한 성능 차이가 발생한다. 그리고 요즘 개발 회사에서는 수많은 지원자들로 부터 이러한 기본 지식을 잘 알고 있는 인재들을 찾기 위해 코딩 면접을 도입하고 있다. 그러므로 개발 회사에 취직을 원하는 사람들은 꼭 자료 구조와 알고리즘을 공부하도록 하자!

     

    개인적으로 자료 구조나 알고리즘을 공부하는데 있어서 파이썬을 선호한다. 기본적으로 언어가 배우기 쉽고 많은  자료 구조를 제공하고 있어서 알고리즘 문제 풀이에 집중할 수 있기 때문이다.

     

    이 책은 크게 3가지 파트(자료 구조, 알고리즘, 그래프)로 구성되어 있다. 자료 구조 파트에서는 파이썬에서 제공하는 주요 자료 구조의 사용법과 각각의 기능 (데이터 추가, 삭제, 검색 등) 수행 시의 시간 복잡도를 잘 설명해주고 있다. 각 자료 구조의 특징들은 어디서나 공통적이므로 잘 배워두면 다른 개발 언어에서도 자료 구조를 쉽게 사용할 수 있을 것이다.

     

    알고리즘 파트에서는 추상 데이터 타입, 점근적 분석, 정렬, 검색, 동적 계획법을 다루고 있다. 실제 개발 시에 문제를 해결하는데 사용될 수 있는 방법들이므로 잘 공부해두면 실전에 많은 도움을 받을 수 있다. 단, 해당 책은 알고리즘만을 전문적으로 다루는 책은 아니므로 설명이 부족하다고 느낄 수 있다. 그 때는 인터넷이나 다른 참고 문헌을 이용하자. 그래프와 트리도 코딩 면접이나 알고리즘 문제 사이트에서 많이 나오는 단골 분야이므로 반드시 알아두도록 하자.

     

    350여 페이지에 많은 내용을 담으려다 보니 일부 설명이 부족한 느낌이 없지는 않다. 하지만 핵심 내용이 잘 요약되어 있고 처음 자료 구조나 알고리즘을 공부할 때 어떤 것들을 공부해야 하는지를 가늠하는 방향표로써는 훌륭한 책이라고 생각한다. 그리고 각 장마다 포함된 연습 문제는 꼭 직접 풀어 보자. 직접 풀어야 자신의 지식이 된다.

  • 이 책은 한빛미디어의 '나는 리뷰어다' 이벤트를 통해 신청한 책이었습니다.

     

    KakaoTalk_Photo_2019-08-09-01-20-07.jpeg

     

     

    요즘 파이썬 많이들 공부하고 학습하지만 그래도 저는 이상하게 파이썬은 잘 안 익혀지더라고요 이전에도 책을 다른 책 봐도 나중에 다 까먹고;

     

    주로 자바 백 엔드 개발을 하다 보니 업무 수행하다가 다시 개인 공부할 때는 파이썬 하다 보면 두 언어 간의 차이 때문에 문법을 이해하는 데 조금 걸리더라고요. 저는

     

    일단  전반적으로 책은 되게 얇아 보이지만 속 내용은 알찬 책이었습니다.

     

    특히 휴대하기가 너무 좋습니다. 짱입니다~

     

    특히나 요즘 업무가 많아서 책을 지하철에서 주로 보았지만

     

    나름 이해하기 좋은 코드 예제에 결과 값 또한 책에 적혀 있어서

     

    머리로 코드를 컴파일 및 디버깅하면서 보기엔 좋은 책이었습니다.

     

    문법 또한 내용이 반이었지만 안에 내용에서는 디자인 패턴도 간략히

     

    데커레이터 패턴,옵서버 패턴,싱글턴 패턴 등을 설명하고 있습니다.

     

    그리고 좋은 습관에서 가상환경 잡는 법과 단위테스트가 주로 좀 자세히 봤습니다.

     

    저는 자바 개발자라서 단위테스트에서 파이썬은 어떤 것을 쓰는지 좀 궁금해서 ㅋ;;

     

    알고리즘부터는 일단 제가 파이썬 공부를 이제 막 시작해서 그런지 책을 보다가 궁금한 내용은 일단은 코딩하고 디버깅을 좀 해야 이해가 되더라고요

     

    이 책을 보시는 분들께는 이런 방법도 추천해 드립니다

     

    그리고 이 책은 일단은 적어도 2번 정도는 읽을 생각이라서 모르는 부분이 나오더라도

     

    당황하지 말고 건너뛰면서 읽었습니다 -_-;

     

    자료구조랑 알고리즘도 같이 한 권에 읽고 적어도 2번 정도 읽고 싶은 책을 고르신다면 이 책을 추천해 드립니다 ^^

     

    한빛 출판사의 나는 리뷰어다 활동을 통해 도서를 받아 작성한 리뷰입니다.

     

    #파이썬자료구조와알고리즘 #자료구조 #알고리즘 #파이썬 #한빛미디어 #나는리뷰어다

  • 알고리즘은 어렵고 복잡하다는 느낌을 받고 있고 프로그래밍을 해온지 생각보다 오래 되었음에도 알고리즘은 어려운 분야 중 하나다. 그래서 이번에도 조금이라도 익숙해 지고자 이 책을 읽게 되었다. 일단 알고리즘같이 어려운 내용은 너무 두꺼우면 지치기 쉬운데 다른 책에 비해 가볍고 얇은 점이 마음에 들었다.

    요즘 외출 할 때 이 책을 자주 들고 나갔었는데 들고 다니기에 부담스럽지 않은 크기와 무게다. 또 책이 두껍지 않다보니 언제 이 어려운 알고리즘을 언제 다 읽나? 하는 생각에서도 벗어날 수가 있다.

    그리고 알고리즘 뿐만 아니라 파이써닉한 코드, 효율적인 코드를 작성하기 위한 팁들이 도움이 되었다.

    그리고 프로그래밍 서적을 읽을 때 가장 먼저 하는 건 소스코드가 온라인에 공개되어 있나를 보는데 이 책의 소스코드도 다음의 URL에 공개가 되어 있다.

    아래 저장소에 Cracking the Code Interview(코딩 인터뷰 완전분석) 라는 유명한 책의 코드를 Python 으로 썼다는 내용이 있다. 기존 코딩 인터뷰 완전분석 책에 비해 가볍게 읽을 수 있지만 핵심적인 내용들 위주로 정리되어 있다는 점이 좋다. 이 책과 함께 아래 저장소에서 소개하는 코딩 인터뷰 완전분석이라는 책도 너무 유명한 책이라 코딩인터뷰를 준비하고 있다면 함께 보면 좋을 것 같다.

    이 책의 목차를 보면 기본적인 자료구조를 알고리즘과 함께 풀어볼 수 있도록 구성되어 있다.

    그리고 이 책의 좋은 점 중 하나는 테스트코드가 함께 있다는 것이다. 그래서 테스트코드를 작성하는 습관까지 함께 익힐 수 있게 되어 있다.

    읽으면서 가장 마음에 들었던 부분은 6.2 좋은 습관 과 6.3 단위 테스트부분이었다. 여기에는 가상환경, 디버깅, 프로파일링, 단위 테스트 내용이 나오는데 프로그래머로 성장하는데 있어 챕터 이름 그대로 좋은 습관이라 생각된다.

    또, 위에서 소개했던 코딩 인터뷰 완전분석 이라는 책의 소스코드 위치도 함께 소개한다. 코딩 인터뷰 완전분석이라는 책도 코딩테스트를 공부하는 사람들에게 필독서인데 이 책을 통해 파이썬으로 가볍게 읽어보고 코딩 인터뷰 완전분석을 읽으면 좋을 거 같다는 생각이 든다.

    아래 책은 Cracking the Code Interview의 Python 버전 저장소이고 이 책보다 조금 난이도가 있다. 그래서 입문자라면 이 책을 먼저보고 아래 저장소를 보고 따라해 보는 걸 추천한다.

  • 파이썬 자료구조와 알고리즘

     

    KakaoTalk_20190804_235721529.jpg

     

    파이썬을 주로 사용하지는 않지만, 자동화 스크립트를 작성할때 파이썬을 사용하곤 합니다.

    라이브러리도 많고, 작성하기 쉬운 점 때문인데, 필요할떄만 사용하다 보니 사용하는 문법이 한정적이고, 다른 언어에서 사용하던 문법 습관이 코드에 그대로 반영되곤 했습니다.

     

    제가 이 책을 읽게 된 동기는, 기존의 파이썬 문법책들은 파이썬이라는 언어를 알아가기엔 좋지만... 

    실제 자주 사용하지 않을 것 같은 내장함수까지 자세히 다루고 있어 끝까지 잘 안읽게되기 때문입니다. ㅎㅎ...

    파이썬이라는 언어를 자주 사용하지는 않기에, 실제로 필요한 코드를 작성할때 내가 알고있는 문법으로 작성한것이 최선인가에 대한 의문이 들게 되었습니다.

     

    그런 의미에서, 다른 언어로 작성해보았던 자료구조와 알고리즘을 파이썬 언어로 다시 작성할 수 있다면 더 재밌고, 파이썬에 익숙해지지 않을까 싶어서 읽게 되었습니다.

     

    이 책은, 파이썬 기초 책이 아니기 때문에 처음 파이썬을 접하는 분들이 보신다면 쉽진 않을 것 같습니다.

    파이썬의 특징이 글의 중간중간 나오지만, 직접적으로 파이썬은 어떤 언어이고, 어떤 특별한 특징을 가졌는지에 대한 순차적인 설명은 아니기에 만약 파이썬이 처음이신분은 기본 문법책과 함께 보시면 좋을 것 같습니다.

     

    각 파트들이 자료구조 및 알고리즘을 위한 문법 및 내장함수 -> 자료구조 -> 알고리즘 식으로 구성되어있으며.

    각 알고리즘을 해결하기 위한 디테일한 요소까지 다루고 있습니다.

    또한 알고리즘도 함께 설명되어 있어서 책의 이름대로 파이썬과 자료구조를 동시에 배울 수 있습니다.

     

    목차를 보면 알겠지만 놀랍게도 객체지향 프로그래밍 및 디자인 패턴도 다루고 있으며, 알고리즘 문제 해결에서 가장 기본이 되는 복잡도, 실행시간 계산도 다루고 있습니다.

     개인적으로 직접 문제-예제 형식으로, 특정 문제를 풀어나가는 방식이기 때문에 간단하게 문법들만 설명되어 있던 다른 책들보다 더 많은 도움이 된 것 같습니다.  

     

    KakaoTalk_20190804_235701622.jpg

     

     

    이 책만 보면 파이썬 문법과 알고리즘은 마스터 했다 까지는 아니더라도, 분명 파이썬을 이용하면서 어떻게 작성해야 하는가 고민했던 부분에 대해서 어느정도 해답을 찾을 수 있을 것 같습니다.

     

     

    한빛출판사의 도서를 제공받아 작성한 리뷰입니다

     

  •  

    6460.jpg

     

    컴퓨터관련 전공자들이라면 자료구조와 알고리즘이라는 용어를 전공에서 중요한 과목이라고 생각할 것이다. 적어도 내 경우에는 그렇다. 나는 C와 C++언어를 이용한 자료구조와 알고리즘을 수강했었는데, 그 당시는 이해하기 어려웠던 기억이 있다. 이제는 그 개념을 많이 이해하고 다양한 방법으로 자료구조와 알고리즘을 구현하다보니 많이 익숙해졌다. 다른 언어로 구현하는 자료구조와 알고리즘을 만나도 그 근간은 비슷할 것이라는 생각이 내 머리속에 잡혔다.

     

     

    요즘 파이썬에 대해 열심히 공부중인데, 그 와중에 한빛미디어에서 출간된 파이썬 자료구조와 알고리즘 이라는 책을 만나게 되었다.

    이 책의 원제목은 An introduction to Python & Algorithms 이고 관련자료는 깃허브를 참조하면 좋다.

    (https://github.com/bt3gl/Python-and-Algorithms-and-Data-Structures)

    파이썬에 대해선 완전 초보인데, 갑자기 공부해야할 학습 레벨이 최상위권으로 올라가는 느낌이다. 

    저자는 파이썬을 통해 거의 의사코드(pseudo code) 그대로 로직을 작성할 수 있다는 점에서 알고리즘 학습에 유용하다고 얘기한다. 그래서 이 책에서는 개발자에게 필수적인 자료구조와 알고리즘에 대해 파이썬의 기능을 최대한 활용하여 보여주고 있다.

     

    이 책은 PART1 1 자료구조, PART 2 알고리즘, PART 3 그래프와 트리 로 구분되어 있다.

     

    PART 1 자료구조에는 

    숫자, 내장 시퀀스 타입, 컬렉션 자료구조, 구조와 모듈, 객체지향 설계, 파이썬 고급 주제 에 대한 내용을 다루고 있고, 2장과 3장의 끝에는 연습문제가 수록되어 있어 연습문제에 나온 코드를 통해 학습한 내용을 복습할 수 있다.

    PART 1은 자료구조 뿐만 아니라 파이썬 문법, 객체지향 설계에 대한 설명도 포함하고 있다. 각 항목이나 메서드에 대한 설명을 간단히 하고 예제를 많이 보여줌으로써 사용자에게 예제를 통한 학습을 이끈다.

     

    6461.jpg

     

    PART 2 알고리즘에는

    추상 데이터 타입, 점근적 분석, 정렬, 검색, 동적 계획법 에 대한 내용을 다루고 있다. 스택, 큐, 데크, 리스트, 해시테이블 같은 기본적인 내용부터 정렬(sort), 검색(search)와 같은 심화된 알고리즘의 내용을 볼 수 있다.

     

    6462.jpg

     

    PART 3 그래프와 트리에는 

    그래프 기초, 이진 트리, 트리 순회,한국어판 참고자료에 대한 내용을 다루고 있다. PART 2에서의 내용보다 더 심화되어 그래프와 트리와 같은 고수준 알고리즘의 내용을 볼 수 있다.

     

    이 책에서는 책 내용 외에 부가적인 설명은 역주로 처리하여 참고할만한 사이트 정보를 함께 제공한다. 이 책을 보면서 자료구조와 알고리즘에 대한 개념도 이해하고 파이썬을 이용한 프로그래밍 실력도 함께 키울 수 있을 것 같다. 

     

    책에 나온 예제 코드는 아래의 깃허브 저장소에서 다운로드받을 수 있으니 참조하면 좋다.

    https://github.com/bt3gl/Python-and-Algorithms-and-Data-Structures

     

    책의 예제 코드를 직접 코딩해보거나 깃허브에서 다운로드 받아서 하나하나 분석해본다면 자료구조와 알고리즘이 쉽게 이해될 것이다.

     

    한빛출판사의 나는 리뷰어다 활동을 통해 도서를 제공받아 작성한 리뷰입니다

     

    #파이썬자료구조와알고리즘 #자료구조 #알고리즘 #파이썬 #한빛미디어 #나는리뷰어다

  • #이 책은 한빛미디어의 '나는 리뷰어다' 이벤트를 통해서 수령한 책입니다. 프로그래밍에 관한 책은 선구안이 생길 정도로 많은 책을 본 것도 아니고, 프로그래밍에 대해서 깊은 이해를 하고 있는 것도 아니라서 기회가 될 때마다 최대한 많은 책을 보려고 노력하고 있습니다. 이런 관점에서, 어느정도 검증된 출판사라고 할 수 있는 한빛미디어에서 출간한 서적을 접해볼 수 있는 '나는 리뷰어다'라는 이벤트가 퍽 유익한 이벤트라고 생각합니다. 관심 있는 분들은 응모해보시길 추천드립니다. 책을 무료로 받았다고 해서 제 서평에 영향을 미치지는 않습니다.

     

     이 책은 제목에도 들어있는 바와 같이 자료구조와 알고리즘에 대한 책입니다. 컴퓨터 과학을 이루는 중요한 축 중 하나인 개념들이라서, 프로그래밍 공부를 하는 입장에서 아주 중요한 개념들이라고 할 수 있습니다. 하지만 중요한 개념들은 대체로 비슷한 특징을 가지고 있습니다. 이는 재미가 없다는 것입니다. 자료구조와 알고리즘도 마찬가지입니다. 분명 중요한 개념이라는 것을 인지하고 있고, 제대로 공부할 경우 큰 도움이 될만한 도구라는 것은 알겠는데, 막상 책을 펼치면 참 재미가 없습니다. 특히 알고리즘을 다룬 책들은 보통 수학 공식처럼 보이는 의사코드(수도코드, Pseudo-code)로 되어 있는 경우가 많아서 책을 읽는 과정 자체가 쉽지 않고, 자료구조는 지루하다는 점이 치명적입니다. 그리고 이 책도 큰 틀에서 보면, 재미가 없었습니다. 다만, 그 중에서는 조금 나았습니다. 

     

     책의 소개 중에 이런 문구가 있습니다. '파이써닉한 코딩으로 배우는 핵심 알고리즘'. 책을 읽고 난 후에 느낀 감상도 비슷합니다. 알고리즘 파트나 자료구조 파트가 대부분 설명보다는 파이썬 코드의 분량이 상당합니다. 그래서 지루함이 조금 덜 합니다. 일단 코드는 설명과 달리 짧고 돌려볼 수 있기 때문입니다. 다만 코드 베이스로 쓰여진 책이기 때문에, 그냥 책을 주욱 읽는다고 경험치가 쌓이는 느낌이 들지는 않습니다. 특히 책의 코드에 아주 친절한 주석이 달려있다던지, 설명 파트가 충실한 느낌(분량이 분량인지라)이 드는 편은 아니라서 코드를 직접 보면서 꼭꼭 씹어먹어야 소화가 되고, 내 경험치가 쌓이는 느낌을 받을 수 있을 것 같습니다. 

     

     책의 물리적인 사이즈가 작고 각 개념이 연결성을 갖는 것이 아니라 개별적으로 구성되어 있다는 점은 위에서 언급한 특징을 한층 심화시키면서 동시에 유용합니다. 우선 책의 사이즈가 작은 만큼 설명이 충실한 편은 아니라서 소화시키는데 노력이 퍽 요구됩니다. 그리고 각 개념들이 개별적으로 구성되어 있어서 하나를 소화시켰다고 다음 개념의 이해가 쉬워지는 편도 아닙니다. 하지만 다시 생각해보면, 어차피 알고리즘이나 자료구조라는 이름으로 묶인 개념들이 유기적으로 연계되어 하나의 큰 개념을 구성하는 것이 아니라, 카테고리화 해놓은 것에 불과하기 때문에 개별적으로 구성되는 것이 정상이긴 합니다. 

     

     이런 특징은 실용적인 면에서 장점이 될 수 있다고 생각합니다. 어차피 각 개념이 연결된 것이 아니기 때문에, 자료구조나 알고리즘이나 읽다가 지루하거나 재미가 없으면 그냥 다음 개념으로 바로바로 넘어가면 됩니다. 저 같은 경우, 그냥 2~3번 읽을 생각을 하고 힘 빼지 않으면서 잡지 보듯이 보다가 관심이 있는 주제에 대한 부분에서 멈춰서 설명 보고 코드 보고, 코드 한번 손코딩으로 써보고 다시 잡지 보듯이 넘기면서 읽었습니다. 그렇게 4번 정도 보니, 막상 크게 힘을 들이지는 않았는데 대부분의 개념을 1회 이상은 본 것 같습니다. 그리고 작은 책의 사이즈는 그냥 주머니에 책을 넣고 다니면서 읽는데 도움이 되었습니다. 앞서 말한 바와 같이 가볍게 잡지 보듯이 본 까닭에 시간을 잡고 한 자리에서 책을 읽은 시간이 얼마 안됩니다. 책을 읽은 대부분의 시간이 잠깐잠깐 시간이 날 때 가볍게 한 두개의 주제를 읽는 식으로 채워졌습니다. 

     

     그런데 별거 아니라고 생각한 이런 특징들이 생각보다 별거였습니다. 그동안 자료구조와 알고리즘에 대한 책을 사놓고 중간에 접어버리거나, 스트레스 왕창 받다가 숙제 해치우듯이 1~2시간쯤 잡고 후르륵 넘겨버린 적이 대부분이었는데, 이 책은 '프로그래밍 잡지 보듯이 보자'라는 마음을 먹어서 그런지, 되게 가볍게 스트레스 안받으면서, 각 주제에 나름대로 몰입을 해가면서 책을 볼 수 있었습니다. 이 점이 별거 아닌 것 같은 이 책이 가진 장점이 생각보다 별거가 되게 만들었습니다. 물론 지금도 주요 알고리즘에 대해서 아주 명확하게 설명을 해보라고 하면, '어… 음…' 이라고 할 것 같기는 한데, 대충 이름을 들었을 때, '대충 ~이랬던 것 같은데…'라는 생각이 들긴 합니다. 사실 이렇게 짧은 단상만 떠오르면 필요할 때 그냥 구글링을 해서 찾아보면 되니까 확실히 아예 몰랐을 때보다는 경험치가 쌓였다고 생각합니다. 그리고 코드가 의사코드나 수학적 코드가 아니라 파이썬으로 되어 있어서 큐를 직접 파이썬으로 구현해보라고 하면, 꾸역꾸역 구현을 할 수는 있게 되었습니다. (물론 아름답고 효율적인 파이써닉한 코드일지는 모르겠습니다.)

     

     사실 이 책을 읽으면서 배운 점이 별 것은 아닙니다. 지금도 스택오버플로우나 깃헙에 가면 좋은 코드를 바로바로 만날 수 있습니다. 다만 책을 읽기 전과 후의 차이라면, 예전에는 위와 같은 사이트에서 코드를 봤을 때, '어…' 하면서 겁이 나거나 멍을 때렸다면, 이젠 대충 이런 구성으로 되어 있구나라고 읽을 수는 있게 되었습니다. 사실 큰 변화가 아니라면 아닐 수 있지만, 제 입장에서는 나름 책 한 권 읽은 것치고는 많이 배웠다는 생각이 들어서 참 유익했다고 생각합니다. 

     

     추가적으로 사실 이벤트에 참여하면서 더 읽어보고 싶었던 책은 '파이썬 날코딩으로 알고 짜는 딥러닝'이라는 책이었습니다. 유용한 라이브러리를 활용하는 것도 물론 좋지만, 날코딩을 통해 머신러닝/딥러닝의 원리를 습득하는 것도 의미가 있다고 생각했기 때문입니다. 그런데 어쩌다보니 읽게 된 이 책도, '파이썬 날코딩으로 알고 짜는 자료구조와 알고리즘' 정도는 되는 것 같아서 애초에 희망했던 학습 방법은 충족이 된 것 같습니다. 목적으로 했던 대상은 아니지만요. :) 

     

    20190725_182359.jpg

     

     

결재하기
• 문화비 소득공제 가능
• 배송료 : 0원배송료란?

배송료 안내

  • 책, 아이템 등 상품을 3만원 이상 구매시 무료배송
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
파이썬 자료구조와 알고리즘 : 기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
파이썬 자료구조와 알고리즘 : 기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
파이썬 자료구조와 알고리즘 : 기초 튼튼, 핵심 쏙쏙, 실력 쑥쑥
구입처*
구입일*
부가기호*
부가기호 안내

* 회원가입후 도서인증을 하시면 마일리지 500점을 드립니다.

* 한빛 웹사이트에서 구입한 도서는 자동 인증됩니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한됩니다.

* 절판도서, eBook 등 일부 도서는 도서인증이 제한됩니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실