책 소개
빠르게 성장하는 개발자가 되려면 반드시 알아야 할 핵심 기술 17가지!
실무에 필요한 지식은 너무나 광범위해서 학교에서 배운 내용만으로는 부족하다. "학교에서 이런 것도 안 배웠어?"에 당황하는 주니어 개발자와 "아직도 이걸 몰라?"에 지친 실무자를 위해 17가지 필수 개발 지식을 한 권으로 묶었다. 소프트웨어를 지탱하는 7가지 기술, 데이터를 처리하는 6가지 기술, 웹을 지탱하는 4가지 기술을 파이썬 코드를 활용해 핵심만 설명한다. 더 나아가 17가지 기술을 언제, 어떻게 써야 하는지도 배운다. 이 책을 정독하고 나면, 남들보다 앞선 출발점에서 시작하는 자신을 보게 될 것이다. 학교에서 알려주지 않는 기술과 경험을 실무에 활용할 준비가 되었는가?
주요 내용
● 소프트웨어 기술: 문자열 인코딩, 난수, 범용 고유 식별자, 다국어 처리, 해시 함수, 날짜와 시간, 정규 표현식
● 데이터 처리 기술: JSON, YAML, XML, Base64, 프로토콜 버퍼, 데이터 압축
● 웹 기술: HTTP, RESTful API, HTTPS, OAuth 2.0
성장을 꿈꾸는 개발자를 위한 책
이 책은 복잡한 소프트웨어를 개발하는 데 기반이 되는 기술을 설명한다. 따라서 실무에서 마주할 복잡성이라는 문제를 해결하고 올바른 길로 나아가는 데 도움이 될 것이다. 소프트웨어 개발에서 가장 중요한 기술로 문제가 생기기 전까지는 배울 수 없는 인코딩을 시작으로, 소프트웨어 동작에 꼭 필요한 데이터 처리 기술까지 다룬다. 나아가, 어떤 환경에서 개발하더라도 데이터를 안전하고 효율적으로 주고받을 수 있는 웹 서비스의 근간이 되는 핵심 기술도 살펴본다.
파이썬을 활용해 이런 기술들을 배울 것이다. 파이썬을 모르더라도, C, C++, JAVA 중 한 가지만 알면 쉽게 이해할 수 있는 코드로 구성되어 있다. 파이썬이 익숙한 독자라면 파이썬이라는 친구와 더 깊은 관계를 이어가는 기분으로, 파이썬이 낯선 독자라면 새로운 친구를 사귀는 기분으로 이 책을 여행할 수 있다.
현실에 안주하지 않고 성장을 꿈꾸는 개발자라면 이 책에서 설명하는 내용을 숙지하는 것을 강력하게 추천한다. 나아가 개발자를 꿈꾸는 학생에게도 유용한 책이다. 독자가 꿈꾸는 최고의 개발자가 되는 것을 상상해보아라. 그 개발자로 성장하기 위한 첫걸음을 이 책에서 시작해보자.
작가 소개
소프트웨어 프레임워크와 개발 프로세스를 만드는 C++ 개발자다. 한편으로는 개발의 본질적 가치와 의미를 찾기 위해 고민하고, 그 과정을 책으로 옮기며 살아간다.
저서로 『FFmpeg 라이브러리』, 『모던 스타트업』, 역서로 『The Nature of Software Development』, 『도커 오케스트레이션』, 『Docker로 PaaS 구성하기』가 있다.
목 차
[1부 소프트웨어를 지탱하는 기술]
1장 문자열 인코딩
__1.1 문자열 인코딩이란
__1.2 아스키 코드(ASCII)
__1.3 EUC-KR(CP949)
__1.4 유니코드(UTF-8, UTF-16, UTF-32)
__1.5 UTF-8
__1.6 UTF-16
__1.7 마치며
2장 다국어 처리
__2.1 i18n이란
__2.2 i18n 적용하기: gettext
__2.3 마치며
3장 날짜와 시간
__3.1 타임스탬프
__3.2 단조 시간
__3.3 실제 시간
__3.4 타임 존
__3.5 마치며
4장 정규 표현식
__4.1 정규 표현식 기초
__4.2 실사용 예
__4.3 마치며
5장 범용 고유 식별자
__5.1 UUID 구조
__5.2 UUID 버전
__5.3 실사용 예
__5.4 마치며
6장 난수
__6.1 유사 난수
__6.2 암호학적으로 안전한 난수
__6.3 공정한 난수, 셔플 백
__6.4 '무엇'을 위해 사용하는가
__6.5 마치며
7장 해시 함수
__7.1 해시 함수 정의
__7.2 해시 함수를 사용하는 곳
__7.3 해시 함수의 종류
__7.4 해시 함수의 생성 속도 비교
__7.5 실사용 예
__7.6 마치며
[2부 데이터 처리 기술]
8장 JSON
__8.1 JSON 특징
__8.2 JSON 구조
__8.3 JSON 메시지 읽고 쓰기
__8.4 JSON의 한계
__8.5 마치며
9장 YAML
__9.1 YAML 특징
__9.2 YAML 구조
__9.3 YAML 메시지 읽고 쓰기
__9.4 주석 사용하기
__9.5 앵커와 별칭
__9.6 마치며
10장 XML
__10.1 XML 특징
__10.2 XML 구조
__10.3 XML 메시지 읽고 쓰기
__10.4 마치며
11장 프로토콜 버퍼
__11.1 프로토콜 버퍼의 특징
__11.2 프로토콜 버퍼 사용 준비
__11.3 스키마 파일 정의
__11.4 인터페이스 코드 사용 방법
__11.5 메시지 객체 정의
__11.6 마치며
12장 Base64
__12.1 Base64를 사용하는 이유
__12.2 Base64 인코딩 구현
__12.3 Base64 디코딩 구현
__12.4 파이썬 모듈 사용
__12.5 URL-Safe Base64
__12.6 마치며
13장 데이터 압축(zlib)
__13.1 zip, zlib, DEFLATE, INFLATE
__13.2 압축 시 중요한 요소
__13.3 파일 압축 예제
__13.4 파일 압축 해제 예제
__13.5 마치며
[3부 웹을 지탱하는 기술]
14장 HTTP
__14.1 무상태성
__14.2 간단한 HTTP 서버 만들기
__14.3 HTTP 요청
__14.4 HTTP 응답
__14.5 세션과 쿠키
__14.6 스티키 세션
__14.7 CORS
__14.8 아파치와 Nginx
__14.9 마치며
15장 RESTful API
__15.1 글쓰기 API
__15.2 글 읽기 API
__15.3 글 업데이트 API
__15.4 글 삭제 API
__15.5 마치며
16장 HTTPS
__16.1 HTTPS를 사용하는 이유
__16.2 HTTPS의 구성 요소
__16.3 HTTPS 핸드셰이킹 과정
__16.4 마치며
17장 OAuth 2.0
__17.1 OAuth 1.0a vs 2.0
__17.2 OAuth 2 기본 용어
__17.3 OAuth 2 동작 구조
__17.4 OAuth 2 사용 시 주의할 점
__17.5 마치며
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |