크롬 창이 자꾸 닫히던 자동화 프로그램 오류 해결기
크롬 창이 자꾸 혼자 꺼지던 이유
낮에는 6살 아이를 돌보고 밤에는 생계를 위해 AI와 함께 블로그 글쓰기 자동화 프로그램을 만든다.
최근 블로그 글쓰기 스크립트와 상품 조회 프로그램이 자꾸 서로의 크롬 창을 강제로 닫아버리는 문제가 터졌다.
열심히 작성 중이던 편집기 탭이 한순간에 사라져 임시저장조차 날아간 적이 한두 번이 아니다. (정말 혈압이 오른다.)
원인은 간단했다. 같은 사용자 폴더를 참조하는 크롬 프로세스를 여러 개 동시에 띄우다 보니 파일 잠금 충돌이 일어났던 것이다.
포트 연결과 잠금 장치를 찾기까지
클로드에게 이 기괴한 현상을 설명하고 해결책을 물었다.
처음에는 단순히 크롬 옵션을 바꾸거나 대기 시간을 늘리는 꼼수 위주로 시도했지만 당연히 실패했다.
결국 크롬을 원격 디버깅 포트로 먼저 열어두고, 이미 떠 있다면 새로 켜지 않고 그 포트에 그대로 접속하는 방식으로 판을 갈았다.
여기에 그치지 않고 프로세스 간 파일 잠금과 프로그램 안에서 도는 재진입 잠금을 합쳐서 하나의 작업 세션 컨텍스트를 짜기로 했다. (이거 짜느라 클로드랑 몇 번을 티격태격했는지 모른다.)
한 줄 감싸기로 크롬 하나만 쓰기
결과적으로 크롬 창 하나를 여러 자동화 스크립트가 안전하게 공유하는 구조가 완성되었다.
동시에 여러 작업을 돌려도 한 번에 하나씩만 크롬을 건드리도록 순서가 깔끔하게 잡혔다.
사용법도 복잡하지 않게 기존 코드에 세션 문구 한 줄만 감싸면 끝나는 형태로 다듬었다.
(이래서 도구는 손에 익은 걸 써야 하나 보다.) 이 구조 덕분에 세션이 죽거나 로그인이 풀려서 튕기는 일이 거짓말처럼 사라졌다.
셀레니움을 여러 개 쓴다면 꼭 기억할 점
물론 한계는 있다. 프로세스 간 잠금은 같은 컨테이너 안에서만 확실하게 돌고, 밖에서 억지로 건드리면 순서 보장이 조금 흔들릴 수 있다.
그렇지만 나와 비슷한 환경에서 여러 자동화 도구를 동시에 돌린다면 크롬 프로필 충돌 문제는 무조건 겪게 될 것이다.
그러니 나처럼 새 창을 무작정 띄우는 실수를 하지 않길 바라며, 크롬을 하나로 공유시키고 작업 단위 잠금을 꼭 걸어두길 바란다.
첫 댓글을 남겨보세요.