현재까지 발견된 이 책의 오탈자 정보와 오류를 안내합니다. 번역과 편집 시에 미처 확인하지 못하고 불편을 끼쳐드려 죄송하다는 말씀을 드립니다. 아래의 오탈자 사항은 추후 3쇄 시에 반영하도록 하겠습니다.
이외의 오탈자 정보를 발견하시면 옮긴이(jeongmin@gmail.com)나 출판사(help@jpub.kr)로 연락주시면 고맙겠습니다.
최종수정일자: 2024년 4월 29일 2쇄본 오탈자 |
12쪽 본문 2번째 줄에서(LDesire 님 제보)
개념적으로 스케줄러는 다음과 단계를 통해
⇒
개념적으로 스케줄러는 다음 단계를 통해
12쪽 3번 항목 2번째 줄에서(LDesire 님 제보)
의존성 태스크가 완료되지 않았다면 실행 대기열에 추가합니다.
⇒
의존성 태스크가 완료되었다면 실행 대기열에 추가합니다.
31쪽 리스트 2.10 '도커에서 Airflow 실행하기'의 1~2번째 행에서(유영기 님 제보)
docker run \
docker run -it -p 8080:8080 \ 호스트에 8080 포트 개방
⇒
docker run -it \
-p 8080:8080 \ 호스트에 8080 포트 개방
40쪽 끝줄에서(LDesire 님 제보)
DAG 안의 있는 태스크는 어디에 위치하든지 재시작할 수 있습니다.
⇒
DAG 안에 있는 실패한 작업은 어디에 위치하든지 재시작할 수 있습니다.
41쪽 본문 5번째 줄에서(LDesire 님 제보)
다음으로, 데이터 분석에 대해 점전적인 접근 방법을 확인하고
⇒
다음으로, 데이터 분석에 대해 점진적인 접근 방법을 확인하고
42쪽 리스트 3.1 '(예약 안 된) 이벤트 DAG의 버전 초기화' 1~2번째 행에서(LDesire님 제보: 'dt' 위치 변경)
import datetime as
dt from pathlib import Path
⇒
import datetime as dt
from pathlib import Path
43쪽 리스트 3.1 '(예약 안 된) 이벤트 DAG의 버전 초기화' 8번째 행에서(LDesire님 제보: 'https'가 아니라 'http')
"https://localhost:5000/events"
⇒
"http://localhost:5000/events"
44쪽 그림 3.1 설명 1번째 줄에서(LDesire님 제보)
DAG가 시작일은 2019-01-01
⇒
DAG의 시작일은 2019-01-01
44쪽 2번째 노트 삭제(LDesire님 제보: 84쪽의 노트와 내용상 중복되어 삭제)
Jinja 사용을 위해서 템플릿화할 수있는 파일을 검색할 경로를 제공해야 합니다. 기본적으로 DAG 파일의 경로만 검색되지만 /tmp에 저장했기 때문에 Jinja가 해당 파일을 찾을 수 없습니다.
⇒ Jinja 사용을 위해서 템플릿화할 수있는 파일을 검색할 경로를 제공해야 합니다. 기본적으로 DAG 파일의 경로만 검색되지만 /tmp에 저장했기 때문에 Jinja가 해당 파일을 찾을 수 없습니다.
46쪽 밑에서 6번째 줄에서(LDesire님 제보)
0 0 * * MON, WED, FRI = 매주 월, 화, 금요일 자정에 실행
⇒
0 0 * * MON, WED, FRI = 매주 월, 수, 금요일 자정에 실행
51쪽 리스트 3.7 '템플릿에서 축약어 사용하기'의 1번째 주석에서(LDesire님 제보)
ds는 YYYYMM-DD 형식의 execution_date를 제공합니다.
⇒
ds는 YYYY-MM-DD 형식의 execution_date를 제공합니다.
52쪽 본문 6번째 줄에서(LDesire 님 제보)
실행 날짜별로 데이터 세트를 파티션하는 이점은 DAG에서 아래 두 번째 태스크(compute_stats)
⇒
실행 날짜별로 데이터 세트를 파티션하는 이점은 DAG에서 아래 두 번째 태스크(calculate_stats)
58쪽 리스트 3.12 '하나의 태스크 안에서 두 개의 작업은 원자성을 무너뜨림'의 마지막 행 삭제(LDesire님 제보)
calculate_stats >> email_stats
⇒calculate_stats >> email_stats
71쪽 상단 코드문 주석에서(이도엽 님 제보)
중괄호 안의 값은 로켓 발사 1회 내용을 나타냅니다
⇒
PythonOperator는 파이썬 함수를 이용해 실행하며, BashOperator는 Bash 명령을 문자열로 받아 실행합니다.
72쪽 리스트 4.6 'kwargs에 저장된 키워드 인수'의 주석에서(LDesire님 제보)
그리고 캡처 인수의 이름을 kwrgs에 지정합니다.
⇒
그리고 캡처 인수의 이름을 kwargs에 지정합니다.
74쪽 밑에서 2번째 줄에서(LDesire님 제보)
되고 다른 모든 변수는 함수 서명에서 명시적으로 정의하지 않았으므로
⇒
되고 다른 모든 변수는 함수 시그니처에서 명시적으로 정의하지 않았으므로
80쪽 8번째 줄에서(LDesire님 제보)
Airflow는 XCom이라는 기본 메커니즘을 제공하여 Airflow 메타스토어에서 선택 가능한
⇒
Airflow는 XCom이라는 기본 메커니즘을 제공하여 Airflow 메타스토어에서 피클링이 가능한
88쪽 9번째 줄에서(LDesire님 제보)
예를 들어, 2장에서 DAG를 가져오는 로켓 발사 사진(그림 5.1)은
⇒
예를 들어, 2장에서 로켓 발사 사진을 가져오는 DAG(그림 5.1)는
88쪽 그림 5.1 제목에서(LDesire님 제보)
2장의 메타데이터 다운로드, 사진 가져오기, 알림 전송을 위한 세 가지 태스크로 구성된 로켓 사진 가져
오기 DAG(그림 2.3과 동일)
⇒
2장의 메타데이터 다운로드, 사진 가져오기, 알림 전송을 위한 세 가지 태스크로 구성된 로켓 사진을 가져
오는 DAG(그림 2.3과 동일)
89쪽 밑에서 6~5번째 줄에서(LDesire님 제보)
Umbrella DAG의 주요 목적은 서로 다른 두 소스에서 매일 날씨 및 판매 데이터를 가져와서 두 데이터 세트를 데이터 세트로 결합하여 모델을 학습시키는 것이었습니다.
⇒
Umbrella DAG의 주요 목적은 서로 다른 두 소스에서 매일 날씨 및 판매 데이터를 가져와서 두 데이터를 데이터 세트로 결합하여 모델을 학습시키는 것이었습니다.
90쪽 리스트 5.4 '팬아웃(일 대 다) 의존성에 추가하기(dags/01_start.py)'의 1~2행에서(LDesire님 제보: "dummy module is deprecated.")
from airflow.operators.dummy import DummyOperator
start=DummyOperator(task_id="start")
⇒
from airflow.operators.empty import EmptyOperator
start=EmptyOperator(task_id="start")
96쪽 리스트 5.12 아랫줄에서(LDesire님 제보)
마찬가지로 두 데이터 정제 태스크를 연결은
⇒
마찬가지로 두 데이터 정제 태스크의 연결은
96쪽 끝줄에서(LDesire님 제보)
datasets 태스크를 건너뛰어 실행하지 않습니다(그림 5.8).
⇒
datasets 태스크를 건너뛰기 때문에 실행하지 않습니다(그림 5.8).
97쪽 9~10번째 줄에서(LDesire님 제보)
이를 통해 모든 상위 항목이 실행 완료 및 실패가 없을 시에 즉시 작업이 실행됩니다.
⇒
이를 통해 모든 상위 항목이 실행이 완료되고 실패가 없을 시에 즉시 작업이 실행됩니다.
100쪽 리스트 5.17 'DAG에서 조건부 빌드하기(dags/06_condition_dag.py)'에서(LDesire님 제보: latest_only 변수 들여쓰기 수정)
def _latest_only(**context):
...
latest_only=PythonOperator(
task_id="latest_only",
python_callable=_latest_only
)
latest_only >> deploy_model
⇒
def _latest_only(**context):
...
latest_only=PythonOperator(
task_id="latest_only",
python_callable=_latest_only,
dag=dag,
)
latest_only >> deploy_model
102쪽 본문 1번째 줄에서(박정원 님 제보)
LastOnly
⇒
LatestOnly
102쪽 밑에서 4번째 줄에서(박정원 님 제보)
결론적으로 Airflow에 사용 가능한 실행 슬롯이 있는 있다면
⇒
결론적으로 Airflow에 사용 가능한 실행 슬롯이 있다면
124쪽 리스트 6.3 'DAG에서 최대 동시 태스크 수 설정하기'에서(LDesire님 제보: 변수명 모두 소문자로 수정)
Dag_id="couponing_app",
Start_date=datetime(2019, 1, 1),
Schedule_interval="0 0 * * *",
Concurrency=50,
⇒
dag_id="couponing_app",
start_date=datetime(2019, 1, 1),
schedule_interval="0 0 * * *",
concurrency=50,
129쪽 중간 코드문 제목에서(역자 제보: 끝에 마침표 삭제요망)
리스트 6.4.
⇒
리스트 6.4
129쪽 중간 코드문 1번째 주석에서(이도엽 님 제보)
dag_id는 정렬되어야 합니다.
⇒
dag_id는 일치해야 합니다.
134쪽 그림 6.21 캡션에서(LDesire님 제보)
schedule_intervals가 정렬되어 있지 않아
⇒
schedule_interval이 정렬되어 있지 않아
'오탈자 정보' 카테고리의 다른 글
[러닝 스파크(개정판)]_오탈자 (4) | 2023.06.01 |
---|---|
[카프카 핵심 가이드(개정증보판)]_오탈자 (0) | 2023.05.09 |
[삐뽀삐뽀 보안 119]_오탈자 (0) | 2023.04.13 |
[전문가를 위한 파이썬 프로그래밍(제4판)]_오탈자 (2) | 2023.03.06 |
[단단한 심층강화학습]_오탈자 (0) | 2023.02.10 |