이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.
|
[1부] 준비1장 에러 메시지 파악과 고수의 도움을 받기 위한 질문 에티켓__파이썬 에러 메시지를 읽는 법____추적정보 조사____에러 메시지 검색__린터를 활용한 에러 방지__프로그래밍 조언을 구하는 방법____미리 충분한 정보를 제공해 불필요한 커뮤니케이션을 줄이자____물음표가 붙은 질문 형식으로 문장을 서술하자____적절한 웹사이트를 찾아 질문하자____질문을 요약한 표제를 달자____코드로 어떤 일을 하고 싶은지를 설명하자____전체 에러 메시지를 제공하자____전체 코드를 공유하자____적절한 포매팅으로 코드를 읽기 쉽게 만들자____사람들에게 여러분이 무엇을 시도했는지를 알리자____여러분의 설정 사항을 공유하자__좋은 질문의 예시__정리2장 환경 설정과 명령행 사용 방법__파일시스템____파이썬의 경로____홈 디렉터리____현재 작업 디렉터리____절대 경로 vs 상대 경로__프로그램과 프로세스__명령행____터미널 창 열기____명령행에서 프로그램을 실행하는 방법____명령행 인수____명령행에서 -c 옵션으로 파이썬 코드를 실행하는 방법____명령행 프로그램에서 파이썬 프로그램 실행____py.exe 프로그램 실행____파이썬 프로그램에서 명령어 실행____타이핑을 최소화하는 탭 완성 기능____명령어 이력 보기____필수 명령어 모음__환경 변수와 PATH____환경 변수 보기____PATH 환경 변수를 이용한 작업____명령행의 PATH 환경 변수 바꾸기____폴더를 영구적으로 PATH에 추가: 윈도우 환경____폴더를 영구적으로 PATH에 추가: 맥OS와 리눅스 환경__명령행을 쓰지 않고 파이썬 프로그램을 실행하는 방법____윈도우 환경____맥OS 환경____우분투 리눅스 환경__정리[2부] 클린 코드를 위한 모범 사례, 도구, 기법3장 코딩 스타일 정립과 코드 포매팅 자동화__동료나 협업자의 신뢰를 잃는 이유__스타일 가이드와 PEP 8__가로 간격____들여쓰기를 위한 공백 문자 사용____코드 행 내의 공백 활용__세로 간격____세로 간격의 사용 예____세로 간격의 모범 사례__엄격한 코드 포매터, 블랙____블랙 도구 설치 방법____명령행에서 블랙을 실행하는 방법____코드 특정 부분에 대한 블랙 비활성화__정리4장 이해하기 쉬운 이름__대소문자 표기법__PEP 8의 명명 규약__이름의 적정 길이____너무 짧은 이름____너무 긴 이름__검색 가능한 이름 짓기__농담, 말장난, 문화적 참조는 피하자__내장 이름 덮어쓰기 금지__역대 최악의 변수명__정리5장 코드 악취 감지와 대응__중복된 코드__매직 넘버__주석 처리된 코드와 죽은 코드__디버깅 출력__숫자 접미사가 붙은 변수__그냥 함수나 모듈이어야 하는 클래스__중첩된 리스트 컴프리헨션__빈 예외처리 블록과 부실한 에러 메시지__코드 악취에 관한 잘못된 통념____함수 마지막에는 return 문이 하나만 있어야 한다?____함수에는 try 문이 둘 이상 있으면 안 된다?____플래그 인수는 나쁘다?____전역 변수는 나쁘다?____주석은 불필요하다?__정리6장 파이썬다운 코드를 작성하는 법__파이썬의 선(禪)__의미 있는 들여쓰기__흔히 잘못 사용되는 구문____range()보다는 enumerate()를 사용하자____open()과 close()보다는 with 문을 사용하자____== 대신 is를 써서 None과 비교하자__문자열 포매팅____문자열에 백슬래시가 많은 경우에는 원시 문자열을 사용하자____f-문자열을 사용한 문자열 포매팅__리스트의 얕은 사본 만들기__파이썬다운 딕셔너리 사용법____딕셔너리에서 get()과 setdefault()를 사용하자____기본값을 위해 collections.defaultdict를 사용하자____switch 문 대신 딕셔너리를 사용하자__조건식: 파이썬의 '보기 흉한' 3항 연산자__변수값 작업____체이닝 할당과 비교 연산자____변수가 여러 값 중 하나인지 여부 확인__정리7장 파이썬 세상의 프로그래밍 용어__각종 용어 정의____프로그래밍 언어로서 파이썬 vs 인터프리터로서 파이썬____가비지 컬렉션____리터럴____키워드____객체, 값, 인스턴스, 아이디____아이템____가변 데이터 타입, 불변 데이터 타입____인덱스, 키, 해시____컨테이너, 시퀀스, 매핑, 집합 타입____이중밑줄 메소드, 매직 메소드____모듈, 패키지____호출가능 객체, 일급 객체__흔히 혼동되어 사용되는 용어____문 vs 표현식____블록 vs 절 vs 바디____변수 vs 속성____함수 vs 메소드____반복가능 객체 vs 반복자____구문 에러 vs 런타임 에러 vs 의미 에러____파라미터 vs 인수____타입 강제변환 vs 타입 캐스팅____프로퍼티 vs 속성____바이트코드 vs 기계어 코드____스크립트 vs 프로그램, 스크립트 언어 vs 프로그래밍 언어____라이브러리 vs 프레임워크 vs SDK vs 엔진 vs API__정리__추가 정보8장 파이썬에서 빠지기 쉬운 함정들__루프문 진행 중에는 리스트에서 아이템을 추가/삭제하지 말자__copy.copy()나 copy.deepcopy() 없이 가변 값을 복사하지 말자__기본 인수에 가변 객체는 사용하지 말자__문자열을 문자열 연결로 생성하지 말자__sort()가 알파벳 순으로 정렬하리라 기대하지는 말자__부동소수가 완벽히 정확할 거라고 가정하지 말자__부등 연산자 !=를 연달아 쓰지 말자__단일 아이템 튜플에서는 쉼표를 잊지 말자__정리9장 파이썬의 기이한 특징들__256 is 256은 참이지만 257 is 257은 참이 아닌 이유__문자열 인터닝__파이썬의 가짜 증감연산자__아무것도 없으면 참인 all()__부울값은 정수값이다__다중 연산자 연달아 쓰기__파이썬의 antigravity기능__정리10장 파이썬다운 함수 만들기__함수명__함수 크기의 트레이드오프__함수 파라미터와 인수____기본 인수____*와 **를 사용해 함수에 인수 전달하기____*를 사용해 가변인수 함수 만들기____**를 사용해 가변인수 함수 만들기____*와 **로 래퍼 함수 만들기__함수형 프로그래밍____부수효과____고차원 함수____람다 함수____리스트 컴프리헨션을 이용한 매핑과 필터링__결괏값은 항상 동일한 데이터 타입이어야 한다__예외 발생시키기 vs 에러 코드 반환하기__정리11장 주석과 타입 힌트__주석____주석 스타일____인라인 주석____설명 주석____요약 주석____경험 지식을 담은 주석____법무 정보를 담은 주석____전문적인 주석____코드태그와 TODO 주석____매직 주석과 소스 파일 인코딩__독스트링__타입 힌트____정적 분석 도구 사용____타입 힌트를 다중 타입으로 설정하기____리스트, 딕셔너리 등을 위한 타입 힌트 설정____주석을 활용한 타입 힌트 백포팅__정리12장 깃을 이용한 코드 관리 기법__깃 커밋과 리포__쿠키커터 패키지를 이용한 새로운 파이썬 프로젝트 생성__깃 설치____깃 사용자 이름과 이메일 설정____GUI 깃 도구 설치하기__깃 워크플로____깃이 파일 상태를 관리하는 방식____파일을 스테이징 상태로 바꿔야 하는 이유__자신의 컴퓨터에 깃 리포 만들기____깃으로 파일을 추가해 관리하기____리포의 특정 파일 무시하기____변경사항 커밋____리포에서 파일 삭제하기____리포에서 파일 이름 변경과 이동__커밋 로그 보기__기존 변경 내역으로 복구하기____커밋되지 않은 로컬 변경사항 취소하기____스테이징된 파일을 스테이징 상태에서 해제하기____가장 최근 커밋 롤백하기____단일 파일을 특정 커밋으로 롤백하기____커밋 이력 재작성하기__깃허브와 git push 명령어____기존 저장소를 깃허브에 푸시하기____기존 깃허브 리포에서 리포 복제하기__정리13장 빅오를 활용한 알고리즘 성능 분석과 개선__timeit 모듈__cProfile 프로파일러__빅오 알고리즘 분석__빅오 차수____책장 정리 사례를 이용한 빅오 차수의 이해____최악의 시나리오를 측정하는 빅오__코드의 빅오 차수를 파악해보자____낮은 차수와 계수를 우리가 무시하는 이유____빅오 분석 예제____일반적인 함수 호출의 빅오 차수____한눈에 분석하는 빅오____n이 작을 경우 빅오는 의미가 없으며, n은 일반적으로 작다__정리14장 실전 프로젝트: 하노이 탑과 사목 게임__하노이 탑 게임 프로젝트____화면 출력 내용____소스 코드____코드 작성__사목 게임 프로젝트____화면 출력 내용____소스 코드____코드 작성__정리[3부] 파이썬과 객체지향 프로그래밍15장 틱택토 게임으로 배우는 객체지향 프로그래밍과 클래스__실세계 비유: 온라인 양식 기입__클래스에서 객체 생성하기__WizCoin이라는 간단한 클래스 생성하기____메소드, __init__(), self____속성____프라이빗 속성과 프라이빗 메소드__type() 함수와 __qualname__ 속성__객체지향 vs 비 객체지향 방식의 프로그램 비교: 틱택토 게임__실세계를 위한 클래스 설계는 어렵다__정리16장 코드 복제는 이제 그만! 상속으로 해결하기__상속의 작동 방식____메소드 오버라이드____super() 함수____상속보다는 합성을____상속의 단점__isinstance()와 issubclass() 함수__클래스 메소드__클래스 속성__정적 메소드__클래스와 정적 객체지향 기능을 사용할 때__객체지향과 관련된 전문 용어들____캡슐화____다형성__상속을 사용하지 않아야 할 경우__다중 상속__메소드 결정 순서__정리17장 파이썬다운 객체지향 프로그래밍__프로퍼티____속성을 프로퍼티로 바꾸기____데이터 검증을 위한 setter 사용____읽기 전용 프로퍼티____프로퍼티를 사용할 시점__파이썬의 이중밑줄 메소드____문자열 표현 이중밑줄 메소드____숫자 이중밑줄 메소드____거울 숫자 이중밑줄 메소드____제자리 바꿔치기 증강 대입 이중밑줄 메소드____비교 이중밑줄 메소드__정리
|
Al Sweigart
알 스웨이가트의 다른 상품
박재호의 다른 상품
|
| 이 책에서 다루는 내용 |● 코딩 스타일을 비롯해, 파이썬의 블랙 자동 포매팅 도구를 활용한 클린 코드 작성법● 일반적인 버그의 원인 파악과 정적 분석기를 활용한 버그 감지● 쿠키커터 템플릿 도구로 코드 프로젝트의 파일 구조를 짜는 법● 람다 등 고차 함수의 함수형 프로그래밍 기법● 파이썬의 내장 timeit과 cProfile 모듈로 코드 속도 프로파일링● 주석과 독스트링을 유용한 정보로 만드는 방법 그리고 작성 주기| 이 책의 구성 | 이 책은 단순히 파이썬 구문을 깊이 다루는 선에서 그치지 않고, 명령행, 코드 포매터, 린터, 버전 관리 등 전문 개발자가 사용하는 명령행 도구에 대해 다양하게 설명한다. 무엇이 코드의 가독성을 높이고 어떻게 하면 제대로 클린 코드를 작성할 수 있는지 설명했으며, 프로그래밍 프로젝트 몇 가지를 수행하면서 이런 원리가 실제 소프트웨어에 어떻게 적용되는지 확인해볼 수 있다. 이 책이 컴퓨터 과학 교과서는 아니지만, 빅오 알고리즘 분석과 객체 지향 설계에 대한 주제도 다룬다.[1부] 준비1장 에러 메시지 파악과 고수의 도움을 받기 위한 질문 에티켓남들에게 효과적으로 질문하고 스스로 필요한 답을 찾는 방법을 보여준다. 또한 에러 메시지를 읽는 법과 온라인으로 도움을 요청하는 예절도 알려준다.2장 환경 설정과 명령행 사용 방법개발 환경을 준비하고 PATH 환경 변수를 설정하는 내용과 함께 명령행 탐색 방법을 살펴본다.[2부] 클린 코드를 위한 모범 사례, 도구, 기법3장 코딩 스타일 정립과 코드 포매팅 자동화PEP 8 스타일 가이드와 가독성을 높이는 코드 포맷에 대해 살펴본다. 코드 포매팅 도구인 블랙을 사용해 이 과정을 자동화하는 방법도 배운다.4장 이해하기 쉬운 이름코드 가독성을 개선할 수 있게 변수와 함수의 이름을 짓는 법을 알아본다.5장 코드 악취 감지와 대응코드에 버그가 있을지도 모른다고 알려주는 몇 가지 잠재적인 경고 신호를 다룬다.6장 파이썬다운 코드를 작성하는 법파이썬 코드를 작성하는 몇 가지 관례와 파이썬다운 코드를 만드는 방법을 살펴본다.7장 파이썬 세상의 프로그래밍 용어프로그래밍 분야에서 사용되는 전문 용어와 자주 혼동되는 용어에 관해 알아본다.8장 파이썬에서 빠지기 쉬운 함정들파이썬 언어에서 자주 나오는 혼동과 버그의 원인, 해결방법, 그리고 이를 회피할 코딩 전략을 다룬다.9장 파이썬의 기이한 특징들스트링 인터닝과 반중력 이스터에그 등 여러분이 미처 알지 못한 파이썬 언어의 기이한 기능들을 다룬다. 어떤 데이터 타입과 연산자가 왜 이렇게 예상치 못한 행동을 초래하는지 파악한다면 파이썬의 작동 방식에 대한 이해도가 좀 더 깊어질 것이다.10장 파이썬다운 함수 만들기함수를 구조화해서 유용성과 가독성을 극대화하는 방법을 알아본다. *와 ** 인수 구문, 큰 함수와 작은 함수의 장단점, 람다 함수 등 함수형 프로그래밍 기법을 배워본다.11장 주석과 타입 힌트프로그램에서 비코드부의 중요성과 유지보수에 미치는 영향을 다룬다. 주석과 독스트링을 얼마나 자주 써야 하는지, 어떻게 하면 유용한 정보를 담을 수 있는지를 설명한다. 이 장에서는 타입 힌트와 마이파이MyPy 같은 정적 분석기를 사용해 버그를 탐지하는 방법도 알아본다.12장 깃을 이용한 코드 관리 기법깃 버전 관리 도구를 사용해 소스 코드 변경 이력을 기록하고 이전 버전의 작업을 복구하거나 버그가 처음 나타났을 때를 추적하는 법을 알아본다. 또한 쿠키커터 도구로 코드 프로젝트의 파일을 구성하는 방법도 다룬다.13장 빅오를 활용한 알고리즘 성능 분석과 개선timeit과 cProfile 모듈을 사용해 코드의 속도를 객관적으로 측정하는 방법을 알아본다. 또한 처리해야 하는 데이터의 양이 증가함에 따라 코드의 성능이 얼마나 느려지지를 빅오 알고리즘 분석을 활용해 예측하는 방법도 다룬다.14장 실전 프로젝트: 하노이 탑과 사목 게임명령행 게임 두 가지를 작성하며 지금까지 배운 기법을 적용해본다. 한 탑에서 다른 탑으로 원판을 옮기는 퍼즐 게임인 ‘하노이 탑’과 유서 깊은 2인용 말판 게임인 ‘사목’이다.[3부] 파이썬과 객체지향 프로그래밍15장 틱택토 게임으로 배우는 객체지향 프로그래밍과 클래스종종 오인되는 객체 지향 프로그래밍(OOP)의 역할을 정의한다. 남들도 다한다고 생각하기 때문인지 많은 개발자가 자신의 코드에 OOP 기법을 남용하는데, 이는 소스 코드를 복잡하게 만드는 주요 원인이 된다. 이 장에서는 클래스 작성법도 알려주지만, 클래스를 사용해야 하는 이유와 사용하지 말아야 하는 이유를 알려준다는 점이 더 중요하다.16장 코드 복제는 이제 그만! 상속으로 해결하기클래스 상속과 그것이 코드 재사용에 얼마나 유용한지를 알아본다.17장 파이썬다운 객체지향 프로그래밍프로퍼티, 이중밑줄 메소드, 연산자 오버로드 같은 파이썬 특유의 객체 지향 설계 특징을 다룬다.[추천의 글]나의 첫 파이썬 프로그램도 동작은 한다. 그러나 진작에 이 책을 봤더라면 훨씬 더 나아졌을 것이다. 이 책은 초보자는 물론, 중급 개발자, 심지어 고급 프로그래머에게도 도움이 되는 알찬 지식의 금광이다.- 긱테크스터프(GeekTechStuff)이 책은 모든 파이썬 개발자에게 유용한 내용으로 가득 차 있다. 코딩, 특히 파이썬 코딩을 둘러싼 기초 지식을 배우려는 모든 이에게 추천할 만한 도서로 과연 이보다 나은 책이 있을까?- 이안 마이저(Ian Mizer) / 애틀란타 파이썬 프로그래머 그룹(Atlanta Python Programmers Group)정말 훌륭한 책이다. 저자 스웨이가트는 개발자가 주로 첫 단계에서 겪는 난관(도움 요청, 작업환경 설정), 프로그래밍 모범 사례와 도구, 기법, 그리고 마지막으로 객체 지향 파이썬 활용이라는 세 가지 주제에 초점을 맞췄다. 이 책은 여러 곳을 뒤적거리며 찾아야 하는 내용을 일목요연하게 모아 다루므로 특히 더 유용하다.- 세다르 예구랄프(Serdar Yegulalp) / 인포월드(InfoWorld)[지은이의 말]이 책을 그저 클린 코드 작성에 유용한 팁 모음집 정도로 보면 오산이다. 이 책은 명령행을 누비고 코드 포매터, 타입 검사기, 린터, 버전 관리 등 각종 전문 도구의 활용법을 보여준다. 저자 알 스웨이가트는 개발환경 설정, 변수 이름 짓기, 가독성 향상을 위한 모범 사례부터, 문서화, 코드 구성, 성능 측정, 객체 지향 설계, 빅오 알고리즘 분석까지 온갖 지식과 노하우를 전수해준다. 이 책에서 설파하는 중고급 기술은 파이썬뿐만 아니라 모든 언어에서 유용하며, 여러분의 프로그래밍 능력을 크게 향상시켜줄 것이다.아무리 좋은 책이라도 한 권을 읽고 바로 전문 소프트웨어 개발자가 될 수는 없겠지만 이 책은 디버깅하기 쉽고 파이썬다우며 가독성 높은 코드를 작성하는 법을 명쾌하게 안내해 준다. 여러분 앞에 전문가로 가는 길이 곧 성큼 앞으로 다가올 것이다.[옮긴이의 말]로버트 C 마틴의 『클린 코드: 애자일 소프트웨어 장인 정신』이 출간된 이후로 깨끗한 코드 작성과 리팩토링에 대한 개발자들의 관심은 나날이 높아지고 있다. 가독성 높은 코드가 제공하는 유지보수 편의성과 기능 확장 가능성은 레거시 코드를 다루는 개발자는 물론, 처음부터 프로젝트를 시작하는 개발자들도 추구해야 하는 소프트웨어의 속성으로 인정받고 있다. 이를 위해 다양한 실천 방법과 우수 사례가 공유되고 있으며, 통합개발환경(IDE)의 발전으로 인해 자동화의 혜택까지 얻을 수 있다. 하지만 이렇게 무르익은 분위기와 환경에서도 뭔가 2% 부족함을 느낀다면 딱히 당신만의 문제는 아니다.다른 여느 프로그래밍 언어와 마찬가지로 파이썬 역시 입문은 쉽고 마스터하기는 어렵다. 특히 여타 프로그래밍 언어와 비교해 파이썬은 고수준 특성으로 인해 처음 문턱을 넘기가 상대적으로 쉽기 때문에 초보 개발자들은 컴퓨터로 할 수 있는 다양한 가능성에 눈을 뜨게 되지만, 막상 실전에 부딪혀 문제를 풀려고 하면 그제서야 파이썬이 결코 만만하지 않다는 사실을 깨닫고 충격에 휩싸이게 된다. 파이썬 언어의 문제일까? 아니면 복잡한 라이브러리와 프레임워크의 문제인가? 아니면 컴퓨터 하부 지식을 모르는 내 기초 역량의 문제인가? 정말 고수들은 어떻게 파이썬을 사용하고 있으며 그 과정에서 남들은 내가 모르는 파이썬의 어떤 비밀을 알고 있을까?『클린 코드, 이제는 파이썬이다』는 제목에서 잘 드러나듯이 클린 코드를 파이썬에 적용해서 파이썬다운 코드를 만드는 방법을 소개한다. 기존의 클린 코드 관련 서적과 온라인 문서에서 다루는 내용을 파이썬에 그대로 이식하는 대신, 이 책은 초보 개발자가 우수 개발자로 탈바꿈하는 과정에서 반드시 넘어야 하는 장애물을 파악하고 이를 정석대로 해소하는 방법을 다양한 사례와 팁으로 제시한다는 특징이 있다. 이 책은 전문가처럼 정보를 찾고 명령행을 활용하고, 클린 코드에서 중요하게 생각하는 이름을 지으며, 코딩 스타일과 포매팅, 코드 악취 해소, 효율적인 함수 작성, 주석과 타입 힌트에 대해 파이썬다운 지침을 따르고, 파이썬의 기이한 특징과 함정들을 잘 피하기 위한 실전 팁과 현업의 요령을 소개한다. 또한 컴퓨터 전문 지식을 강화하기 위해 각종 프로그래밍 용어, 반드시 알아야 하는 핵심 버전 관리 방법, 알고리즘 성능 측정에 대한 이론과 도구, 객체지향에 대한 설명도 빼놓지 않는다. 앞쪽에서 습득한 지식을 바탕으로 마지막에는, 간단한 게임을 파이썬다운 객체지향 방식으로 확장해 나가는 방안을 단계별로 제시하므로 점진적으로 발전하고 확장 가능한 소프트웨어 개발에 대한 감을 잡을 수 있도록 배려한다.이 책이 획기적인 돌파구를 마련해주지는 않을지 몰라도, 매일 조금씩 실력을 높이고 싶은 개발자들에게 동기를 부여하고 출발점을 알려주며 도전에 직면했을 때 두려워하지 않도록 기초를 튼튼하게 다지는 내용으로 매우 알차게 구성되어 있다. 이 책을 읽고, 책에서 배운 내용을 실행해보며, 자신만의 색깔로 바꾸는 과정을 반복하다 보면 어느 순간 소프트웨어 전문 개발자로 거듭난 자신을 발견하게 될 것이다. 아무쪼록 독자 여러분의 개발 여정에서 이 책이 훌륭한 스승이자 좋은 벗이 되면 좋겠다.- 박재호자바, Golang, C++ 같은 언어에 비해 파이썬이라는 언어가 지니는 독특함이 있다. 다른 언어보다 접근성이 좋고 설명하거나 이해하기 쉽지만 알고리즘 코딩 테스트에서의 실행 속도가 다른 언어에 비해 느린 측면도 있고 디버깅에 어려움을 표현하는 개발자들도 있다. 으레 파이썬 전문가라는 단어를 쓸 때 그 파이썬 전문가가 어떤 스킬이나 이해를 갖고 있는지, 어떤 스텝을 통해 후학들이 파이썬 전문가로 될 수 있는지를 설명하는 것을 일반적으로 숙련된 개발자들조차 어려워할 때가 많다.이 책은 파이썬 입문서와는 거리가 멀다. 하지만 지나치게 현학적인 책과도 거리를 둔다. 초보자와 전문가의 중간 단계를 어떻게 메워 나갈 것인가에 대한 저자의 고민이 곳곳에 숨어 있는 것을 볼 수 있다. 이 책은 어려운 데코레이터를 쓰지도 않으며 심한 축약형 람다를 쓰지도 않는다. 하지만 초보자들이 한 스텝 더 실행해 볼 수 있는 여러 방법들을 제시해준다.- 김동현
|