본문 바로가기

macOS에서 크롤링 작업 중 잠자기 방지하는 방법(caffeinate)

@Jeeqong 2025. 4. 4. 23:15
반응형

부제 : caffeinate 명령어를 활용한 안정적인 셀레니움 크롤링 환경 구성

 

서론

최근 셀레니움을 사용해 여러 URL을 크롤링하는 자동화 작업을 진행했습니다.

작업 대상은 총 400개 이상의 페이지였고, 각 페이지는 자바스크립트 기반으로 콘텐츠를 렌더링하는 구조였습니다. 이 때문에 일반적인 requests 방식이 아닌 Selenium을 통한 브라우저 렌더링이 필요했습니다.

문제는 작업을 실행한 후 일정 시간이 지나면서 발생했습니다.

macOS의 자동 잠자기 기능이 작동하며, 크롤링이 중단되는 이슈가 발생한 것입니다.

 

문제 상황

  • 셀레니움으로 크롤링 중인데, 중간에 맥북이 잠자기에 들어감
  • 결과적으로 driver.get() 이후 아무 동작도 수행되지 않음
  • 로그를 확인해도 별다른 오류 없이 조용히 멈춰 있음

 

해결 방법: caffeinate 명령어

macOS에는 caffeinate라는 기본 명령어가 존재합니다.

이 명령어는 실행 중인 터미널 세션이 유지되는 동안 잠자기 및 디스플레이 꺼짐을 방지해 줍니다.

 

사용법

caffeinate

 

위 명령어를 입력하면, 해당 터미널 세션이 켜져 있는 동안 시스템이 잠자기에 들어가지 않습니다.

 

옵션 설명

옵션  설명
-t <초> 지정한 시간(초) 동안만 유지
-d 디스플레이 꺼짐 방지
-i 시스템 잠자기 방지

 

예시

caffeinate -t 7200  # 2시간 동안 잠자기 방지

 

셀레니움 크롤링과 함께 사용하기

크롤링을 실행하기 전, caffeinate 명령어를 실행해두면

작업이 끝날 때까지 시스템이 잠자지 않고 안정적으로 HTML 렌더링을 진행할 수 있습니다.

 

예시 실행 흐름

# 1. caffeinate 실행
caffeinate

# 2. 별도 터미널에서 크롤링 실행
python crawl_htmls.py

 

또는 한 줄로 함께 실행할 수도 있습니다:

caffeinate python crawl_htmls.py

마무리

장시간 실행되는 작업에서 macOS의 자동 절전 기능은 의도치 않게 작업을 중단시킬 수 있습니다.

특히 셀레니움과 같이 실제 브라우저 환경을 사용하는 경우, 중간에 시스템이 잠들면 작업이 실패하게 됩니다.

caffeinate는 별도의 앱 설치 없이도 이러한 문제를 간단하게 방지할 수 있는 방법으로,

자동화 작업이나 장시간 처리되는 스크립트를 실행할 때 유용하게 사용할 수 있습니다.


관련 링크

반응형
Jeeqong
@Jeeqong :: JQVAULT

Jeeqong's vault : 정보/기록을 쌓아두는 공간 웹개발 포스팅 일상 리뷰를 기록하는 공간입니다.

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차