컴퓨터 밑바닥의 비밀

루 샤오펑
480p
구매 가능한 곳

저자/역자

코멘트

2

더 많은 코멘트를 보려면 로그인해 주세요!

목차

1장 프로그래밍 언어부터 프로그램 실행까지, 이렇게 진행된다 1.1 여러분이 프로그래밍 언어를 발명한다면? __1.1.1 창세기: CPU는 똑똑한 바보 __1.1.2 어셈블리어 등장 __1.1.3 저수준 계층의 세부 사항 대 고수준 계층의 추상화 __1.1.4 가득한 규칙: 고급 프로그래밍 언어의 시작 __1.1.5 <인셉션>과 재귀: 코드 본질 __1.1.6 컴퓨터가 재귀를 이해하도록 만들기 __1.1.7 우수한 번역가: 컴파일러 __1.1.8 해석형 언어의 탄생 1.2 컴파일러는 어떻게 작동하는 것일까? __1.2.1 컴파일러는 그저 일반적인 프로그램일 뿐, 대단하지 않다 __1.2.2 각각의 토큰 추출하기 __1.2.3 토큰이 표현하고자 하는 의미 __1.2.4 생성된 구문 트리에 이상은 없을까? __1.2.5 구문 트리를 기반으로 중간 코드 생성하기 __1.2.6 코드 생성 1.3 링커의 말할 수 없는 비밀 __1.3.1 링커는 이렇게 일한다 __1.3.2 심벌 해석: 수요와 공급 __1.3.3 정적 라이브러리, 동적 라이브러리, 실행 파일 __1.3.4 동적 라이브러리의 장단점 __1.3.5 재배치: 심벌의 실행 시 주소 결정하기 __1.3.6 가상 메모리와 프로그램 메모리 구조 1.4 컴퓨터 과학에서 추상화가 중요한 이유 __1.4.1 프로그래밍과 추상화 __1.4.2 시스템 설계와 추상화 1.5 요약 2장 프로그램이 실행되었지만, 뭐가 뭔지 하나도 모르겠다 2.1 운영 체제, 프로세스, 스레드의 근본 이해하기 __2.1.1 모든 것은 CPU에서 시작된다 __2.1.2 CPU에서 운영 체제까지 __2.1.3 프로세스는 매우 훌륭하지만, 아직 불편하다 __2.1.4 프로세스에서 스레드로 진화 __2.1.5 다중 스레드와 메모리 구조 __2.1.6 스레드 활용 예 __2.1.7 스레드 풀의 동작 방식 __2.1.8 스레드 풀의 스레드 수 2.2 스레드 간 공유되는 프로세스 리소스 __2.2.1 스레드 전용 리소스 __2.2.2 코드 영역: 모든 함수를 스레드에 배치하여 실행할 수 있다 __2.2.3 데이터 영역: 모든 스레드가 데이터 영역의 변수에 접근할 수 있다 __2.2.4 힙 영역: 포인터가 핵심이다 __2.2.5 스택 영역: 공유 공간 내 전용 데이터 __2.2.6 동적 링크 라이브러리와 파일 __2.2.7 스레드 전용 저장소 2.3 스레드 안전 코드는 도대체 어떻게 작성해야 할까? __2.3.1 자유와 제약 __2.3.2 스레드 안전이란 무엇일까? __2.3.3 스레드 전용 리소스와 공유 리소스 __2.3.4 스레드 전용 리소스만 사용하기 __2.3.5 스레드 전용 리소스와 함수 매개변수 __2.3.6 전역 변수 사용 __2.3.7 스레드 전용 저장소 __2.3.8 함수 반환값 __2.3.9 스레드 안전이 아닌 코드 호출하기 __2.3.10 스레드 안전 코드는 어떻게 구현할까? 2.4 프로그래머는 코루틴을 어떻게 이해해야 할까? __2.4.1 일반 함수 __2.4.2 일반 함수에서 코루틴으로 __2.4.3 직관적인 코루틴 설명 __2.4.4 함수는 그저 코루틴의 특별한 예에 불과하다 __2.4.5 코루틴의 역사 __2.4.6 코루틴은 어떻게 구현될까? 2.5 콜백 함수를 철저하게 이해한다 __2.5.1 모든 것은 다음 요구에서 시작된다 __2.5.2 콜백이 필요한 이유 __2.5.3 비동기 콜백 __2.5.4 비동기 콜백은 새로운 프로그래밍 사고방식으로 이어진다 __2.5.5 콜백 함수의 정의 __2.5.6 두 가지 콜백 유형 __2.5.7 비동기 콜백의 문제: 콜백 지옥 2.6 동기와 비동기를 철저하게 이해한다 __2.6.1 고된 프로그래머 __2.6.2 전화 통화와 이메일 보내기 __2.6.3 동기 호출 __2.6.4 비동기 호출 __2.6.5 웹 서버에서 동기와 비동기 작업 2.7 아 맞다! 블로킹과 논블로킹도 있다 __2.7.1 블로킹과 논블로킹 __2.7.2 블로킹의 핵심 문제: 입출력 __2.7.3 논블로킹과 비동기 입출력 __2.7.4 피자 주문에 비유하기 __2.7.5 동기와 블로킹 __2.7.6 비동기와 논블로킹 2.8 높은 동시성과 고성능을 갖춘 서버 구현 __2.8.1 다중 프로세스 __2.8.2 다중 스레드 __2.8.3 이벤트 순환과 이벤트 구동 __2.8.4 첫 번째 문제: 이벤트 소스와 입출력 다중화 __2.8.5 두 번째 문제: 이벤트 순환과 다중 스레드 __2.8

출판사 제공 책 소개

비유와 그림으로 쉽게 배우는 컴퓨터 시스템의 본질 컴퓨터 내부를 이해하면 코드가 바뀐다 컴퓨터 시스템의 원리와 메커니즘에 대해 심층적으로 이해하고 있다면 작성하는 코드의 가독성 및 유지 관리 가능성을 개선할 수 있다. 이뿐만 아니라 프로그램 성능을 효과적으로 최적화할 수 있으며, 코드 실행 오류나 비정상적인 시스템 동작을 신속히 찾아내 해결할 수도 있다. 컴퓨터 시스템의 원리에 대해 심층적으로 이해한다 계층별로 추상화되어 있는 컴퓨터 시스템의 구조를 하나씩 뜯어보고, 프로그래밍 언어와 컴파일러로 시작하여 운영 체제와 프로세스, 스레드와 코루틴, 동기화, 메모리에 대해 알아본다. 더불어 CPU와 캐시, 입출력을 구현하는 원리와 파일 시스템, 네트워크와 통신, 보안과 암호화, 병렬 컴퓨팅에 대해서도 함께 배운다.

이 작품이 담긴 컬렉션

1

본 사이트의 모든 콘텐츠는 왓챠피디아의 자산이며, 사전 동의 없이 복제, 전재, 재배포, 인용, 크롤링, AI학습, 데이터 수집 등에 사용하는 것을 금지합니다.

  • 주식회사 왓챠
  • 대표 박태훈
  • 서울특별시 서초구 강남대로 343 신덕빌딩 3층
  • 사업자 등록 번호 211-88-66013