빠르게 성장하는 개발자가 되려면 반드시 알아야 할 핵심 기술 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부 소프트웨어를 지탱하는 기술]
\r\n1장 문자열 인코딩
\r\n__1.1 문자열 인코딩이란
\r\n__1.2 아스키 코드(ASCII)
\r\n__1.3 EUC-KR(CP949)
\r\n__1.4 유니코드(UTF-8, UTF-16, UTF-32)
\r\n__1.5 UTF-8
\r\n__1.6 UTF-16
\r\n__1.7 마치며
\r\n
\r\n2장 다국어 처리
\r\n__2.1 i18n이란
\r\n__2.2 i18n 적용하기: gettext
\r\n__2.3 마치며
\r\n
\r\n3장 날짜와 시간
\r\n__3.1 타임스탬프
\r\n__3.2 단조 시간
\r\n__3.3 실제 시간
\r\n__3.4 타임 존
\r\n__3.5 마치며
\r\n
\r\n4장 정규 표현식
\r\n__4.1 정규 표현식 기초
\r\n__4.2 실사용 예
\r\n__4.3 마치며
\r\n
\r\n5장 범용 고유 식별자
\r\n__5.1 UUID 구조
\r\n__5.2 UUID 버전
\r\n__5.3 실사용 예
\r\n__5.4 마치며
\r\n
\r\n6장 난수
\r\n__6.1 유사 난수
\r\n__6.2 암호학적으로 안전한 난수
\r\n__6.3 공정한 난수, 셔플 백
\r\n__6.4 \'무엇\'을 위해 사용하는가
\r\n__6.5 마치며
\r\n
\r\n7장 해시 함수
\r\n__7.1 해시 함수 정의
\r\n__7.2 해시 함수를 사용하는 곳
\r\n__7.3 해시 함수의 종류
\r\n__7.4 해시 함수의 생성 속도 비교
\r\n__7.5 실사용 예
\r\n__7.6 마치며
\r\n
\r\n[2부 데이터 처리 기술]
\r\n8장 JSON
\r\n__8.1 JSON 특징
\r\n__8.2 JSON 구조
\r\n__8.3 JSON 메시지 읽고 쓰기
\r\n__8.4 JSON의 한계
\r\n__8.5 마치며
\r\n
\r\n9장 YAML
\r\n__9.1 YAML 특징
\r\n__9.2 YAML 구조
\r\n__9.3 YAML 메시지 읽고 쓰기
\r\n__9.4 주석 사용하기
\r\n__9.5 앵커와 별칭
\r\n__9.6 마치며
\r\n
\r\n10장 XML
\r\n__10.1 XML 특징
\r\n__10.2 XML 구조
\r\n__10.3 XML 메시지 읽고 쓰기
\r\n__10.4 마치며
\r\n
\r\n11장 프로토콜 버퍼
\r\n__11.1 프로토콜 버퍼의 특징
\r\n__11.2 프로토콜 버퍼 사용 준비
\r\n__11.3 스키마 파일 정의
\r\n__11.4 인터페이스 코드 사용 방법
\r\n__11.5 메시지 객체 정의
\r\n__11.6 마치며
\r\n
\r\n12장 Base64
\r\n__12.1 Base64를 사용하는 이유
\r\n__12.2 Base64 인코딩 구현
\r\n__12.3 Base64 디코딩 구현
\r\n__12.4 파이썬 모듈 사용
\r\n__12.5 URL-Safe Base64
\r\n__12.6 마치며
\r\n
\r\n13장 데이터 압축(zlib)
\r\n__13.1 zip, zlib, DEFLATE, INFLATE
\r\n__13.2 압축 시 중요한 요소
\r\n__13.3 파일 압축 예제
\r\n__13.4 파일 압축 해제 예제
\r\n__13.5 마치며
\r\n
\r\n[3부 웹을 지탱하는 기술]
\r\n14장 HTTP
\r\n__14.1 무상태성
\r\n__14.2 간단한 HTTP 서버 만들기
\r\n__14.3 HTTP 요청
\r\n__14.4 HTTP 응답
\r\n__14.5 세션과 쿠키
\r\n__14.6 스티키 세션
\r\n__14.7 CORS
\r\n__14.8 아파치와 Nginx
\r\n__14.9 마치며
\r\n
\r\n15장 RESTful API
\r\n__15.1 글쓰기 API
\r\n__15.2 글 읽기 API
\r\n__15.3 글 업데이트 API
\r\n__15.4 글 삭제 API
\r\n__15.5 마치며
\r\n
\r\n16장 HTTPS
\r\n__16.1 HTTPS를 사용하는 이유
\r\n__16.2 HTTPS의 구성 요소
\r\n__16.3 HTTPS 핸드셰이킹 과정
\r\n__16.4 마치며
\r\n
\r\n17장 OAuth 2.0
\r\n__17.1 OAuth 1.0a vs 2.0
\r\n__17.2 OAuth 2 기본 용어
\r\n__17.3 OAuth 2 동작 구조
\r\n__17.4 OAuth 2 사용 시 주의할 점
\r\n__17.5 마치며