시작하는 개발자들을 위한 기술 여행 가이드
2024년 01월 31일 출간
국내도서 : 2023년 11월 10일 출간
- eBook 상품 정보
- 파일 정보 PDF (41.70MB)
- ISBN 9791193229132
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)

쿠폰적용가 18,000원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
_대상 독자
“개발자가 되기 위해 코딩만 열심히 하고 있는데, 내가 잘하고 있는 건지 모르겠다. 배워야 할 게 너무 많아 항상 불안하다.”
“개발자가 된 지 이제 불과 1년도 안 됐는데, 밤낮으로 프로젝트에 파묻혀 살다 보니 단순 코딩 머신이 되어 가는 느낌이다. 높은 곳에서 내가 있는 위치를 한번 확인해보고 싶다.”
1부 | 코드 이야기
1장_좋은 코드를 위한 고민
코드의 본질
좋은 코드를 위한 은유
좋은 코드를 위한 추상화
관심사의 분리
1장을 마치며
2장_안전한 코드를 위해서
버그와 장애
테스트 자동화
테스트 가능한 코드
테스트 환경
포스트 모텀
2장을 마치며
3장_코드 속 버그 잡아내기
동전의 양면과 같은 코딩과 디버깅
기상천외한 버그들
탐정이 될 시간
기본적인 디버깅 기술
그래도 안 풀려요!
3장을 마치며
4장_코드에도 패턴이 있다
건축학 개론
소프트웨어에서의 패턴
패턴의 발견
패턴이 유용한 이유
패턴의 유혹
4장을 마치며
5장_깃, 나는 네가 지난여름에 짠 코드를 알고 있다
버전을 관리해야 하는 이유
버전 관리 시스템의 역사
깃을 만든 리누스 토발즈
커밋 메시지 잘 작성하기
하나의 변경은 하나의 커밋으로
커밋으로 협업하기
5장을 마치며
6장_여전히 성장 중인 자바
다재다능한 자바
자바의 탄생
자바와 JVM
자바를 싫어하는 사람들
객체 지향 패러다임
6장을 마치며
7장_간결한 코드를 위한 파이썬
파이썬의 탄생
파이썬의 생산성
파이썬 vs. 펄
Pythonic하게 코드를 짜세요
7장을 마치며
8장_구글이 만든 프로그래밍 언어, Go
Go의 탄생
Go가 해결하고자 했던 문제
동시성 프로그래밍의 어려움
Go의 동시성 프로그래밍
경량 스레드, 고루틴
Go의 오류 처리
8장을 마치며
2부 | 환경 이야기
9장_서버 환경의 변화
정적 링크와 동적 링크
패키지 관리자
설치 문서
프로비저닝 도구
컨테이너의 시대
새로운 시대의 운영체제, 쿠버네티스
9장을 마치며
10장_클라우드로의 여정
전산실에서 IDC로
IDC에서 클라우드로
IaaS, PaaS, SaaS
클라우드 전환기
클라우드 네이티브의 특징
10장을 마치며
11장_태생의 한계에 도전하는 웹 이야기
웹의 탄생
정적인 웹에서 동적인 웹으로
Ajax의 등장
또 하나의 자바스크립트
jQuery의 군림
새로운 자바스크립트 프레임워크의 등장
싱글 페이지 애플리케이션
서버 측 랜더링이 포함된 SPA
11장을 마치며
12장_데이터베이스: 초기부터 오늘날까지
데이터가 사는 곳: 메모리와 디스크
데이터베이스의 등장
관계형 데이터베이스의 저력
관계형 데이터베이스의 한계
새로운 데이터베이스를 위한 시도: NoSQL
12장을 마치며
13장_웹 서비스를 위한 아키텍처 성장기
최초의 애플리케이션
애플리케이션 서버의 확장
데이터베이스 서버의 확장
캐시
HTTP 캐시
애플리케이션 캐시
CDN을 이용한 캐시
13장을 마치며
14장_모니터링으로 꿰뚫어보기
베일에 감춰진 코드의 동작
시스템 관리자의 모니터링
모니터링 데이터: 메트릭
모니터링 데이터: 로그
데이터 시각화
24/7 모니터링을 위한 알림 창
이상치 탐지
14장을 마치며
15장_코드는 파이프라인을 타고
소프트웨어 배포
배포의 고통
지속적인 배포를 위해
간단한 ‘지속적인 배포’ 맛보기
GitOps
무중단 배포
15장을 마치며
16장_마이크로서비스
서브 루틴의 진화
마이크로서비스의 출현
마이크로서비스의 한계
마이크로서비스 간의 통신
마이크로서비스로의 전환
장애 전파
SRE: Site Reliability Engineering
16장을 마치며
17장_데이터 포맷
네트워크 너머로 데이터 보내기
0과 1로 표현하기
비트들을 그대로 저장할 수 없는 이유
직렬화
17장을 마치며
3부 | 개발자 이야기
18장_프로그래밍에 대한 열정
재미있고 어렵다
프로그래밍을 향한 동기
결과물 파 vs 순수 코드 파
몰입의 즐거움
18장을 마치며
19장_더 나은 개발자로 성장하기
성장 가능성
무엇을 먼저 공부해야 하나
개발자의 자질
좋은 개발자의 모습
끊임없는 학습
안전지대 벗어나기
나보다 나은 개발자 만나기
기술 블로그 만들기
토이 프로젝트 및 스터디
19장을 마치며
20장_더 나은 팀 문화를 위하여
개발팀의 문화
업무 환경의 변화
비동기 의사소통
문서화의 중요성
모두의 코드를 위한 리뷰
20장을 마치며
찾아보기
“하지만 컴퓨터라는 독자만을 염두에 두고 코드를 작성하다가는 머지않아 큰 문제에 부딪히게 됩니다. 2차 독자인 사람을 염두에 두지 않았기 때문입니다.”
“자바에서 예외를 처리할 때 사용되는 throw와 catch라는 키워드 역시 일종의 은유입니다. 사실 이 은유는 다른 언어와는 다른 자바의 예외 처리 방식을 효과적으로 나타내기 위한 목적이 있습니다.”
“관심사를 분리하여 코드를 작성하면 각각의 코드 영역에서 적은 수의 관심사에만 집중할 수 있기 때문에 코드를 파악하는 것이 훨씬 수월합니다.”
“코드가 강하게 결합되어 있다면 유지 보수 비용이 크게 드는 경향이 있습니다. 일반적으로 ‘의존성 주입 (Dependency Injection)’ 등의 기법을 통해 결합도를 낮출 수 있습니다.”
“이 과정에서 인상적이었던 부분은 깃랩의 사고 수습 및 복구 과정이 상당히 투명하게 공개되었다는 것입니다. 그들은 복구 진행 프로세 스 전반을 트위터 계정을 통해 실시간으로 알렸습니다.”
“이제부터는 바야흐로 탐정이 될 시간입니다. 디버깅은 수수께끼를 푸는 것과 비슷합니다. 복잡한 수수께끼를 풀기 위해 관찰력, 지식, 직관, 추론 능력으로 중무장하고 끈기와 인내로 문제를 해결해 나가는 셜록 홈즈가 되어야 합니다.”
“버그 재현과 로그를 통해 디버깅을 수행할 때 그 과정을 꼼꼼히 기록하는 것도 큰 도움이 됩니다. 복잡하거나 난해한 버그의 경우 이를 추적하는 데 며칠에서 길게는 몇 달까지 걸릴 수 있습니다. 이 기간 동안 획득한 단서나 실험 결과를 머릿속에만 유지하기보다는 일종의 디버깅 문서를 만들어 기록하는 것이 좋습니다.”
“패턴에는 이름도 중요합니다. 만약, ‘문’이라는 이름이 없었다면 건축 사무소에 온 손님에게 도면을 설명하기 위해 “여기에 문을 달겠습니다” 대신 “여기에 경첩이 달린 직사각형 형태의 나무를 대고 손잡이를 달아서 여닫을 수 있는 물체를 달겠습니다”라고 설명해야 할 것입니다.”
“그제서야 각 개발자는 각자의 사본을 가지고 직접 브랜치를 생성하고 커밋을 만들어 나갈 수 있었습니다. 이를 통해 정말 훌륭한 기능을 추가하거나 심각한 버그를 고칠 수 있게 되었습니다.”
““혼자 가면 빨리 갈 수 있지만 함께 가면 멀리 간다”라는 말이 있습니다. 본문에서 언급한 리누스 토발즈도 사실은 리눅스와 깃을 오롯이 혼자 만들지는 않았습니다. 수많은 오픈소스 기여자들과 함께 수십 년 간 훌륭한 소프트웨어를 만들어 오고 있습니다.”
“자바의 생태계에서도 이러한 문제를 인식하고 자바의 장황함을 줄이고자 노력하고 있습니다. 예를 들어, 자바 8에서 ‘람다 표현식’을 도입함에 따라 새로운 스레드를 생성하기 위한 코드가 아래와 같이 간결해졌습니다.”
“재미있는 점은 위의 코드 대신 for (i = 0; i 〈=9; i++)로 써도 동작은 동일하게 돌아가지만 이렇게는 잘 쓰지 않는다는 점입니다. 사람들은 이미 전자의 패턴에 익숙해져 있는 상태에서 0~9가 아닌 0~8까지 도는 반복문이라고 잘못 인식할 가능성이 있기 때문입니다.”
“이와 같이 Go의 특징을 통해 설계 철학을 엿보다 보면 Go의 목적이 가장 뛰어난 프로그래밍 언어를 만들기 위한 연구의 성격이 아닌 동료의 작업 환경을 개선하고 생산성을 향상시키기 위한 시도였다는 것을 알 수 있습니다. 대학을 갓 졸업하고 구글에 입사한 주니어 개발자들도 새로운 언어를 쉽게 익혀 안전한 코드를 작성할 수 있도록 말입니다.”
“개발자들이 자주 하는 변명에 대해 순위를 매겨본다면 아마 다음의 말이 1위를 차지하지 않을까 싶습니다. “제 컴퓨터에선 잘 되는데요?””
“json 같은 텍스트 형태의 데이터는 저장할 때 파일 전체를 처음부터 끝까지 다시 기록해야 합니다. 수천 명의 회원 목록 중 단 한 명의 데이터만 변경되었다고 하더라도 수천 명의 회원 목록 전부 다시 기록해야 한다는 이야기입니다”
매일 파도처럼 밀려오는 새로운 지식에 치이지 않기 위한 나침반과 같은 책
넓은 기술 분야의 지식을 높은 곳에서 한눈에 조망할 수 있는 책
각 지식 간의 연결 고리를 이어주어 인사이트를 주는 책
매일 파도처럼 밀려오는 새로운 지식들을 헤쳐 나가는 것은 어두운 미로를 손전등 하나만 들고 헤매는 것과 같습니다. 그것들 간의 맥락을 설명해주는 나침반과 지도가 꼭 있어야 합니다. 높은 곳에서 한눈에 조망할 수 있다면 이를 기반으로 각 지식 간의 연결 고리를 쉽게 이어갈 수 있습니다.
때로는 한껏 줌을 땡겨 좁은 영역에 복잡한 기술 지식을 자신만의 언어와 표기법으로 새겨 넣습니다. 이러한 과정을 반복하다 보면 멀리서 봤을 때 여러 기술 지식들이 얽히고 설켜 복잡한 개미굴과 같은 3차원의 지도가 완성되어 갑니다.
여러분의 기술 지도를 확장해 나가는 데 도움이 되었으면 좋겠습니다.
닻을 올리고 개발자로서 여행을 떠나는 이들이 더 멀리까지 바라볼 수 있도록 도와주는 책이면 좋겠습니다.
여행 가이드 북이라는 제목처럼 아주 세세한 내용까지는 다루지는 못했습니다. 이때 둘러대기 가장 좋은 핑계는 역시 "지면의 한계"일 것입니다. 하지만 설령 그 한계가 무한하다 하더라도 앞으로 여러분이 기술 분야에서 겪게 될 모든 경험과 즐거움을 책 한 권에 녹여내는 일은 불가능합니다.
그 부분은 여러분의 설레는 탐험의 몫으로 남겨놓겠습니다.
어쩌면 저도 미처 발견하지 못한 아름다운 여행지를 찾게 될지도 모르는 일입니다. 아니, 분명 그렇게 될 것입니다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.

- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)