새책 | eBook | 알라딘 직접배송 중고 | 이 광활한 우주점 | 판매자 중고 (7) |
40,500원 | 출간알림 신청![]() | - | - | 37,320원 |
01장. Tkinter 소개
__Tkinter와 Tk 소개
____Tkinter 선택의 이유
____Tkinter 설치
______파이썬 설치: 윈도우즈
______파이썬 설치 맥 : OS
______파이썬과 Tkinter 설치: 리눅스
____IDLE 소개
______IDLE 셸 모드
______IDLE 편집기 모드
______Tkinter 예제로서의 IDLE
____Tkinter 버전의 Hello World
__Tkinter 개요
____Tkinter 위젯으로 GUI 구성
____배치 관리자로 위젯 배열
____폼 작동시키기
____Tkinter 제어 변수로 데이터 다루기
______콜백 함수에 제어 변수 사용
______제어 변수의 중요성
__정리
02장. GUI 애플리케이션 설계
__ABQ AgriLabs 과제 분석
____문제 조사
____관련 정보 수집
______인터뷰
____조사 내용 분석
______데이터 제공자로부터의 정보
______애플리케이션 사용자로부터의 정보
______기술지원 팀으로부터의 정보
______데이터 소비자로부터의 정보
__요구 명세 문서화
____간단한 명세 구성
____ABQ 프로그램 명세 작성
__애플리케이션 설계
____입력 위젯 결정
____필드 그룹화
____폼 레이아웃
____애플리케이션 레이아웃
__기술 요소 검토
__정리
03장. Tkinter와 Ttk 위젯으로 기본 폼 제작
__Ttk 위젯 세트
____Label
____Entry
____Spinbox
____Checkbutton
____Radiobutton
____Combobox
____Text
______Text의 인덱스
____Button
____LabelFrame
__애플리케이션 구현
____첫 번째 단계
____데이터 레코드 폼
______기록 정보 섹션
______환경 정보 섹션
______작물 정보 섹션
______GUI 마무리
____콜백 함수 작성
______초기화 콜백
______저장 콜백
____ABQ 앱 테스트
__정리
04장. 클래스로 코드 개선
__파이썬 클래스 입문
____클래스 사용의 이점
______파이썬의 필수 요소
______데이터와 함수의 명시적 관계 설정
______재사용 가능한 코드
____클래스 생성 문법
______속성과 메서드
______매직 속성과 매직 메서드
______퍼블릭, 프라이빗, 프로텍티드 멤버
____상속과 하위 클래스
__Tkinter에서 클래스 사용
____Tkinter 클래스 개선
____복합 위젯
____컴포넌트 캡슐화
____Tk 하위 클래스
__클래스를 사용한 애플리케이션 재작성
____Text 위젯에 StringVar 추가
______변수 전달
______변수로 위젯 동기화
______위젯으로 변수 동기화
____개선된 LabelInput()
____폼 클래스
____애플리케이션 클래스
__정리
05장. 검증과 자동화로 사용자 오류 최소화
__사용자 입력 검증
____데이터 오류 방지 전략
____Tkinter 방식의 검증
______validate 인자
______validatecommand 인자
______invalidcommand 인자
__검증 위젯 클래스
____날짜 위젯 제작
__GUI에서 검증 위젯 구현
____다중 상속
____검증 믹스인 클래스 개발
____ValidatedMixin으로 검증 위젯 만들기
______기본 입력 위젯
______Date 위젯
______Combobox 위젯
______범위 제한 Spinbox 위젯
______검증 가능 Radiobutton 위젯
____검증 가능 위젯으로 폼 개선
____위젯 사이의 상호작용을 통한 검증
______Spinbox 범위의 동적 변경
______필드의 동적 비활성화
____오류 보여주기
____폼 제출 방지
__입력 자동화
____날짜 자동화
____나머지 필드 자동화
__정리
06장. 애플리케이션 확장 계획
__관심사 분리
____MVC 패턴
______모델
______뷰
______컨트롤러
____설계 복잡성의 이유
__애플리케이션 디렉터리 구성
____기본 디렉터리 구조
______abq_data_entry
______README
______docs 디렉터리
______파이썬 패키지 제작
__애플리케이션 분리
____모델 모듈 만들기
____위젯 이관
____뷰 이관
______뷰의 중복 코드 제거
______커스텀 이벤트로 강한 결합 제거
____애플리케이션 파일 작성
____애플리케이션 실행
__버전 관리 시스템
____깃 사용을 위한 빠른 안내
______깃 저장소의 초기화와 설정
______코드 추가와 커밋
______커밋의 확인과 활용
__정리
07장. 메뉴와 대화상자 제작
__애플리케이션 문제 해결
____해결 방안 계획
__Tkinter 대화상자 구현
____messagebox
____오류 대화상자
____filedialog
____simpledialog와 커스텀 대화상자
______simpledialog를 사용한 로그인 대화상자
______LoginDialog 통합
__애플리케이션 메뉴 설계
____Tkinter Menu 위젯
______Checkbutton과 Radiobutton 아이템
____ABQ 앱 메뉴 구현
______도움말 메뉴
______파일 메뉴
______옵션 메뉴
______마무리 작업
____설정 보존
______설정 보존을 위한 모델
______설정 모델 사용
__정리
08장. Treeview와 Notebook으로 레코드 탐색
__모델에 읽기와 쓰기 구현
____CSVModel 클래스에 읽기와 쓰기 추가
______get_all_records() 구현
______get_record() 구현
______save_record()에 기능 추가
__Ttk 트리뷰
____트리뷰 해부
____파일 탐색기 구현
______Treeview 생성과 설정
______트리뷰에 데이터 채우기
______Treeview 레코드 정렬
______Treeview의 가상 이벤트 사용
__Treeview로 레코드 목록 구현
____RecordList 클래스
______Treeview 위젯 설정
______Treeview에 스크롤바 추가
______Treeview 채우기
__애플리케이션에 레코드 목록 추가
____레코드 폼 수정
______인스턴스 속성 추가
______레이블 추가
______load_record() 메서드 추가
____애플리케이션 레이아웃 개선
______Ttk Notebook 위젯
______애플리케이션에 노트북 추가
____콜백 추가와 수정
_______show_recordlist() 메서드
_______populate_recordlist() 메서드
_______new_record() 메서드
_______open_record() 메서드
_______on_save() 메서드
____주 메뉴 변경
____프로그램 테스트
__정리
09장. 스타일과 테마로 룩앤필 개선
__Tkinter 이미지 작업
____PhotoImage
______PhotoImage와 변수 범위
____Pillow를 사용한 이미지 지원 확대
____회사 로고 추가
______이미지 경로 문제
____윈도우 아이콘 설정
____버튼과 메뉴에 아이콘 추가
______BitmapImage
__Tkinter 위젯 스타일링
____색상 속성
______주 메뉴에 위젯 속성 사용
____태그를 사용한 위젯 콘텐츠 스타일링
______태그를 사용한 레코드 목록 스타일링
__Tkinter 글꼴 작업
____Tkinter 글꼴 설정
______문자열과 튜플을 사용한 글꼴 설정
______font 모듈
____ABQ 앱의 글꼴 설정
__Ttk 위젯 스타일링
____Ttk 스타일링 해부
______Ttk 위젯 분석
______테마 사용
____ABQ 앱에 색상 추가
______개별 위젯 스타일링
______오류 레이블 색상 변경
______오류 시 입력 위젯 스타일링
____테마 설정
______테마 선택 메서드
__정리
10장. 크로스플랫폼 호환성 유지
__크로스플랫폼 파이썬
____파일명과 파일 경로
______경로 구분자와 드라이브
______대소문자 구분
______심볼릭 링크
______경로 변수
____플랫폼 특정적인 라이브러리와 기능
______플랫폼 특정적인 라이브러리
______로우레벨 호환성 확인
______subprocess 모듈의 위험성
____텍스트 파일의 인코딩과 포맷
____GUI 모드와 콘솔 모드
____플랫폼에 따라 변경되는 코드 작성
__크로스플랫폼 Tkinter
____플랫폼별 Tkinter 버전 차이
____크로스플랫폼 애플리케이션 메뉴
______Menu 위젯의 특별함
______메뉴 지침과 표준
______메뉴와 단축키
____크로스플랫폼 글꼴
____크로스플랫폼 테마
____전체 창 모드
__크로스플랫폼 ABQ 앱
____설정 파일 저장
____CSV 인코딩 지정
____플랫폼 맞춤형 메뉴
______MainMenu 클래스 준비
______단축키 추가
______윈도우즈용 메뉴
______리눅스용 메뉴
______맥OS용 메뉴
______셀렉터 함수
__정리
11장. unittest로 테스트 자동화
__테스트 자동화의 기본
____간단한 단위 테스트
____unittest 모듈
______테스트 케이스 작성
______TestCase 단언 메서드
______픽스처
______모의객체
______복수의 단위 테스트 수행
__Tkinter 코드 테스트
____비동기 코드 관리
____사용자 액션 시뮬레이션
______이벤트 시퀀스 지정
____포커스 관리
____위젯 정보 취득
__ABQ 앱을 위한 테스트 작성
____데이터 모델 테스트
______파일 읽기 테스트
______파일 저장 테스트
______나머지 테스트
____Application 객체 테스트
____위젯 테스트
______ValidatedSpinbox 위젯의 단위 테스트
______ValidatedSpinbox의 통합 테스트
____믹스인 클래스 테스트
__정리
12장. 데이터 저장소 개선
__PostgreSQL
____PostgreSQL 설치와 설정
____pgAdmin으로 PostgreSQL 설정
____명령으로 PostgreSQL 설정
__관계형 데이터 모델링
____기본키
______대리키
____정규화
______제1정규형
______제2정규형
______제3정규형
______더 높은 단계의 정규형
____개체-관계 다이어그램
____데이터 타입 할당
__ABQ 데이터베이스 구축
____테이블 생성
______룩업 테이블 생성
______lab_checks 테이블
______plot_checks 테이블
____뷰 생성
____룩업 테이블 채우기
__psycopg3를 사용한 PostgreSQL 연결
____psycopg2 기초
____파라미터화 쿼리
____특별한 커서 클래스
__ABQ 앱에 SQL 통합
____새 모델 작성
______데이터 저장
______현재 종자 샘플 가져오기
____Application 클래스 변경
______SQL 로그인 구현
______Application
______파일 관련 코드 제거
____DataRecordForm 수정
______필드 순서 조정
______load_record() 수정
______자동 채우기 개선
____RecordList 수정
____마무리
__정리
13장. 클라우드 연계
__urllib을 사용한 HTTP
____HTTP 트랜잭션 기초
______HTTP 상태 코드
____urllib.request로 콘텐츠 다운로드
______POST 요청 생성
____기상 데이터 다운로드
______기상 데이터 모델 만들기
______XML 데이터 파싱
______기상 데이터 저장소 구현
____다운로드 기능을 위한 GUI 요소 추가
__requests를 사용한 RESTful HTTP 서비스
____RESTful 웹 서비스의 이해
____파이썬 requests 라이브러리
______requests 설치와 사용
______세션을 사용한 인증 통신
______requests.Response 객체
____REST 백엔드 구현
______authenticate()
______upload_file()
______check_file()
______get_file()
____REST 업로드 적용
______CSV 파일 생성
______업로드 콜백 추가
______마무리
__paramiko를 사용한 SFTP 서비스
____테스트용 SSH 서비스 준비
____paramiko의 설치와 사용법
______paramiko 사용법
______연결 정보 조사
______SFTP 사용
____SFTP 모델 구현
______파일 업로드
______파일 존재 확인
____SFTPModel 사용
______마무리
__정리
14장. 비동기 프로그래밍
__Tkinter 이벤트 큐
____이벤트 큐 제어
______update()
______after()
____일반적인 이벤트 큐 제어 방법
______매끄러운 화면 변화
______GUI 프리징 완화
__스레드로 백그라운드 코드 실행
____threading 모듈
______Tkinter와 스레드 안전
____네트워크 함수에 스레드 적용
______ThreadedUploader 사용
______큐를 사용한 메시지 전달
______Queue 객체
______큐를 사용한 스레드 간 통신
____ThreadedUploader에 큐 추가
____통신 규약 정의
____업로드 스레드에서 메시지 전송
____큐 메시지 처리
__락을 사용한 공유 자원 보호
____Lock 객체
____Lock 객체를 사용한 동시 업로드 방지
______GIL
__정리
15장. 캔버스를 사용한 데이터 시각화
__캔버스를 사용한 그림과 애니메이션
____캔버스에 그리기
______사각형
______원과 부채꼴
______선
______다각형
______텍스트
______이미지
______Tkinter 위젯
______캔버스 아이템과 상태
____Canvas 객체의 메서드
____캔버스 스크롤
____캔버스 애니메이션
______필드 만들기
______선수 설정
______선수 움직이기
______게임 루프 실행과 우승 조건 판별
__간단한 그래프 제작
____모델 메서드
____차트 뷰
____애플리케이션 수정
__고급 그래프 제작
____데이터 모델 메서드
____버블 차트 뷰
____애플리케이션 수정
__정리
16장. 패키징
__setuptools로 배포 패키지 제작
____배포용 패키지 준비
______requirements
______pyproject
______라이선스 파일 추가
______실행 파일 제작
____setup
______기본 메타데이터
______패키지와 의존 라이브러리
______추가 파일 지정
______명령문 지정
______설정 테스트
____소스 배포판 제작
______소스 배포판 테스트
____wheel 배포판 제작
__cx_Freeze로 실행 파일 제작
____cx_Freeze 첫걸음
____build_exe 옵션
____외부 파일의 포함
____실행 파일 빌드
______빌드 파일 정리
____윈도우즈 실행 파일
______윈도우즈 인스톨러
____맥OS 실행 파일
______맥OS 앱 번들
______맥OS. dmg 파일
__정리
부록 A. reStructuredText 요약
부록 B. SQL 요약 지침서