작가 소개
저 : 양태환
수의대를 다니던 도중 '적정기술'에 매료되어 공학을 공부했습니다. 그때부터 시작한 코딩에 흠뻑 빠져 개발자가 되었습니다. 아직 모르는 게 많아 항상 즐겁게 공부합니다. 최근에는 어떻게 하면 더 많은 사람들이 프로그래밍을 재미있게 배울 수 있을지 고민하는 중입니다.
목 차
1장 변수
__1.1 메모리 미리 보기
____1.1.1 32비트와 64비트의 의미
____1.1.2 메모리에 우편번호를 매긴다
__1.2 변수의 의미
__1.3 파이썬에서의 변수: 이름과 값 객체
__1.4 마무리
2장 정수
__2.1 컴퓨터에서 수를 표현하는 방법
____2.1.1 10진수
____2.1.2 2진수
____2.1.3 16진수
__2.2 10진수를 2진수로
__2.3 2진수를 10진수로
__2.4 16진수를 2진수로
__2.5 코딩으로 확인하는 진수 변환
__2.6 양의 정수
__2.7 음의 정수
____2.7.1 보수의 개념
____2.7.2 2의 보수
____2.7.3 음수의 표현
____2.7.4 2의 보수로 표현하는 이유
__2.8 마무리
3장 실수
__3.1 실수 연산의 함정
__3.2 부동소수점
__3.3 단정도와 배정도
__3.4 1바이트 실수 자료형 설계하기
____3.4.1 10진수 실수를 2진수 실수로 바꾸기
____3.4.2 정규화
____3.4.3 메모리 구조
____3.4.4 1바이트 부동소수점의 표현 범위
____3.4.5 1바이트 부동소수점의 정밀도
__3.5 정밀도에 대한 고찰
____3.5.1 엡실론
____3.5.2 엡실론과 정밀도
__3.6 마무리
4장 문자와 문자열
__4.1 아스키 코드
__4.2 유니코드
__4.3 유니코드 인코딩 방식
____4.3.1 UTF-8
____4.3.2 UTF-16
____4.3.3 UTF-32
__4.4 파이썬 문자열의 특징
__4.5 마무리
5장 함수
__5.1 함수를 시작하기 전에
____5.1.1 자료 구조 미리 엿보기
____5.1.2 전역 변수와 지역 변수
__5.2 인자 전달 방식에 따른 분류
____5.2.1 값에 의한 전달
____5.2.2 참조에 의한 전달
____5.2.3 객체 참조에 의한 전달(파이썬) ? 변경 불가능 객체를 전달할 때
____5.2.4 객체 참조에 의한 전달(파이썬) ? 변경 가능 객체를 전달할 때
__5.3 람다 함수
__5.4 마무리
6장 객체 지향 프로그래밍
__6.1 프로그래밍 패러다임
__6.2 절차 지향 프로그래밍
__6.3 절차 지향으로 학급 성적 평가 프로그램 만들기
____6.3.1 openpyxl 모듈 설치하기
____6.3.2 openpyxl 모듈로 데이터 읽어 들이기
____6.3.3 평균·분산·표준편차를 함수로 만들기
____6.3.4 메인 프로그램 만들기
__6.4 객체 지향 프로그래밍
____6.4.1 캡슐화
____6.4.2 클래스를 사용해 객체 만들기
____6.4.3 파이썬의 클래스
____6.4.4 객체 지향으로 은행 입출금 프로그램 만들기
____6.4.5 정보 은닉
__6.5 객체 지향으로 다시 만드는 학급 성적 평가 프로그램
____6.5.1 Stat 클래스 만들기
____6.5.2 DataHandler 클래스 만들기
____6.5.3 메인 프로그램 만들기
__6.6 마무리
7장 클래스
__7.1 클래스 관계
____7.1.1 IS-A: 상속
____7.1.2 HAS-A: 합성 또는 통합
__7.2 메서드 오버라이딩과 다형성
_____7.2.1 메서드 오버라이딩
_____7.2.2 다형성
__7.3 클래스 설계 예제
__7.4 연산자 오버로딩
__7.5 마무리
8장 CPU
__8.1 트랜지스터와 논리 게이트
____8.1.1 전압, 전류, 저항
____8.1.2 논리 게이트
__8.2 조합 논리 회로와 가산기
_____8.2.1 CPU의 구성
_____8.2.2 가산기
__8.3 순차 논리 회로와 레지스터
__8.4 클록
__8.5 시스템 버스
____8.5.1 시스템 버스의 구성과 특징
__8.6 인스트럭션 세트
____8.6.1 명령어 종류
____8.6.2 덧셈과 뺄셈 명령어
____8.6.3 곱셈과 나눗셈 명령어
____8.6.4 메모리 접근 명령어
____8.6.5 소스 코드에서 인스트럭션으로
__8.7 마무리
9장 메모리
__9.1 메모리 저장 방식
__9.2 메모리 계층
__9.3 지역성과 캐시 히트
__9.4 가상 주소 공간
____9.4.1 코드 세그먼트
____9.4.2 데이터 세그먼트
____9.4.3 스택 세그먼트
____9.4.4 힙 세그먼트
__9.5 스택 프레임
____9.5.1 스택 프레임 할당
____9.5.2 스택 프레임 해제
__9.6 가상 메모리와 페이징
____9.6.1 가상 메모리
____9.6.2 MMU
____9.6.3 페이징
____9.6.4 페이지 프레임
____9.6.5 페이지 테이블
____9.6.6 요구 페이징
____9.6.7 페이지 폴트
____9.6.8 변환 색인 버퍼
__9.7 마무리
10장 프로세스와 스레드
__10.1 프로세스
____10.1.1 프로세스 상태
____10.1.2 스케줄링
____10.1.3 컨텍스트 스위칭
__10.2 스레드
____10.2.1 멀티프로세스와 멀티스레드
____10.2,2 멀티스레딩 구현
____10.2.3 경쟁 조건
____10.2.4 상호 배제
__10.3 마무리
11장 프로그래밍 언어
__11.1 컴파일러 언어와 인터프리터 언어
____11.1.1 C 언어: 컴파일러 언어 분석
____11.1.2 파이썬: 인터프리터 언어 분석
__11.2 파이썬: 소스 코드부터 실행까지
____11.2.1 컴파일러
____11.2,2 추상 구문 트리
____11.2.3 심벌 테이블
____11.2.4 바이트 코드와 PVM
__11.3 마무리
12장 자료 구조 ①
__12.1 자료 구조
____12.1.1 세 가지만 알면 자료 구조 끝
____12.1.2 추상 자료형
__12.2 연결 리스트
____12.2.1 노드
____12.2.2 연결 리스트 구현
__12.3 스택
____12.3.1 스택의 동작
____12.3.2 스택 구현
__12.4 큐
____12.4.1 큐의 동작
____12.4.2 큐 구현
__12.5 마무리
13장 자료 구조 ②
__13.1 재귀 함수
____13.1.1 팩토리얼
____13.1.2 피보나치 수
__13.2 트리
____13.2.1 사이클
____13.2.2 이진 트리
____13.2.3 이진 트리의 종류
__13.3 이진 트리 구현
____13.3.1 트리 노드 구현
____13.3.2 노드 관련 메서드 구현
____13.3.3 서브 트리 관련 메서드 구현
____13.3.4 이진 트리 구성하기
____13.3.5 트리의 순회
__13.4 마무리
14장 이진 탐색 트리
__14.1 이진 탐색 트리의 특징
__14.2 이진 탐색 트리의 구현
____14.2.1 이진 탐색 트리의 추상 자료형
____14.2.2 이진 트리 관련 메서드
____14.2.3 insert( ) 메서드
____14.2.4 search( ) 메서드
____14.2.5 remove( ) 메서드
____14.2.6 테스트 코드
__14.3 마무리
15장 알고리즘
__15.1 알고리즘 성능 분석
__15.2 거품 정렬
__15.3 퀵 정렬
__15.4 마무리
부록: 파이썬 기초
1. 파이썬의 자료 구조
2. 연산자
3. 제어문
4. 반복문
__1.1 메모리 미리 보기
____1.1.1 32비트와 64비트의 의미
____1.1.2 메모리에 우편번호를 매긴다
__1.2 변수의 의미
__1.3 파이썬에서의 변수: 이름과 값 객체
__1.4 마무리
2장 정수
__2.1 컴퓨터에서 수를 표현하는 방법
____2.1.1 10진수
____2.1.2 2진수
____2.1.3 16진수
__2.2 10진수를 2진수로
__2.3 2진수를 10진수로
__2.4 16진수를 2진수로
__2.5 코딩으로 확인하는 진수 변환
__2.6 양의 정수
__2.7 음의 정수
____2.7.1 보수의 개념
____2.7.2 2의 보수
____2.7.3 음수의 표현
____2.7.4 2의 보수로 표현하는 이유
__2.8 마무리
3장 실수
__3.1 실수 연산의 함정
__3.2 부동소수점
__3.3 단정도와 배정도
__3.4 1바이트 실수 자료형 설계하기
____3.4.1 10진수 실수를 2진수 실수로 바꾸기
____3.4.2 정규화
____3.4.3 메모리 구조
____3.4.4 1바이트 부동소수점의 표현 범위
____3.4.5 1바이트 부동소수점의 정밀도
__3.5 정밀도에 대한 고찰
____3.5.1 엡실론
____3.5.2 엡실론과 정밀도
__3.6 마무리
4장 문자와 문자열
__4.1 아스키 코드
__4.2 유니코드
__4.3 유니코드 인코딩 방식
____4.3.1 UTF-8
____4.3.2 UTF-16
____4.3.3 UTF-32
__4.4 파이썬 문자열의 특징
__4.5 마무리
5장 함수
__5.1 함수를 시작하기 전에
____5.1.1 자료 구조 미리 엿보기
____5.1.2 전역 변수와 지역 변수
__5.2 인자 전달 방식에 따른 분류
____5.2.1 값에 의한 전달
____5.2.2 참조에 의한 전달
____5.2.3 객체 참조에 의한 전달(파이썬) ? 변경 불가능 객체를 전달할 때
____5.2.4 객체 참조에 의한 전달(파이썬) ? 변경 가능 객체를 전달할 때
__5.3 람다 함수
__5.4 마무리
6장 객체 지향 프로그래밍
__6.1 프로그래밍 패러다임
__6.2 절차 지향 프로그래밍
__6.3 절차 지향으로 학급 성적 평가 프로그램 만들기
____6.3.1 openpyxl 모듈 설치하기
____6.3.2 openpyxl 모듈로 데이터 읽어 들이기
____6.3.3 평균·분산·표준편차를 함수로 만들기
____6.3.4 메인 프로그램 만들기
__6.4 객체 지향 프로그래밍
____6.4.1 캡슐화
____6.4.2 클래스를 사용해 객체 만들기
____6.4.3 파이썬의 클래스
____6.4.4 객체 지향으로 은행 입출금 프로그램 만들기
____6.4.5 정보 은닉
__6.5 객체 지향으로 다시 만드는 학급 성적 평가 프로그램
____6.5.1 Stat 클래스 만들기
____6.5.2 DataHandler 클래스 만들기
____6.5.3 메인 프로그램 만들기
__6.6 마무리
7장 클래스
__7.1 클래스 관계
____7.1.1 IS-A: 상속
____7.1.2 HAS-A: 합성 또는 통합
__7.2 메서드 오버라이딩과 다형성
_____7.2.1 메서드 오버라이딩
_____7.2.2 다형성
__7.3 클래스 설계 예제
__7.4 연산자 오버로딩
__7.5 마무리
8장 CPU
__8.1 트랜지스터와 논리 게이트
____8.1.1 전압, 전류, 저항
____8.1.2 논리 게이트
__8.2 조합 논리 회로와 가산기
_____8.2.1 CPU의 구성
_____8.2.2 가산기
__8.3 순차 논리 회로와 레지스터
__8.4 클록
__8.5 시스템 버스
____8.5.1 시스템 버스의 구성과 특징
__8.6 인스트럭션 세트
____8.6.1 명령어 종류
____8.6.2 덧셈과 뺄셈 명령어
____8.6.3 곱셈과 나눗셈 명령어
____8.6.4 메모리 접근 명령어
____8.6.5 소스 코드에서 인스트럭션으로
__8.7 마무리
9장 메모리
__9.1 메모리 저장 방식
__9.2 메모리 계층
__9.3 지역성과 캐시 히트
__9.4 가상 주소 공간
____9.4.1 코드 세그먼트
____9.4.2 데이터 세그먼트
____9.4.3 스택 세그먼트
____9.4.4 힙 세그먼트
__9.5 스택 프레임
____9.5.1 스택 프레임 할당
____9.5.2 스택 프레임 해제
__9.6 가상 메모리와 페이징
____9.6.1 가상 메모리
____9.6.2 MMU
____9.6.3 페이징
____9.6.4 페이지 프레임
____9.6.5 페이지 테이블
____9.6.6 요구 페이징
____9.6.7 페이지 폴트
____9.6.8 변환 색인 버퍼
__9.7 마무리
10장 프로세스와 스레드
__10.1 프로세스
____10.1.1 프로세스 상태
____10.1.2 스케줄링
____10.1.3 컨텍스트 스위칭
__10.2 스레드
____10.2.1 멀티프로세스와 멀티스레드
____10.2,2 멀티스레딩 구현
____10.2.3 경쟁 조건
____10.2.4 상호 배제
__10.3 마무리
11장 프로그래밍 언어
__11.1 컴파일러 언어와 인터프리터 언어
____11.1.1 C 언어: 컴파일러 언어 분석
____11.1.2 파이썬: 인터프리터 언어 분석
__11.2 파이썬: 소스 코드부터 실행까지
____11.2.1 컴파일러
____11.2,2 추상 구문 트리
____11.2.3 심벌 테이블
____11.2.4 바이트 코드와 PVM
__11.3 마무리
12장 자료 구조 ①
__12.1 자료 구조
____12.1.1 세 가지만 알면 자료 구조 끝
____12.1.2 추상 자료형
__12.2 연결 리스트
____12.2.1 노드
____12.2.2 연결 리스트 구현
__12.3 스택
____12.3.1 스택의 동작
____12.3.2 스택 구현
__12.4 큐
____12.4.1 큐의 동작
____12.4.2 큐 구현
__12.5 마무리
13장 자료 구조 ②
__13.1 재귀 함수
____13.1.1 팩토리얼
____13.1.2 피보나치 수
__13.2 트리
____13.2.1 사이클
____13.2.2 이진 트리
____13.2.3 이진 트리의 종류
__13.3 이진 트리 구현
____13.3.1 트리 노드 구현
____13.3.2 노드 관련 메서드 구현
____13.3.3 서브 트리 관련 메서드 구현
____13.3.4 이진 트리 구성하기
____13.3.5 트리의 순회
__13.4 마무리
14장 이진 탐색 트리
__14.1 이진 탐색 트리의 특징
__14.2 이진 탐색 트리의 구현
____14.2.1 이진 탐색 트리의 추상 자료형
____14.2.2 이진 트리 관련 메서드
____14.2.3 insert( ) 메서드
____14.2.4 search( ) 메서드
____14.2.5 remove( ) 메서드
____14.2.6 테스트 코드
__14.3 마무리
15장 알고리즘
__15.1 알고리즘 성능 분석
__15.2 거품 정렬
__15.3 퀵 정렬
__15.4 마무리
부록: 파이썬 기초
1. 파이썬의 자료 구조
2. 연산자
3. 제어문
4. 반복문
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |