본문 바로가기
jisung's 책읽기/기술서

그림으로 개념을 이해하는 알고리즘 #2

by jisungStory 2018. 9. 11.
반응형


그림으로 개념을 이해하는 알고리즘 

해쉬 테이블 (딕셔너리)


 책을 가장 읽는 가장 큰 이유는 평소에 내가 알지 못하고 지나쳤던 지식에 대해 알게 됨으로써 인식하지 못하고 지나쳤던 사실에 대해 한번더 생각해 보는 기회를 가지는데 있습니다. 이 책은 코딩을 공부하면서 그냥 지나쳤던 기본 원리에 대해 한번 더 생각하게 해줌으로써 아무렇지 않게 쓰고 있던 코딩을 원리를 되짚어 보게 해줍니다. 

 이번에 짚어 볼 부분은 '해쉬 테이블'입니다. 저의 경우에 컴퓨터 공부에 가장 어려운 부분은 용어의 사용이었습니다. 항상 어떤 새로운 분야에 접어 들때는 그 용어의 사용이 어떻게 이루어지는지를 익히는 것이 중요합니다. 특히 이런 기술 분야에서는 더욱더 용어의 정리가 필요합니다. 하지만 항상 새롭게 개발되는 수많은 기술 용어를 모두 접하기 어렵기 때문에 개발자들은 'Cheet Sheet' 라는 자시만의 표를 만들어 공유하고 스스로도 그 용어에 대한 적립을 해나갑니다. 이 책은 그 수많은 컨닝페이퍼를 모아 둔듯한 느낌입니다. 

 해쉬 테이블은 많은 언어에서 딕셔너리(dictionary) 라는 이름으로 구현되어 있습니다. 그 이름에 맞게 특정 항복에 대한 값을 정의 해 놓은 데이터 구조 입니다. 사용방법은 다음과 같습니다. 

Python

dict = {'name': 'Jisung', 'Age' = 20, 'Class': 'First'}

SWIFT

var dict = ["name": "Jisung", "Age" = 20, "Class": "First"]

 

 몇몇 가지 사소한 차이를 보이고 있지만 같은 개념에서 출발한 데이터 구조(Data Structure)라는 것을 이해 할 수 있습니다. 하지만 우리는 그저 문자로 구현된 딕셔너리의 모습만 볼 뿐 실제로 이 개념이 메모리에서 어떤 형태로 구현되는지는 눈으로 확인 할 수 없습니다. 실제로 메모리는 너무나 작고 하드웨어 설계자가 아닌 다음에야 그 구조도를 이해하기 힘들기 때문입니다. 하지만 이 책에서는 매우 단순하게 해쉬 테이블의 모습을 개념화 시켜서 보여 줍니다. 


  자세한 내용은 책을 참고하시기 바랍니다. 아마 지금 코딩을 공부하는 학생들을 해쉬 함수를 직접 구현할 필요는 없을 것입니다. 많은 프로그래밍 언어가 이미 간편한 방법으로 딕셔너리를 사용할 수 있도록 제공하고 있고 이미 그 수준을 뛰어 넘어 더 복잡한 기능 들도 구현하여 제공하는 플랫폼들이 많이 등장하고 있습니다. 이미 신입 프로그래머 들에게는 어떤 언어를 공부 해야하는 지 혼돈의 소용돌이 속에 들어 있을 거라고 생각합니다. (저도 그랬으니까요) 그럴때는 자신이 하고 싶은 것을 먼저 생각해 보는 것이 좋을 거라고 생각합니다. 저의 경우에는 어플리케이션을 만들어 보고 싶다는 열망이 너무 커서 웹프로그래밍보다 아이폰 어플리케이션을 만드는 것을 먼저 시작했습니다. 물론 모든 개인이 각자의 길에 맞는 언어와 방법이 있을 거라고 생각합니다. 하지만 그 여정에서 자신이 진정으로 원하는 것이 무엇인지 잊지 않고 나아가는 것이 가장 중요합니다. 

 수 많은 코딩을 공부하는 학생들에게 자신이 사용하고 있는 기능들이 어떤 원리고 운영되는지 이보다 쉽게 설명해주는 책은 찾기 어렵습니다. 혹시 알고리즘을 공부하기 시작하는 학생들이 있다면 이 책을 통해 시작해 보는 것도 좋을 거라고 생각합니다.


2018/08/24 - [하루 책읽기/하루 기술서] - 그림으로 개념을 이해하는 알고리즘






반응형

댓글