러닝 파이썬(상) - 교보문고

파이썬을 다루는 데 필요한 거의 모든 지식이 담긴 이 책은 파이썬 초보자를 단숨에 중급자로 끌어올릴 것입니다. 저자의 오랜 교육 과정을 토대로 만들어진 이번 5판은 방대한 분량이지만 친절

www.kyobobook.co.kr

러닝 파이썬은 초보자를 중급자로 안내하는 책이다.

 

그 동안 몇 개의 파이썬 책들을 리뷰했는데 입문용 교재들이란게 다들 비슷할 수 밖에 없다.

 

어느 정도까지 언어를 이해해야 하는가는 언어를 사용하는 목적에 따라 다를 수 있다.

 

파이썬 같은 고급언어를 사용하는 것은 소프트웨어 계층이 주는 추상성의 장점을 한껏 누리기 위해서이다.

 

파이썬을 사용하면서 기계어를 사용해서 컴퓨터에게 명령을 내리기 위하는 사람은 없다.

 

하지만 파이썬의 내부 구조에 대하여 더 많은 지식을 알게 되면 프로그래밍을 바라보는 안목이 달라질 것이다.

 

많은 파이썬 입문서들이 쉬운 접근을 선호한다. 일단 내용을 읽고 타이핑을 해서 실행을 시켜봄으로써 하나씩 알게된다.

 

러닝 파이썬은 좀 더 많은 설명과 함께 정석적인 접근방식을 추구한다. 그러다 보니 책의 내용이 많다. 상권만 970페이지에 달한다. 상하권을 다 합치면 2000페이지에 달하는 대단한 분량이다.

 

이전 리뷰한 파이썬 코딩도장의 경우 책의 대부분에 실습에 포커스가 맞춰져 있는 반면 러닝 파이썬은 이론적인 설명이 상당한 분량을 차지한다. 필자가 이 책을 구한 것은 파이썬 이론적 배경에 대한 내용을 더 읽고 싶어서 였다. 즉 읽는 파이썬 책이다. 실습 위주의 파이썬 책들을 많이 보다보니까 실습이 있으면 또 이론 배경도 필요해지는 시점이 온다. 그럴 때는 좀 읽는 코딩 책이 필요하다. 이론적 뒷받침 없이 코딩만 하다 보면 뭔지 모를 한계와 함께 슬럼프가 올때가 있다. 러닝 파이썬은 그럴 때 필요한 책이다.

 

상권에서는 함수와 모듈 패키지까지 다룬다. 클래스부터의 내용은 하권에 있으니까 입문서로써는 상당한 깊이가 있다.

 

외국의 저명한 책들이 그렇듯이 매우 상세하다. 예를 들어서 보통의 교재에서는 파이썬은 왜 타입을 선언하지 않는지 등에 관한 질문을 하지 않고 다음과 같이 설명한다.

a = 10 #변수 a에 숫자 10을 할당한다

러닝 파이썬에서는 이를 동적 타입 변환이라는 챕터에서 상세하게 설명한다. 변수를 생성하면 어떤 일이 벌어지는지? 어떻게 파이썬은 10이 숫자 타입인지 알 수 있는지에 대한 대답을 얻을 수 있다.

 

C나 자바의 사용자가 파이썬을 처음 접할 때 왜 파이썬에서는 타입을 선언하지 않는 것인지? 와 같은 질문을 던질 수 있다. 이에 대한 해답은 파이썬의 모든 자료형은 객체이기 때문이다. 심지어 숫자 10도 객체로 생성된다. a라는 이름으로 객체 10이 저장된 메모리 공간을 가리키는 참조가 있다. 즉 이름 a가 생성할 때 객체 10의 주소값을 저장한다. 정도로 설명이 가능하다. C나 C++에서 메모리를 다루어 본 사람은 의미를 알 수 있을 것이다.

 

파이썬은 자바처럼 꼭 객체의 형식으로 코딩하지 않아도 된다. 전역변수와 함수를 많이 사용하는 방법으로 코딩이 가능하다. 물론 전역변수를 많이 쓰는 것은 권장하지 않는다. 그러나 가능은 하다는 것이다. (전역변수는 설계를 제대로 하지 않아서 애매한 경우에 사용한다) 하지만 파이썬의 모든 것은 객체로 이루어져 있다. 이 또한 파이썬의 특성이기도 한데, 정수 1,2,3... 은 모두 숫자이고 문자열도 객체 'python' 모든 자료는 객체이다. 함수형 프로그래밍을 하더라도 객체를 가지고 함수처럼 사용하는 것이다.

 

러닝 파이썬은 이런 세세한 사항 하나하나에 대하여 상세히 설명한다. 어떻게 보면 대부분을 몰라도 코딩에 지장이 없는 내용일 수도 있다. C언어를 공부하면서 컴퓨터 구조에 대해서 배운 사람이라면 당연한 내용들인데 파이썬으로 입문한 사람들에게는 생소한 내용일 것이다. 그래서 교재의 난이도 자체는 어렵지 않아 보이지만 생초보자에게는 추천하지 않는다. 파이썬은 빨리 빨리 배워서 사용할 수 있다는 점이 가장 큰 장점인데 이 책으로 시작하면 그런 장점들에 대해서는 하나도 누릴게 없다. 이 책을 보기 전에는 한 두권의 파이썬 교재를 학습하는 것을 추천한다.

 

