
스마트폰에 설치 및 설정할 것들 (총 5단계)
1단계: 기본 환경 설치 (Termux)
가장 중요한 앱입니다. 안드로이드에서 리눅스처럼 명령어 환경을 쓸 수 있게 해주는 터미널 앱입니다.
- 설치 경로 (중요!): Google Play Store 버전은 업데이트가 중단되어 절대 사용하면 안 됩니다. 반드시 F-Droid라는 오픈소스 앱 스토어를 통해 설치해야 합니다.
- 설치 방법:
- 폰 브라우저에서 F-Droid 공식 사이트에 접속하여 F-Droid.apk 파일을 다운로드하고 설치하세요.
- F-Droid 앱을 실행하고, 앱 안에서 Termux를 검색하여 설치하세요.
2단계: Termux 기본 업데이트
Termux를 처음 실행한 후, 내부 패키지들을 최신 버전으로 업데이트해야 합니다. 아래 명령어를 한 줄씩 입력하고 엔터를 누르세요. 중간에 [Y/n] 질문이 나오면 y를 입력하고 엔터를 치면 됩니다.
pkg update
pkg upgrade
3단계: 자동화에 필요한 도구들 설치
이제 자동화에 필요한 핵심 프로그램들을 설치할 차례입니다.
- Python 설치: 파이썬 코드를 실행하기 위한 필수 프로그램입니다.
- Bash
pkg install python - Firefox 설치: Selenium이 제어할 **'보이지 않는 브라우저 엔진'**입니다. (Termux 환경에서는 크롬보다 파이어폭스가 훨씬 설치 및 사용이 쉽습니다.)
- Bash
pkg install firefox - GeckoDriver 설치: Selenium이 Firefox 엔진을 조종할 수 있게 해주는 '드라이버(조종기)'입니다.
- Bash
pkg install geckodriver - Selenium 라이브러리 설치: 파이썬용 Selenium 라이브러리를 설치합니다. (이때는 pkg가 아닌 pip를 사용합니다)
- Bash
pip install selenium
4단계: 스마트폰 저장 공간 접근 권한 설정
PC에서 만든 파이썬 파일을 Termux로 가져오려면, Termux가 스마트폰의 파일 시스템에 접근할 수 있어야 합니다.
- 아래 명령어를 입력하세요.
- Bash
termux-setup-storage - "저장공간 접근을 허용하시겠습니까?" 같은 **팝업창이 뜨면 반드시 '허용'**을 눌러주세요.
- 이 명령을 실행하면 Termux 홈 디렉토리(~/) 안에 storage라는 폴더가 생깁니다. 이 폴더를 통해 스마트폰의 Download 폴더 등에 접근할 수 있습니다.
5단계: 코드 수정 및 실행
이제 모든 준비가 끝났습니다.
- 코드 수정 (PC에서):
- 이전 답변을 참고하여, webdriver.Chrome()을 webdriver.Firefox()로 변경해야 합니다.
- human_like_mouse_move 같은 GUI 전용 코드를 제거하거나 주석 처리합니다.
- .click()을 execute_script를 이용한 클릭으로 변경하면 더 안정적입니다.
- 파일 옮기기 (PC -> 스마트폰):
- 수정한 .py 파이썬 파일을 PC에서 스마트폰의 Download 폴더로 복사하세요. (USB 연결, 구글 드라이브, 카카오톡 '나에게 보내기' 등 편한 방법 사용)
- 코드 실행 (스마트폰 Termux에서):
- Termux 앱을 켭니다.
- 아래 명령어로 Download 폴더로 이동합니다.
- Bash
cd ~/storage/downloads - 이제 파이썬 명령어로 코드를 실행합니다. (파일명은 예시입니다)
- Bash
python your_script_name.py
이제 코드가 실행될 것입니다. 물론 스마트폰 화면에는 아무런 변화도 없지만, Termux 화면에 출력되는 print 문들을 통해 코드가 백그라운드에서 정상적으로 작동하고 있음을 확인할 수 있을 것입니다.
오픈소스만 취급: F-Droid에는 오직 '오픈소스(Source Code)' 소프트웨어만 등록될 수 있습니다
- pkg update (업데이트):
- 역할: 내 스마트폰(Termux)에 설치할 수 있는 '소프트웨어 목록'을 최신 버전으로 새로고침하는 것입니다.
- 비유: 마트에 가서 최신 '전단지'를 받아오는 것과 같습니다. "오늘 어떤 물건이 새로 들어왔고, 어떤 물건이 할인하는지" 최신 정보를 확인하는 과정입니다. 이 과정을 거치지 않으면 오래된 정보로 물건을 찾게 될 수 있습니다.
- pkg upgrade (업그레이드):
- 역할: 최신 목록을 확인한 후, 현재 내 스마트폰(Termux)에 이미 설치되어 있는 소프트웨어들 중에 더 새로운 버전이 나온 것들을 모두 최신 버전으로 교체하는 작업입니다.
- 비유: 최신 전단지를 보고, "아, 내가 지난주에 샀던 우유가 오늘 새 버전으로 나왔네? 그럼 헌 우유를 새 우유로 바꿔야겠다"라며 카트에 담아온 물건들을 실제로 업그레이드하는 과정입니다.
요약:
update는 **"무엇을 업그레이드할 수 있는지 확인"**하는 과정이고,
upgrade는 **"확인된 것들을 실제로 업그레이드"**하는 과정입니다.
만약 위 방법으로도 안 된다면: 'Plan B' - 패키지 직접 찾아보기
만약 3단계까지 했는데도 똑같은 오류가 발생한다면, 현재 연결된 서버에 정말로 firefox가 없는 것입니다. 아래 명령어로 진짜 없는지 확인해볼 수 있습니다.
pkg search firefox
2단계: Termux 초기 업데이트
깨끗해진 Termux를 실행하고 기본 업데이트를 합니다. &&는 앞의 명령이 성공하면 뒤의 명령을 바로 실행하라는 뜻입니다.
pkg update && pkg upgrade
(y를 눌러 진행)
3단계: '추가 메뉴판' 가져오기 (결정적인 단계)
chromium이 들어있는 '그래픽 요리용 추가 메뉴판'을 가져옵니다.
pkg install x11-repo //<<<<<<<<<<<<<<<<<<<<<
4단계: 새로운 메뉴판 내용 반영하기 (필수!)
'추가 메뉴판'을 가져왔으니, 그 내용을 시스템에 반영시키기 위해 **다시 한번 update**를 실행해야 합니다.
pkg update
5단계: 드디어 'Chromium' 설치!
이제 Termux는 chromium이 어디에 있는지 정확히 알고 있습니다. 설치를 진행합니다.
pkg install chromium
이 명령어가 성공적으로 실행되면, 이어서 chromedriver도 설치합니다.
pkg install chromedriver
과거와 달리 최신 chromium 패키지 안에는 chromedriver가 이미 포함되어 있기 때문입니다
pkg files chromium | grep chromedriver
예상 결과:
만약 이 명령어를 실행했을 때, 아래와 비슷한 내용이 화면에 나타난다면 100% 성공입니다.
.../bin/chromedriver
이것은 chromium 패키지 안에 chromedriver 실행 파일이 성공적으로 설치되었다는 결정적인 증거입니다.
네, 맞습니다! 드디어 모든 준비가 끝났습니다. 이제 마지막 단계인 '코드 실행'만 남았습니다.
사용자님께서 "이건 명령어 창같은데, 흠" 이라고 정확히 짚어주셨습니다. 이 Termux 화면은 코드를 작성하고 편집하는 '요리 공간(IDE)'이 아니라, 완성된 요리(코드 파일)를 실행시키는 **'식탁(실행 환경)'**입니다.
따라서 우리의 작업 흐름은 다음과 같습니다.
- PC에서 코드를 완성합니다. (편안한 주방에서 요리하기)
- 완성된 코드 파일을 스마트폰으로 옮깁니다. (식탁으로 요리 배달하기)
- Termux에서 명령어를 쳐서 그 파일을 실행합니다. (식탁에서 요리 먹기)
1. PC에서 완성할 최종 파이썬 코드
PC의 코드 에디터(VS Code, 메모장 등)를 열고, run_on_termux.py 같은 이름으로 파일을 저장한 뒤, 아래 코드를 그대로 복사해서 붙여넣으세요. 이 코드가 바로 Termux 환경에서 작동하는 최종 완성본입니다.
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
print("--- Termux 자동화 스크립트 시작 ---")
# --- Termux 환경을 위한 크롬 옵션 설정 ---
# 이 부분은 Termux에서 Selenium을 실행하기 위한 필수 설정입니다.
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless') # 화면 없는 모드 (필수)
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36")
# Termux에 설치된 chromedriver의 정확한 경로를 지정합니다.
# ※주의: 이 경로는 절대 수정하면 안 됩니다!
service = Service('/data/data/com.termux/files/usr/bin/chromedriver')
try:
# 드라이버 실행
print("Selenium 웹 드라이버를 초기화합니다...")
driver = webdriver.Chrome(service=service, options=chrome_options)
print("드라이버 초기화 성공!")
# 테스트를 위해 구글에 접속해보기
target_url = "https://www.google.com"
print(f"'{target_url}' 페이지로 이동합니다...")
driver.get(target_url)
time.sleep(3) # 페이지 로딩 대기
# 페이지 제목을 가져와서 출력하기
page_title = driver.title
print(f"성공! 현재 페이지의 제목은 '{page_title}' 입니다.")
# 검색창을 찾아서 'Termux'라고 입력해보기
print("검색창을 찾아서 'Termux'를 입력합니다...")
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Termux")
search_box.submit()
time.sleep(3) # 검색 결과 로딩 대기
print(f"검색 후 페이지 제목: '{driver.title}'")
print("모든 테스트 작업이 성공적으로 완료되었습니다!")
except Exception as e:
print(f"[오류 발생] 스크립트 실행 중 문제가 발생했습니다: {e}")
finally:
if 'driver' in locals():
# 드라이버 종료
driver.quit()
print("웹 드라이버를 종료했습니다.")
print("--- 스크립트 종료 ---")
2. 스마트폰으로 파일 옮기기
PC에서 방금 저장한 run_on_termux.py 파일을 스마트폰의 Download 폴더로 옮기세요.
(USB 케이블로 연결해서 복사하거나, 구글 드라이브를 이용하거나, 카카오톡 '나에게 보내기' 등 가장 편한 방법을 사용하시면 됩니다.)
3. Termux에서 코드 실행하기 (마지막 단계!)
이제 스마트폰에서 Termux 앱을 켜고, 아래 명령어들을 한 줄씩 차례대로 입력하세요.
1. Download 폴더로 이동하기:
먼저, termux-setup-storage 명령어를 실행해서 저장 공간 접근 권한을 허용했는지 확인하세요. (이미 하셨다면 넘어갑니다.)
cd ~/storage/downloads
(이 명령어는 cd /storage/emulated/0/Download 와 같습니다.)
2. 파일이 잘 있는지 확인하기 (선택 사항):
ls 명령어를 쳐서 파일 목록에 방금 옮긴 run_on_termux.py 파일이 보이는지 확인해 보세요.
ls
3. 파이썬 스크립트 실행!
이제 마지막으로, 아래 명령어를 입력해서 코드를 실행합니다.
python run_on_termux.py
예상 결과:
--headless 옵션 때문에 스마트폰 화면에는 아무런 브라우저 창도 뜨지 않을 것입니다. 대신, Termux 화면에 아래와 같이 코드에 적어둔 print 문들이 순서대로 출력될 것입니다.
--- Termux 자동화 스크립트 시작 ---
Selenium 웹 드라이버를 초기화합니다...
드라이버 초기화 성공!
'https://www.google.com' 페이지로 이동합니다...
성공! 현재 페이지의 제목은 'Google' 입니다.
검색창을 찾아서 'Termux'를 입력합니다...
검색 후 페이지 제목: 'Termux - Google 검색'
모든 테스트 작업이 성공적으로 완료되었습니다!
웹 드라이버를 종료했습니다.
--- 스크립트 종료 ---
이 모든 과정을 거쳐 마침내 목적지에 도착했습니다. 정말 고생 많으셨습니다
오류의 원인 (쉬운 비유)
- ~/storage: 이것은 Termux가 스마트폰의 실제 저장 공간(Download 폴더 등)으로 가기 위해 사용하는 **'바로 가기 아이콘'**과 같습니다.
- termux-setup-storage: 이것은 바탕화면에 그 '바로 가기 아이콘을 생성하는' 명령어입니다.
지금 No such file or directory (그런 파일이나 디렉터리가 없습니다) 오류가 뜬 이유는, 우리가 아직 바탕화면에 '바로 가기 아이콘'을 만드는 작업을 하지 않았기 때문입니다. Termux가 어디로 가야 할지 길을 못 찾고 있는 것입니다.
해결책 1: '바로 가기 아이콘' 생성하기 (가장 추천하는 방법)
이것은 Termux 사용을 위해 딱 한 번만 해주면 되는 필수 설정입니다.
1단계: 바로 가기 생성 명령어 입력
아래 명령어를 Termux에 입력하고 엔터를 누르세요.
termux-setup-storage
2단계: 권한 허용 팝업에서 '허용' 누르기 (매우 중요!)
위 명령어를 실행하면, 화면에 "저장공간 접근을 허용하시겠습니까?" 와 비슷한 팝업창이 뜰 것입니다. 여기서 **반드시 '허용'**을 누르셔야 합니다. 만약 '거부'를 누르면 바로 가기가 생성되지 않습니다.
3단계: 다시 Download 폴더로 이동하기
성공적으로 '허용'을 누르셨다면, 이제 바로 가기가 만들어졌을 것입니다. 아까 실패했던 명령어를 다시 입력해 보세요.
cd ~/storage/downloads
이제는 아무 오류 없이 성공적으로 Download 폴더로 이동될 것입니다!
근데 확장자가 ipynb인데
- .py (파이썬 스크립트 파일):
- 순수하게 파이썬 코드만 들어있는 '일반 텍스트' 파일입니다.
- 비유: 요리법의 **'지시사항 목록'**만 깔끔하게 적어놓은 **메모장 파일(txt)**과 같습니다. python이라는 요리사는 이 지시사항을 처음부터 끝까지 순서대로 읽고 요리를 합니다.
- .ipynb (IPython 노트북 / 주피터 노트북 파일):
- 이것은 단순한 코드 파일이 아닙니다. 이것은 **코드, 코드의 실행 결과, 설명글(마크다운), 이미지, 차트 등이 모두 하나로 합쳐진 '종합 문서'**입니다.
- 비유: 요리법의 지시사항뿐만 아니라, **각 단계별 요리 사진, 요리사의 메모, 완성된 요리 사진까지 모두 포함된 화려한 '파워포인트 파일(pptx)'**과 같습니다
코랩의 작동 방식과 '다운로드'의 중요성
사용자님의 스크린샷을 보면, 파일 이름이 Untitled0.py로 되어 있지만, 인터페이스(재생 버튼, 셀 구조 등)는 여전히 노트북(.ipynb)처럼 작동하고 있습니다.
이것은 코랩이 사용자의 편의를 위해 .py 파일도 노트북처럼 보여주는 것일 수 있습니다. 하지만 이 파일을 Termux에서 실행하려면, 반드시 코랩의 '다운로드' 기능을 통해 순수한 .py 스크립트로 변환하는 과정을 거쳐야 합니다.
단순히 이름을 .py로 바꾸는 것만으로는 안 됩니다.
정확한 변환 및 저장 방법 (Google Colab)
아래 순서대로 따라하시면, 코랩 노트북을 완벽한 .py 스크립트 파일로 변환하여 다운로드할 수 있습니다.
1. 상단 메뉴에서 파일을 클릭하세요.
2. 다운로드 메뉴로 마우스를 가져가세요.
3. 나타나는 하위 메뉴에서 .py 다운로드를 선택하세요.
(바로 이 메뉴입니다: 파일 -> 다운로드 -> .py 다운로드)
이 과정을 거치면, 코랩이 현재 노트북의 모든 코드 셀들을 순서대로 합쳐서, 우리가 원하던 **순수한 '요리법'(.py 파일)**으로 만들어 PC에 저장해 줍니다.
사용자님께서 보고 계신 화면이 바로 **'구글 코랩 편집 화면'**입니다. 이제 여기서 .py 파일로 다운로드하는 것은 아주 간단합니다.
화면의 왼쪽 상단을 봐주세요.
정확한 위치:
| 파일 | 수정 | 보기 | 삽입 | 런타임 | 도구 | 도움말 |
바로 저 메뉴들 중에서 **가장 왼쪽에 있는 파일**을 클릭하시면 됩니다.
정확한 순서:
- 화면 왼쪽 상단에 있는 파일 메뉴를 마우스로 클릭합니다.
- 아래로 펼쳐지는 메뉴들 중에서 **다운로드**에 마우스 커서를 올립니다. (클릭하지 마세요!)
- 옆으로 새로운 하위 메뉴가 나타나면, 거기서 **.py 다운로드**를 클릭합니다.
그러면 PC의 다운로드 폴더에 Untitled0.py (또는 설정하신 다른 이름) 파일이 저장될 것입니다.
구글 드라이브 vs 구글 코랩 (파일 캐비닛 vs 워드프로세서)
- 구글 드라이브 (지금 계신 곳):
- 이것은 파일을 보관하고 관리하는 **'파일 캐비닛'**입니다.
- 여기서 할 수 있는 일은 파일의 **'겉'**을 다루는 일입니다: 다운로드(파일 통째로 가져오기), 이름 바꾸기, 삭제하기 등.
- 여기서 '다운로드'를 누르면, 파일을 변환하는 것이 아니라 .ipynb 파일을 그냥 그대로 PC로 가져옵니다. 그래서 하위 메뉴가 없는 것입니다.
- 구글 코랩 (우리가 가야 할 곳):
- 이것은 코드를 직접 편집하고 실행하는 **'워드프로세서' 또는 '요리대'**입니다.
- 파일의 **'속'**을 다루는 곳입니다.
- 워드프로세서에서 문서를 .docx가 아닌 .pdf나 .txt로 '다른 이름으로 저장'할 수 있듯이, 코랩에서는 파일을 열어서 편집하는 상태에서만 .py 파일로 **'변환하여 다운로드'**할 수 있습니다.
pip install selenium
지금 계신 Download 폴더에서 바로 설치하셔도 아무 상관 없습니다.
pip install은 위치에 구애받지 않습니다
'개발 > 자동화' 카테고리의 다른 글
| 자동화)왜 조회수는 그대로(10.24) (0) | 2025.10.24 |
|---|---|
| [자동화] 네이버 자동검색 티스토리 이동 (10) | 2025.08.10 |
| [티스토리 좋아요 댓글 자동화] 구글 검색으로 티스토리 들어가게 하기(미완) #12 (13) | 2025.07.30 |
| [티스토리 좋아요 댓글 자동화] 더 사람처럼(코드)#11 (13) | 2025.07.27 |
| [티스토리 좋아요 댓글 자동화] 더 사람처럼 (이론) #10 (15) | 2025.07.27 |