이미 소장하고 있다면 판매해 보세요.
|
PROLOGUE 브라우저와 나
PART 1 페이지 로딩 CHAPTER 1 웹페이지 다운로드 _1.1 서버에 연결하기 _1.2 정보 요청하기 _1.3 서버의 응답 _1.4 파이썬을 통한 텔넷 _1.5 요청과 응답 _1.6 HTML 표시하기 _1.7 암호화된 연결 _1.8 요약 _1.9 연습 문제 CHAPTER 2 화면에 그리기 _2.1 창 만들기 _2.2 창에 그리기 _2.3 텍스트 배치하기 _2.4 텍스트 스크롤하기 _2.5 더 빠른 렌더링 _2.6 요약 _2.7 연습 문제 CHAPTER 3 텍스트 포맷팅하기 _3.1 폰트(서체)란? _3.2 텍스트 측정하기 _3.3 한 단어씩 처리하기 _3.4 텍스트에 스타일 주기 _3.5 레이아웃 객체 _3.6 다양한 크기의 텍스트 _3.7 폰트 캐싱 _3.8 요약 _3.9 연습 문제 PART 2 문서 표시 CHAPTER 4 문서 트리 구축하기 _4.1 노드 트리 _4.2 트리 구축하기 _4.3 파서 디버깅하기 _4.4 셀프 클로징 태그 _4.5 노드 트리 사용하기 _4.6 페이지 오류 다루기 _4.7 요약 _4.8 연습 문제 CHAPTER 5 페이지 레이아웃 _5.1 레이아웃 트리 _5.2 블록 레이아웃 _5.3 크기와 위치 _5.4 재귀 페인팅 _5.5 배경 그리기 _5.6 요약 _5.7 연습 문제 CHAPTER 6 개발자 스타일 적용하기 _6.1 함수를 사용한 파싱 _6.2 style 어트리뷰트 _6.3 셀렉터 _6.4 스타일시트 적용하기 _6.5 캐스케이딩 _6.6 상속된 스타일 _6.7 폰트 프로퍼티 _6.8 요약 _6.9 연습 문제 CHAPTER 7 버튼과 링크 처리하기 _7.1 링크는 어디에 있는가? _7.2 라인 레이아웃 _7.3 클릭 처리 _7.4 탭 브라우징 _7.5 브라우저 크롬 _7.6 히스토리 탐색 _7.7 URL 입력하기 _7.8 요약 _7.9 연습 문제 PART 3 애플리케이션 실행 CHAPTER 8 서버로 정보 보내기 _8.1 폼의 동작 방식 _8.2 위젯을 렌더링하기 _8.3 위젯과 상호작용하기 _8.4 폼을 제출하기 _8.5 웹 앱의 동작 _8.6 POST 요청 수신하기 _8.7 웹페이지 생성하기 _8.8 요약 _8.9 연습 문제 CHAPTER 9 대화형 스크립트 실행하기 _9.1 DukPy 설치하기 _9.2 자바스크립트 코드 실행하기 _9.3 함수 익스포트하기 _9.4 크래시 처리하기 _9.5 핸들 반환하기 _9.6 핸들 래핑 _9.7 이벤트 처리 _9.8 DOM 수정하기 _9.9 이벤트 기본값 _9.10 요약 _9.11 연습 문제 CHAPTER 10 사용자 데이터 보호하기 _10.1 쿠키 _10.2 로그인 시스템 _10.3 쿠키 구현하기 _10.4 교차 사이트 요청 _10.5 동일 출처 정책 _10.6 교차 사이트 요청 위조 _10.7 SameSite 쿠키 _10.8 교차 사이트 스크립팅 _10.9 콘텐츠 보안 정책 _10.10 요약 _10.11 연습 문제 PART 4 모던 브라우저 기능 CHAPTER 11 시각적 효과 _11.1 Skia와 SDL 설치하기 _11.2 SDL을 이용하여 윈도우 만들기 _11.3 서피스와 픽셀 _11.4 Skia를 이용한 래스터화 _11.5 브라우저 컴포지팅 _11.6 투명도 _11.7 블렌딩과 스태킹 _11.8 픽셀 합성 _11.9 클리핑과 마스킹 _11.10 서피스 사용 최적화하기 _11.11 요약 _11.12 연습 문제 CHAPTER 12 태스크와 스레드 스케줄링 _12.1 태스크와 태스크 큐 _12.2 타이머와 setTimeout _12.3 수명이 긴 스레드 _12.4 렌더링 주기 _12.5 더티 비트를 통한 최적화 _12.6 프레임 애니메이션 _12.7 렌더링 프로파일링 _12.8 두 개의 스레드 _12.9 디스플레이 리스트 커밋하기 _12.10 스레드 프로파일링 _12.11 스레드 기반 스크롤 _12.12 스레드기반 스타일과 레이아웃 _12.13 요약 _12.14 연습 문제 CHAPTER 13 애니메이션과 컴포지팅 _13.1 자바스크립트 애니메이션 _13.2 GPU 가속 _13.3 컴포지팅 _13.4 컴포지팅 리프 노드 _13.5 CSS 트랜지션 _13.6 컴포지트 애니메이션 _13.7 컴포지팅 최적화 _13.8 오버랩과 트랜스폼 _13.9 요약 _13.10 연습 문제 CHAPTER 14 콘텐츠 접근성 향상 _14.1 접근성이란? _14.2 확대/축소 _14.3 다크 모드 _14.4 다크 모드 커스터마이징 _14.5 키보드 내비게이션 _14.6 포커스 표시 _14.7 접근성 트리 _14.8 스크린 리더 _14.9 접근성 알림 _14.10 음성과 시각을 통한 상호작용 _14.11 요약 _14.12 연습 문제 CHAPTER 15 삽입된 콘텐츠 지원 _15.1 이미지 _15.2 임베디드 레이아웃 _15.3 이미지 크기 수정 _15.4 인터랙티브 위젯 _15.5 iframe 렌더링 _15.6 iframe 인풋 이벤트 _15.7 iframe 스크립트 _15.8 프레임간 통신 _15.9 격리와 타이밍 _15.10 요약 _15.11 연습 문제 CHAPTER 16 이전 결과 재사용 _16.1 콘텐츠 수정하기 _16.2 왜 무효화일까요? _16.3 멱등성 _16.4 종속성 _16.5 보호된 필드 _16.6 재귀적 무효화 _16.7 width 보호하기 _16.8 인라인 엘리먼트를 위한 width _16.9 레이아웃 필드 무효화 _16.10 인라인 레이아웃을 보호하기 _16.11 변화가 없는 업데이트 건너뛰기 _16.12 탐색 건너뛰기 _16.13 세분화한 스타일 무효화 _16.14 종속성 분석하기 _16.15 요약 _16.16 연습 문제 CHAPTER 17 이 책에서 다루지 않은 내용 _17.1 자바스크립트 실행 _17.2 텍스트 & 그래픽 렌더링 _17.3 커넥션 보안과 프라이버시 _17.4 네트워크 캐싱과 미디어 _17.5 더 멋진 레이아웃 모드 _17.6 브라우저 UI와 개발자 도구 _17.7 테스트 EPILOGUE 변화하는 환경 |
Pavel Panchekha
Chris Harrelson
|
한 조각씩 파헤치는 웹 브라우저의 숨겨진 메커니즘
구글 크롬, 파이어폭스, 엣지... 지금 우리가 사용하는 웹 브라우저의 코드는 최소 1,000만 줄! 이 복잡하고 거대한 웹 브라우저의 '숨겨진 내부'를 직접 탐구할 기회가 찾아왔습니다. 이 책은 수많은 웹 개발자와 학생에게 여전히 미지의 영역으로 남아 있는 브라우저의 동작 원리를 명쾌하게 설명하는 독보적인 안내서입니다. 단순한 이론 학습에 그치지 않고, 파이썬 코드로 나만의 웹 브라우저를 직접 작성하며 밑바닥부터 살펴봅니다. 간단한 기능부터 시작해 한 조각씩 만들어 방대한 실제 웹 브라우저의 작동 원리를 꿰뚫어 볼 수 있습니다. 실제 웹 브라우저 개발에 참여한 저자와 역자의 안내를 따라, 여러분만의 브라우저를 만들어 보세요. 이 책의 내용 ● 페이지 로딩부터 렌더링까지 웹 사이트를 표시하는 전체 과정 ● 크롬, 파이어폭스, 웨일 등 모던 브라우저의 아키텍처 이해 ● 보안 및 성능 최적화 ● 웹 표준과 소프트웨어 공학적 사고 ● 접근성 및 시각 효과 |
|
프런트엔드 개발자로서 평소 당연하게 사용하던 브라우저의 내부 동작 원리를 체계적으로 이해할 수 있는 훌륭한 책이었습니다. 특히 DOM 파싱부터 레이아웃, 페인팅까지 이어지는 렌더링 파이프라인을 직접 구현해 보면서, 그동안 추상적으로만 알고 있던 개념들을 구체적으로 이해하게 되었습니다. 파이썬으로 브라우저를 밑바닥부터 만들어가는 실습 중심의 구성 덕분에 복잡한 개념도 단계적으로 체득할 수 있었고, 실무에서 겪는 렌더링 이슈나 성능 문제를 더 깊이 있게 분석할 수 있는 기반이 되었습니다. 크로스 브라우저 호환성 문제가 왜 발생하는지, 각 브라우저가 어떤 선택을 하는지 이해하면서 더 나은 해결책을 찾을 수 있게 되었습니다. 프런트엔드 개발자라면 한 번쯤 읽어보면 좋을 만큼 실용적이면서 깊이 있는 내용이었습니다. - 김성철 (데이블 프런트엔드 엔지니어)
|
|
깊이 있는 기술 이해도를 가진 저자들이 정성을 들여 최신 브라우저 기술 내용을 쉬우면서도 명확하게 풀어냅니다. 특히 프로젝트를 통해 직접 작은 브라우저를 개발해 나가면서 실제적인 동작 방식을 깊이 이해하는 것을 돕는 부분이 인상적입니다. 평소 브라우저의 내부 동작 방식이 궁금한 개발자부터 프로그래밍을 공부하는 대학생에 이르기까지 많은 독자에게 적지 않은 인사이트와 배움의 즐거움을 선사할 것으로 기대합니다. - 송효진 (LG전자 소프트웨어 엔지니어)
|
|
친절한 예제를 따라 하다 보니 프런트엔드 기술을 처음 접하면서 느꼈던, 직접 작성한 코드가 실시간으로 화면을 바꾸는 흥미로움을 오래간만에 다시 느낄 수 있었습니다. 브라우저의 핵심 기능들을 하나씩 구현해 나가면서, 동작 원리를 완전히 새로운 시각에서 바라볼 수 있었습니다. 특히 크로스 브라우저 이슈나 성능 문제를 브라우저 엔진 수준에서 파악할 수 있어, 브라우저와 대화하는 느낌으로 개발할 수 있게 되었습니다. 웹 브라우저 위에서 기술을 다루는 모든 분께 추천합니다. - 윤기쁨 (프런트엔드 엔지니어)
|
|
평소 웹 애플리케이션 분야를 공부하는데, 이 책에서 웹 브라우저의 동작 구조를 대략적으로나마 알 수 있어 좋았습니다. 컴퓨터 과학을 전공하지 않아도 웹을 공부해 본 분이나 앞으로 공부할 예정인 분이라면 HTML, CSS 같은 문법을 바탕으로 브라우저가 어떻게 문법을 해석하는지 공부할 수 있는 좋은 도서입니다. 특히 파이썬 코드와 라이브러리, 내장 함수를 적극적으로 사용하기에 예제를 어렵지 않게 따라갈 수 있었습니다. - 윤정민 (대학생)
|
|
우리가 매일 사용하는 브라우저를 말 그대로 밑바닥부터 직접 구현하고 최적화하며, 그 내부 동작 원리를 코드 차원에서 이해할 수 있도록 안내하는 책입니다. 단순히 브라우저를 만들어 보고 싶은 개발자에게는 훌륭한 실습서가 될 뿐 아니라, 직접 브라우저를 만들 계획이 없더라도 그 내부 구조와 고려해야 할 요소들을 깊이 이해함으로써 웹 애플리케이션 개발에서 더 나은 코드를 작성하는 데 큰 도움을 줄 수 있습니다. 웹에 관심 있는 개발자라면, 한 번쯤 꼭 읽어볼 만한 가치가 있는 책입니다. - 이기탁 (라인플러스 시니어 매니저(VOOM Server Unit))
|
|
우리가 매일 여닫는 웹 브라우저는 익숙하지만, 내부가 어떻게 움직이는지 직접 볼 기회는 많지 않습니다. 이 책은 작은 브라우저를 함께 만들며, 요청이 화면과 동작으로 바뀌는 전 과정을 직접 확인합니다. 각 장의 예제는 부담 없이 따라갈 수 있을 만큼 단순하지만 핵심 원리를 놓치지 않을 만큼 정교합니다. ‘웹은 왜 이렇게 동작하는가’라는 질문을 가진 모든 분께 추천합니다. - 이영은 (LG CNS 소프트웨어 엔지니어)
|
|
프런트엔드 개발을 하면서 브라우저에 대해서는 깊게 고민하지 않고 있었는데, 이 책의 실습을 따라가며 직접 구현해 보니 브라우저가 정보를 렌더링하는 방법처럼 그동안 몰랐던 내부의 추상화를 푸는 데 많이 도움이 되었습니다. 프런트엔드 개발을 하면서 브라우저의 내부가 궁금하시다면 이 책을 강력 추천합니다. - 이호재 (홍익대학교 컴퓨터공학과)
|
|
참 친절하면서도 깊은 책입니다. 단순히 코드만 따라 하는 것이 아니라, 웹 브라우저의 원리를 몸으로 체득할 수 있었습니다. 개발자라면 누구나 한 번쯤 궁금해했을 ‘브라우저의 밑바닥’을 직접 구현하며 배우는 경험은 큰 즐거움이었습니다. - 채현영 (드림소프트웨어 제품개발팀 백엔드 엔지니어)
|
|
학부 시절 운영체제를 직접 구현하며 배웠던 그 짜릿한 순간들을 다시 경험했습니다. 스케줄러부터 메모리 관리까지 하나씩 만들어가며 OS의 동작 원리를 깨우쳤던 그 희열감을, 이번엔 브라우저를 통해 느낄 수 있었습니다. 크로미움 프로젝트에 처음 참여했을 때, 거대한 코드베이스 앞에서 ‘도대체 어디서부터 시작해야 하지?’라며 막막했던 기억이 납니다. 이런 책이 있었다면 정말 도움이 많이 되었을 것 같습니다.
대부분 오픈 소스 브라우저가 C++ 기반이라 진입장벽이 높은데 이 책은 파이썬으로 접근해서 초보자도 무리 없이 따라갈 수 있습니다. 직접 브라우저를 만들어가는 과정이 재밌고, 웹 표준의 뒷이야기나 용어 설명도 꼼꼼해서 좋았습니다. 각 장에 실린 연습 문제가 진짜 알찹니다. 문제를 스스로 고민하고 브라우저를 확장해 볼 여지를 많이 줍니다. 문제를 차근차근 풀어가다 보면 나만의 멋진 브라우저 하나 뚝딱 만들 수 있을 겁니다. 브라우저 내부 구조를 제대로 이해하고 싶거나 오픈소스 브라우저 프로젝트에 기여하고 싶다면 이 책을 두 번은 읽어 보길 권장합니다. 실제 오픈 소스 브라우저의 코드를 분석할 때도 든든한 나침반 역할을 해줄 겁니다. - 홍영기 (브레이브 소프트웨어 스태프 엔지니어) |