파이썬 교재야 워낙 시중에 입문서들이 많이 나와있다. 번역된 외서도 많고 필자가 리뷰한 점프 투 파이썬도 추천할 수 있다.

 

 

파이썬 교재 | 200만이 선택한 DO IT! 점프 투 파이썬 리뷰

교보문고 링크 Do it! 점프 투 파이썬 - 교보문고 파이썬 4년 연속 베스트셀러 1위! ★★★★ 《Do it! 점프 투 파이썬》 전면 개정판 출시! 문과생도 중고등학생도 직장인도 프로그래밍에 눈뜨게 만

digiconfactory.tistory.com

요새는 한국사람이 쓴 교재의 수준이 상당히 높아졌다. 20년 전에 처음 프로그래밍을 접했을 때는 정말 책도 정보도 없었다. 한국이 IT강국이냐 아니냐는 출판된 책의 숫자와 수준에서도 볼 수 있을 것이다. 미국이나 일본 등 책을 많이 만드는 나라에 비하면 부족할지 모르겠으나 그래도 필자가 봤을 때는 이 정도면 세계에서도 앞서 가고 있다고 생각한다. 실리콘 밸리에서 경험을 쌓고 한국으로 돌아와 교육을 하시는 분들도 많기 때문에 한국의 IT교육 수준은 나날히 좋아지고 있다.

 

 

약간의 단점을 이야기하자면 번역이 썩 매끄럽지는 않다. 이건 이 책만의 문제가 아니라 대부분의 코딩책이 번역될 때 그렇게 된다. C기초플러스 등 질좋은 외서가 번역될 때 질낮은 번역의 한계에 부딪힌다. 질이 낮다고 해야하나 솔직히는 모르겠다. 원문을 최대한 살려서 번역하면 당연히 매끄럽지가 않고, 의역을 남발하면 원저자의 의미를 훼손하게 되니 번역하는 입장에서도 한계가 있을 것이다. 이런 일은 영어를 한글로 번역할 때 흔히 발생한다.

 

 

근데 사실 저자의 뜻을 100프로 이해하고 싶다면 영어원서로 읽어야 한다. 아무리 좋은 번역서라도 그 맛을 살리긴 어렵다. 실리콘밸리에 입성한 많은 IT개발자들이 영어교육의 중요성에 대하여 설파하고 있다. 파이썬의 경우도 어쨋든 신 기술이 나오면 다 영어로 되어있다. 파이썬 공식문서에서는 한글 버전도 지원하는데 영 알아듣기가 어렵다.

 


번역본을 읽는 방법

 

그렇다면 번역본을 잘 활용하는 방법이 있을까?

 

사실 방법이 있다. 필자의 방법은 원서와 번역본을 번갈아 보다가 알게된 것이다.

 

예를 들어 아래 러닝 파이썬의 문장들을 읽는다고 하자.

 

- 변수는 객체의 링크를 위한 공간을 가진 시스템 테이블의 항목이다

 

- 객체는 자신이 의미하는 값을 표현하기에 충분한 공간을 가진 할당된 메모리 조각이다

 

- 참조는 변수를 객체로 자동으로 연결하는 포인터다.

 

어떤가? 뭔가 어색하기도 하고 딱딱하기도 하다.

 

문장을 스스로 재구성하면서 읽으면 된다. 재구성할 때는 문장을 잘라가면서 읽는다.

 

다시 구성을 하면

 

- 변수는 객체의 링크를 위한 공간을 가진다. / 변수는 시스템 테이블의 항목이다.

 

- 객체는 자신이 의미하는 값을 표현한다. / 객체는 충분한 공간을 가진 메모리 조각이다.

 

- 참조는 변수를 객체로 자동으로 연결한다. / 참조는 포인터다.

 

잘라서 재구성하니까 훨씬 이해가 쉽고 명료하다. 보통 영어에서 용어를 정의할 때 [ 주어 + 동사 + 목적어 that 목적어에 대한 설명 ] 과 같은 형식으로 하다보니까 이걸 한글로 바꿀 때 뒤죽박죽되는 경향이 많다. 예를 들어 세번째 문장에서 원문은 이랬을 것이다(원문을 본적은 없다 하지만 추측해서)

 

참조는 포인터다. 이 포인터는 변수를 객체로 자동으로 연결한다. 라는 영어 문장이다.

 

Reference is a pointer which connects variable with object automatically.

 

이것을 한글로 번역하려다 보면

 

참조는 변수를 객체로 자동으로 연결하는 / 포인터이다. 

 

가 되버린다. 여기의 핵심문장은 참조는 포인터다. (Reference is a pointer) 였는데 번역된 문장에서는 수식어가 길어지면서 그 의미가 약해진다.

 

마치 중학교 국어시간에 문장 끓어서 읽기와 비슷한 것 같은데 맞다. 이렇게 끓어서 읽으면 번역본을 읽는 것도 큰 문제가 되지 않는다.

 

훌륭한 내용의 책들을 번역이 별로라고 해서 읽지 않으면 자신만 손해다. 아무래도 컴퓨터 소프트웨어의 발달이 영어권에서 발생하였기 때문에 이 정도의 불편은 감수할 수 밖에 없다. 그보다 잘 읽는 방법을 생각하고 틈틈히 영어실력도 쌓아서 계속 영어 레퍼런스들의 사용법에 익숙해지는게 현명한 길이다.

 


 

공유하기

facebook twitter kakaoTalk kakaostory naver band