책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
해킹에 관심과 열정을 보이는 초보 해커를 대상으로 사이버 보안에서 자주 사용하는 내용을 중심으로 파이썬 3 문법을 소개한다.
추천의 글
저자를 안 지도 10년 가까이 됐다. 저자는 강의를 하고 나는 수업을 듣던 관계에서 이제는 가끔 만나 소주 한 잔 기울이며 이런저런 얘기를 나누는 친근한 사이가 됐다. 얘기 주제는 즐거운 소식이나 역사 이야기 아니면 하소연 등등.
저자와 만나 얘기를 나누다 보면 저자 특유의 표정이 있다. 본인이 굉장히 관심을 가지거나 중요시하는 부분에 대한 얘기가 나올 때는 그 말투나 눈빛이 사뭇 매서워진다. 처음에는 잘 몰랐지만 몇 번의 만남으로 그 특성을 알고 난 뒤에는 그러한 말투나 눈빛이 나올 때 나도 관심을 더 기울이고 경청하게 된다.
파이썬 얘기를 나눴을 때 저자의 표정 역시 그러했다. 이 책을 저술하기 전인 2015년경 컴퓨터 프로그래밍 언어를 배워보기 위해 저자에게 자문을 구한 적이 있다(예전에 잠시 공부하긴 했지만 컴퓨터는 전반적으로 초보 수준이다). 당시 C 언어를 공부하겠다고 질문했는데 돌아온 답변은 “파이썬 언어를 해보는 것이 어떠냐?”는 권유였다. 그리고 파이썬에 대해서 장점과 단점을 구체적으로 말해주는데 그 표정이나 말투에서 파이썬 언어에 대한 애착을 느꼈다.
그리고 또 한 가지. 이번 원고를 받아 내용을 읽다 보니 저자의 평소 어투와 비슷하다는 느낌도 받았다. “착오가 없길 바란다.” 등 편하게 대화하듯 쓰여진 문장을 보니 읽는 독자에게 하나라도 더 알려주기 위한 노력도 살짝 엿보인다.
난 전산 지식은 미천하기 때문에 책의 수준이나 내용의 충실함 등을 언급하는 것이 망설여진다. 하지만 평소 파이썬에 대한 저자의 애착이나 책 전반에 써져 있는 저자의 표현 방법을 볼 때 이 책 한 권을 쓰기 위해 엄청난 정성을 들였음을 확신한다.
서울 종로 경찰서 생활 안전과 경정 이상현 경정
이 책은 언어에 관한 책이다.
언어가 없는 삶을 상상할 수 있을까? 일상생활의 간단한 욕구부터 어렵고 복잡한 형이상학적 내용에 이르기까지 모든 것을 언어라는 도구를 통해 표현하고 이해한다.
파이썬도 마찬가지로 인간의 의사 표현을 컴퓨터가 이해할 수 있는 언어의 한 종류이다. 컴퓨터와 인간 사이에 수많은 언어가 있겠지만 이 책에서 다루는 파이썬은 초보자들에게는 접근하기 쉽고 전문가들에게는 편하고 즐거운 언어이다.
컴퓨터 언어를 모르는 사람에게 있어서 컴퓨터는 한낱 고철에 불과하다. 하지만 컴퓨터를 고철로 여기는 사람(본인 포함)도 이 책을 읽다 보면 즐겁게 파이썬을 배울 수 있을 것이라 생각한다. 이 책이 파이썬 자체의 특성(직관성과 쉬운 문법)과 저자의 간결한 문체가 잘 조화돼 있기 때문이다.
이 책은 강의 교재로도 사용 가능할 정도로 편제가 치밀하게 구성돼 있다. 또한 백화점식 예제 나열을 지양하고 가장 필수적인 문법 체계에 초점을 두고 집필됐기 때문에 지루하지 않게 배울 수 있고 배운 것을 바로 실전에 접목할 수 있을 것이다.
긴 겨울이 지나고 봄이 다가오고 있다. 마냥 춥기만 한 바람 속에서 어느덧 봄의 향기가 느껴진다. “겨울은 결코 영원히 지속되지 않는다. 그리고 봄이 순서를 건너뛰는 법도 결코 없다.”는 미국의 소설가 할 볼란드의 말이다. 처음엔 파이썬이 생소하더라도 스스로 계획을 세워 조금씩이라도 매일 꾸준히 이 책을 읽다 보면 큰 어려움 없이 어느새 실력이 부쩍 늘어있는 자신을 발견할 것이다.
모의 침투 연구회 회원 주성환
파이썬은 최근 가장 인기 있는 언어다. 간단하면서도 강력한 프로그래밍 언어의 대명사인 만큼 가볍고 가독성이 좋고 다양한 라이브러리로 구성돼 있어 프로그래밍 입문자에게 많이 추천되는 언어이다. 코드 경진 대회 서비스를 제공하는 코드이벨은 2016년 프로그래밍 인기 순위에서 파이썬을 1위로 꼽았을 정도다. 대형 글로벌 기업부터 스타트업까지 다양하게 활용되고 있는 파이썬이 인기가 높은 이유는 초보자 또는 숙련자를 가리지 않는 언어이기 때문일 것이다. 초보자에게는 쉬운 접근성을 가지고 있으며 숙련자에게는 뛰어난 확장성으로 강력한 기능을 제공한다. 또한 보안과 접목돼 그 강력함을 최대치로 끌어 올리고 있다. 대부분의 보안 관련 도구들 역시 파이썬으로 작성됐거나 파이썬 스크립트 형태의 모듈로 구성돼 있다.
나 역시 정보보안 분야에 큰 애정을 가지고 있는 사람 중 하나지만, 새로운 언어 습득에 대해 막연한 부담감이 있었다. 그렇기 때문에 최근 화두가 된 언어에 대해서도 소극적인 관심으로만 머물러 있던 중, 이번 원고를 받아 들며 파이썬을 향한 본격적인 맛보기가 시작됐다. 오동진 선생님의 『해킹 입문자를 위한 TCP/IP 이론과 보안』을 통해 입문자의 입장을 헤아려주는 친절함을 몸소 느껴본 기억이 있어 반가운 마음으로 부담 없이 읽기 시작할 수 있었다. 기대했던 대로, 이번 『해커의 언어 파이썬 3 입문』 역시 한 권의 소설책을 읽는 듯이 가벼운 걸음으로 시작했지만, 완독 후에는 파이썬의 전체적인 그림을 그려주는 가이드 역할로서 부족함이 없었다.
특히 프로그래밍 언어에 대한 지식이 없는 완벽한 초보자 해커에게도 군더더기 없는 파이썬 입문서가 돼 줄 것이다. 복잡한 개념과 문법의 소스 코드로 가득 차있는 서적이 아닌, 쉬운 예시들로 원리를 설명하고 있다. 이러한 구성에서 독자들이 책 안의 지식을 그대로 받아들이기보다는 온전히 내 것의 일부로 만들어내게끔 이끌어주려는 저자의 노력을 엿볼 수 있었다. 파이썬의 기본적인 개념.지식.구조, 그리고 원리에 대한 전체적인 감각을 심어주는 이 책은 응용 단계를 위한 다음 목적지로 가는 청사진 정도는 가뿐히 그려낼 수 있도록 초석을 다져줄 것이다. 또한 해커로서 파이썬을 접하게 되는 순간부터 완독을 끝낸 시점까지 일련의 과정을 통해 해킹 수행의 도구로 단연 파이썬을 가장 사랑하게 되지 않을까 생각한다. 그 출발점이 『해커의 언어 파이썬 3 입문』이 된 것을 환영한다.
모의 침투 연구회 부회장 김지수
이 책에서 다루는 내용
█ 데비안 및 우분투 기반 운영 체제 환경에서 파이썬 3 소개
█ 백박스 4.7 버전에서 파이썬으로 침투 도구 분석 및 제작
█ 파이썬 입문자를 고려한 수학적 체계성에 충실한 구성
█ 고등학교, 대학교, 학원 등에서 교재로 사용 가능
이 책의 대상 독자
█ 프로그래밍 경험이 없는 초보 해커
█ 데비안/우분투 기반에서 파이썬 언어를 다루고자 하는 입문자
█ 파이썬 언어에 입문하려는 기업체 정보 보안 담당자
█ 기타 전산 과목을 담당하는 중등 교사 또는 전산학과 전공자 등
이 책의 구성
제1장 ‘파이썬 소개와 실습 환경 구축 들여쓰기’에서는 파이썬 언어의 강점 등을 소개했고 파이썬을 사용할 수 있는 운영 체제의 종류 그리고 데비안/우분투 기반 중심의 파이썬 3 작업 환경 등을 소개한다.
제2장 ‘주요한 데이터 타입과 변수 그리고 객체의 이해’에서는 파이썬에서 처리하는 데이터 타입의 종류를 소개한다. 변수와 객체의 개념 그리고 참조 변수도 소개한다.
제3장 ‘숫자 데이터 특징과 각종 연산자’에서는 정수를 중심으로 숫자 데이터 타입의 다양한 연산자를 소개한다. 또한 숫자와 관련이 있는 바이트 순서 개념 등을 소개한다.
제4장 ‘문자열 데이터 특징과 내장 함수들’에서는 시퀀스 데이터 타입으로서 문자열 데이터 타입의 형식과 특징을 소개한다. 또한 문자열과 관련한 다양한 내장 함수의 기능 등을 소개한다. 아울러 바이트 타입과 바이트 배열도 소개한다.
제5장 ‘리스트 데이터 특징과 내장 함수들’에서는 시퀀스 데이터 타입으로서 리스트 데이터 타입의 형식과 특징을 소개한다. 또한 리스트와 관련한 다양한 내장 함수의 기능 등도 다룬다.
제6장 ‘튜플 데이터 특징과 내장 함수들’에서는 시퀀스 데이터 타입으로서 튜플 데이터 타입의 형식과 특징을 소개한다. 또한 튜플과 리스트를 상호 변경할 수 있는 내장 함수의 기능 등도 소개한다. 더불어 format() 함수를 이용한 문자열 서식도 소개한다.
제7장 ‘딕트 데이터 특징과 내장 함수들’에서는 매핑 데이터 타입으로서 딕트 데이터 타입의 형식과 특징을 소개한다.
제8장 ‘각종 제어문의 이해’에서는 중괄호가 아닌 들여쓰기에 기반한 파이썬 고유의 조건문/반복문의 형식과 기능 등을 간결한 예제를 통해 소개한다.
제9장 ‘파일 및 예외 처리에 대한 이해’에서는 open() 함수와 write() 함수와 read() 함수 그리고 close() 함수로 이어지는 일련의 파일 처리 과정을 소개한다. 또한 예외의 개념과 try-except-else-finally 문으로 이루어진 예외 처리를 소개한다. 더불어 raise/assert 문의 개념도 다룬다.
제10장 ‘함수에 대한 이해’에서는 사용자 정의 함수를 중심으로 파이썬 고유의 함수 형식과 다양한 용어와 기능 등을 소개한다. 또한 함수에서 사용하는 전역 변수와 지역 변수, 아울러 축약 함수의 개념을 소개한다.
제11장 ‘모듈과 패키지에 대한 이해’에서는 모듈과 프레임워크 그리고 패키지 개념을 소개한다. 또한 import문의 다양한 사용 방법을 설명한다.
제12장 ‘주요한 내장 모듈’에서는 파이썬을 커널과 소켓 등에서 자주 사용하는 주요 모듈 세 가지, 다시 말해 os 모듈과 socket 모듈과 struct 모듈을 소개한다. 이와 함께 형식 문자열의 종류도 소개한다.
제13장 ‘클래스에 대한 이해’에서는 객체 지향 스크립트 언어로서 파이썬 고유의 클래스 형식과 다양한 기능 등을 소개한다. 또한 클래스에서 사용하는 self 인자의 개념, 클래스의 핵심 기능인 상속과 다형성의 개념을 소개한다.
제14장 ‘GUI 기초’에서는 tkinter 모듈을 이용한 파이썬 GUI 개념을 소개한다. 또한 이벤트 개념 등을 소개한다.
제15장 ‘파이썬의 활용’에서는 제3장부터 제14장까지 소개한 문법 내용을 토대로 소켓과 암호에 대한 내용을 다룬다.
목차
목차
- 1장. 파이썬 소개와 실습 환경 구축
- 입문자와 전문가 모두를 만족시키는 파이썬 언어
- 실습 환경 구축
- 2장 주요한 데이터 타입과 변수 그리고 객체의 이해
- 추천영화 1. 공상 과학 영화 분야에서 기념비적인 작품
- 추천영화 1. 공상 과학 영화 분야에서 기념비적인 작품
- 3장 .숫자 데이터 특징과 각종 연산자
- 4장. 문자열 데이터 특징과 내장 함수
- 추천영화 1. 개인 정보란 은밀한 사생활이 담긴 흔적
- 추천영화 1. 개인 정보란 은밀한 사생활이 담긴 흔적
- 5장. 리스트 데이터 특징과 내장 함수
- 6장. 튜플 데이터 특징과 내장 함수
- 추천영화 1. 영화사에서 해커가 주인공으로 등장하는 최초의 작품
- 추천영화 1. 영화사에서 해커가 주인공으로 등장하는 최초의 작품
- 7장. 딕트 데이터 특징과 내장 함수
- 8장. 각종 제어문의 이해
- 조건문
- 반복문
- 추천영화 1. 케빈 미트닉 사건을 다룬 최고의 해커 영화
- 9장. 파일 및 예외 처리에 대한 이해
- 10장. 함수에 대한 이해
- 추천영화 1. 네트워크 세대의 한 단면을 잘 묘사한 청춘 영화
- 추천영화 1. 네트워크 세대의 한 단면을 잘 묘사한 청춘 영화
- 11장. 모듈과 패키지에 대한 이해
- 12장. 주요한 내장 모듈
- 추천영화 1. 사회 공학을 영화의 반전 기법으로 활용한 걸작
- 추천영화 1. 사회 공학을 영화의 반전 기법으로 활용한 걸작
- 13장. 클래스에 대한 이해
- 14장. GUI 기초
- 추천영화 1. 스턱스넷에 대한 기록 영화
- 추천영화 1. 스턱스넷에 대한 기록 영화
- 15장. 파이썬의 활용
- 간단한 UDP/TCP 소켓 작성
- 보안 알고리즘의 이해
- 부록. My-SQL과 파이썬 연동 설정
도서 오류 신고
정오표
정오표
[p.53 아래에서 4행]
16 >> 22
->
16 >> 2
[p.96 예제 6-13]
name = "Oh Dog Jin"
->
name = "Oh Dong Jin"
[p.160 예제 10-15 중간 부분]
functionScore(score)처럼 함수 호출이 발생하면 ... result에에서 참조한다.
->
functionScore(score)처럼 함수 호출이 발생하면 ... result에서 참조한다.
[p.199 예제 13-2]
nam이라는 인자 대신
->
man이라는 인자 대신
[p.219 아래에서 4-5행]
super(Base, self).display() 문을 추가한다.
->
super(Derived, self).display() 문을 추가한다.