관리 메뉴

빌노트의 노트

이것이 자료구조 + 알고리즘이다 with C언어 책 리뷰 본문

IT책

이것이 자료구조 + 알고리즘이다 with C언어 책 리뷰

빌노트 2022. 8. 27. 19:52
반응형

파이썬과 같은 프로그래밍 언어가 자주 사용되면서 자료구조, 알고리즘은 만드는 것이 아니라 라이브러리고 그냥 갖다 쓰면 되는 존재로 여겨지고 있습니다. 초급 개발자가 빨리 결과물을 만들어 내기 위해서는 이런 방식이 효과적입니다. 우리가 직접 자료구조, 알고리즘을 다룰 일은 생각보다 많지 않을 수도 있습니다. 하지만 배워야 하는 이유도 있습니다. 나중에 고급 개발자로 일하다 보면 자료구조, 알고리즘 선택에 있어 도움이 되기 때문입니다. ‘이런 상황에서는 이 자료구조가 좋지’, ‘저런 상황에선 저 알고리즘을 선택해야 해’라고 판단할 수가 있습니다. 만약 하드웨어를 직접 다루는 사물인터넷, 임베디드 개발자라면 직접 자료구조, 알고리즘을 수정하거나 다시 개발해야 할지도 모릅니다. 요즘은 구글과 같은 유명 인터넷 기업에서 코딩 테스트를 하는데 그것을 대비하기 위해서라도 자료구조, 알고리즘 공부는 필요합니다. 개발자가 되기 위해서 필수는 아니지만 (예전에는 필수였음) 배워두면 반드시 도움이 되는 공부라고 생각합니다.

이것이 자료구조+알고리즘이다 with C언어’ 이 책은 제가 본 자료구조, 알고리즘 책 중에 가장 괜찮은 책이라고 생각합니다. 예전 2009년에 처음 나왔던 ‘뇌를 자극하는 알고리즘’을 전면 개정하면서 제목도 바뀐 것으로 보입니다. 예전부터 사랑받고 검증된 내용이라 믿고 봐도 될 것 같습니다. 학교 다닐 때 저도 봤던 기억이 있는데 예전보다는 확실히 책이 더 깔끔하고 가독성이 좋아졌네요.

 

자료구조, 알고리즘이라는 것이 배우는 내용이 정해져있어서 목차를 보니 컴퓨터 공학과 시절에 배웠던 반가운 단어를 볼 수 있었습니다. 이 책은 크게 자료구조, 알고리즘, 알고리즘 설계 기법 이렇게 3부분으로 나눌 수 있습니다. 순서대로 보면서 공부하면 됩니다. 각각의 자세한 공부 내용은 아래와 같습니다.

자료구조
리스트, 스택, 큐, 트리

알고리즘
정렬, 탐색, 우선순위 큐와 힙, 해시 테이블, 그래프, 문자열 탐색

알고리즘 설계 기법
알고리즘 성능 분석, 분할 정복, 동적 계획법, 탐욕 알고리즘, 백트래킹

목차만봐도 짐작하겠지만 자료구조는 데이터를 담는 그릇이라 보면 되고 알고리즘은 이런 자료구조로 다양하게 활용하는 것이라 보면 대강 맞습니다.

 

요즘 힙한 파이썬을 사용하지 않고 C언어를 사용해서 자료구조, 알고리즘을 설명합니다. 다른 건 몰라도 자료구조, 알고리즘은 (C언어의 포인터 같은 걸로) 메모리를 직접 다루면서 배우는 게 필요하기 때문에 괜찮은 선택이라 생각합니다. C언어를 잘 모르면 100% 이해하는 건 힘들지 몰라도 전반적인 내용을 이해하는 데는 큰 문제가 없다고 생각합니다. (그래도 포인터는 아는 것이 좋지요.) 여기에 나온 예제를 돌려보면서 이번 기회에 C언어도 가볍게 배워보는 것을 추천하고 싶네요. C언어를 안다는 건 이직을 할 때도 확실히 유리하다 생각합니다. 남들이 어려워하고 안 하는 걸해야 가치가 올라가지 않을까요?! 사실 저는 C언어로 코딩을 시작해서 저에게는 참으로 친근한 존재입니다.

책의 뒤쪽으로 갈수록 내용이 어려워지는 것은 어쩔 수 없습니다. 거의 모든 공부가 그러하고 이 자료구조, 알고리즘이라는 것이 특히 더 뒤쪽이 어렵습니다. 라이브러리 사용만하는 개발에서 벗어나 내가 뭔가를 밑에서부터 개발할 수도 있겠다는 마음으로 끈기를 갖고 하나하나 도전하면 어떨까 싶네요. 처음에 공부 가성비는 떨어질지 모르나 여기에 취미를 붙이면 컴퓨터가 돌아가는 방식을 좀 더 알게 되면서 더 나은 개발자로 확실히 레벨업을 시켜줄지도 모릅니다.

 

이것이 자료구조 + 알고리즘이다 with C언어. 영어도 잘 모르고 봤던 원서, 어설프게 번역된 책으로 공부했던 저로서는 예전에도 이런 책으로 공부를 했었더라면 더 잘 이해했을거라 생각을 합니다. 이번에 그림, 코드 등 책의 구성이 전반적으로 한층 더 깔끔해져서 자료구조, 알고리즘을 이해하는데 큰 도움이 됩니다. 만약 이 책과 연습문제 푸는 과정까지 재미있다면 분명 고급 개발자로 성장하리라 믿어 의심치 않습니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형
Comments