클린 코드, 이제는 파이썬이다
땅끝
2024-01-05 08:48
192
0
본문
클린 코드, 이제는 파이썬이다
도서명 : 클린 코드, 이제는 파이썬이다
저자/출판사 : 알,스웨이가트, 책만
쪽수 : 440쪽
출판일 : 2022-08-16
ISBN : 9791189909451
정가 : 30000
[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 사용
____읽기 전용 프로퍼티
____프로퍼티를 사용할 시점
__파이썬의 이중밑줄 메소드
____문자열 표현 이중밑줄 메소드
____숫자 이중밑줄 메소드
____거울 숫자 이중밑줄 메소드
____제자리 바꿔치기 증강 대입 이중밑줄 메소드
____비교 이중밑줄 메소드
__정리
도서명 : 클린 코드, 이제는 파이썬이다
저자/출판사 : 알,스웨이가트, 책만
쪽수 : 440쪽
출판일 : 2022-08-16
ISBN : 9791189909451
정가 : 30000
[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 사용
____읽기 전용 프로퍼티
____프로퍼티를 사용할 시점
__파이썬의 이중밑줄 메소드
____문자열 표현 이중밑줄 메소드
____숫자 이중밑줄 메소드
____거울 숫자 이중밑줄 메소드
____제자리 바꿔치기 증강 대입 이중밑줄 메소드
____비교 이중밑줄 메소드
__정리
댓글목록0