전체 글 99

도커 컨테이너에서 외부 셀레니움 실행 3

목표저번까지는, 예제 코드를 실행시켰는데, 실제 셀레니움 코드를 실행 시켜보자.과정처음 dag 코드 실패(그런데 vscode에서 실행했을땐 동작했었다 ;;)run_external_script = SSHOperator( task_id='run_external_script', ssh_conn_id='ssh_default', command='python C:\\script\\my_script.py' )외부의 스크립트를 실행한거라 오류 내용이 출력이 안됨. 따라서 오류 로그를 출력하는 메모장을 추가"python C:\script\my_script.py > C:\script\log.txt" : 우선 my_script.py를 실행하고 그 출력내용을 log.txt로 보내"2>&1" : (..

스레드와 프로세서의 구조적 차이

배경병렬 연산을 하기 위해 알아보다가 파이썬 모듈인 ProcessPoolExecutor , ThreadPoolExecutor를 알게됨처음에 의도한 병렬 연산은 ProcessPoolExecutor 였고, ThreadPoolExecutor은 i/o작업에 특화됐다는걸 알수있었다.이런 용도의 차이를 만들어 내는 구조적 차이를 알고자 한다. 용어정리프로그램프로그램이 실행되면 프로세스 인스턴스가 생성된다. 인스턴스가 생성된다는 의미는 프로그램 실행에 필요한 내용이 컴퓨터 메모리(Ram)에 적재된다는 뜻이다.프로세스: 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태, 여러 크롬창중 하나를 닫으면 프로세스 하나가 닫힌다.스레드의 탄생 : 프로세스 하나만을 사용하기 때문에 다운이 완료될때까지 하루..

파이썬 병렬 스레드 연구

배경 및 결론이전 포스트에서 ProcessPoolExecutor'가 ThreadPoolExecutor보다 압도적인 성능을 보였다. 그렇다면 ThreadPoolExecutor는 언제 사용하는게 좋은가? 결론적으로 ThreadPoolExecutor가 ProcessPoolExecutor보다 유리한 상황은 주로 I/O 바운드 작업이나 덜 CPU 집약적인 작업을 수행할 때이다.1. I/O 바운드 작업작업 특성: 파일 읽기/쓰기, 네트워크 요청, 데이터베이스 통신 등의 I/O 바운드 작업은 실제 CPU 계산보다 데이터를 읽거나 쓰는 데 시간이 더 많이 소요됩니다. 이러한 작업에서는 CPU 사용률이 높지 않기 때문에 프로세스 간의 오버헤드가 불필요할 수 있습니다.효율성: 스레드는 프로세스에 비해 생성 시간과 자원 사..