15

같은 코드가 10배 빨라지는 비밀

Day 3: 같은 코드가 10배 빨라지는 비밀

학습 목표

Spark 최적화의 필요성을 이해한다 Catalyst Optimizer에 대한 흥미를 갖는다

신기한 경험

어느 날, 코드 리뷰를 받았다.

내 코드:

에디터 로딩 중...

선배 코드:

에디터 로딩 중...

"둘 다 똑같이 돌아가는데요?"

선배가 웃으면서 말했다.

"실행 계획 봐봐. 똑같아."


explain()으로 확인

에디터 로딩 중...

출력:

에디터 로딩 중...

뭐?! user_id, amount, status만 읽는다고?

100개 컬럼 중 3개만 읽는다. 내가 select("*")를 써도 Spark가 알아서 최적화한 것이다.


이것이 Catalyst Optimizer

에디터 로딩 중...

Spark는 내 코드를 그대로 실행하지 않는다. 분석하고, 최적화하고, 가장 효율적인 방법으로 실행한다.


오늘 배울 것

  • Catalyst Optimizer가 하는 일
  • 실행 계획(explain) 읽는 법
  • 최적화가 잘 되도록 코드 작성하는 법
  • 최적화를 방해하는 안티패턴 피하기

"알아서 빨라진다"는 말의 진짜 의미를 알게 될 것이다.