본문 바로가기

분류 전체보기149

selenium, Chrome 브라우저 handshake failed 에러 해결방법 오류해결코드아래의 옵션들은 자동화 탐지를 우회하고, 사람처럼 보이도록 Selenium 브라우저를 설정하는 코드입니다.import undetected_chromedriver.v2 as uc # 버전 명시하는 게 안전class Crawler(): def __init__(self): options = uc.ChromeOptions() # headless는 일단 꺼두고 테스트 # options.headless = True options.add_argument('--ignore-certificate-errors') options.add_argument('--ignore-ssl-errors') options.add_argument(".. 2025. 6. 21.
Python의 property 사용법 property객체지향 프로그래밍 언어에서 프로퍼티(property)는 객체의 속성을 제어할 때 유용하게 사용되는 기능이며 데이터 캡슐화에 도움이 됩니다.필드명을 통합 접근필드명을 통한 접근은 아래와 같이 객체의 내부 데이터에 접근하는 것은 편리하지만, 해당 데이터는 외부로부터 무방비 상태에 놓이게 됩니다.class Person: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.ageperson = Person("John", "Doe", 20)person.ageGetter/Setter클래스 인스턴스의 내부 데이터를 보.. 2025. 6. 6.
@abstarctmethod, 추상클래스 abstarct class추상클래스는 메서드의 목록만 가진 클래스이며 상속받는 클래스에서 메서드를 구현을 강제하기 위해 사용합니다.예를들어 아래코드는 오류가 납니다from abc import *class StudentBase(metaclass=ABCMeta): @abstractmethod def study(self): pass @abstractmethod def go_to_school(self): passclass Student(StudentBase): def study(self): print('공부하기')james = Student()james.study()왜냐하면 james에는 go_to_school()이 정의되어있지 않기 때문입니다.그.. 2025. 6. 6.
Homebrew설치 및 기능 Homebrew홈브류는 맥os용 패키지 관리자를 말합니다. 홈브류 이외의 커맨드라인에서 사용 가능한 맥OS용 패키지 관리툴이 있지만, 제일 흔히쓰입니다.설치/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"기능brew -v # 버전확인brew search # 패키지목록검색brew info # 패키지상세정보 확인brew install # 패키지 설치brew update # brew 업데이트brew list # brew 패키지 리스트 확인brew outdated # 설치 후 업그레이드된 패키지 검색brew upgrade # 설치 된 모든 패키지 업그레이드brew cleanup # 최.. 2025. 6. 6.
알럿창 로그인 자동화하기, (HTTP 인증창) 자동화 프로젝트를 진행하며 위와 같은 알럿창을 마주쳤을 때 Selenium으로 조작하기어려웠다. 사실은 알럿창이아니라 HTTP Basic Authentication 이며, Selenium은 HTTP Basic Authentication(DOM 내부요소가 아닌) 을 직접 조작할 수 없다. 그래서 pyautogui를 통해 조작을 해야한다.우선 해결방안을 제시하고 왜 이렇게 해야하는지 작성하고자 합니다.해결방안def login(): print("_______________________ 로그인 수행 시작 _____________________") import pyautogui import time driver = driver.Chrome() driver.get("https:http-.. 2025. 6. 6.
대규모 데이터 사이언스 프로젝트 시작하기 전 알아야할 개념과 설계 데이터 사이언스 프로젝트의 핵심개념개념설명예데이터 파이프라인데이터 처리 흐름을 단계별로 자동화하는 과정데이터 읽기 → 전처리 → 모델 학습 → 결과 저장파이프라인 관리 프레임워크파이프라인 단계들을 체계화, 재현 가능하게 만드는 도구Kedro, Metaflow, Airflow모델링 프레임워크머신러닝/딥러닝 모델을 학습시키고 사용하는 도구Scikit-learn, PyTorch, TensorFlow분산처리 프레임워크데이터가 너무 클 때 여러 컴퓨터/CPU로 나눠서 처리하는 도구Spark, Dask자동화(Orchestration)파이프라인이나 모델 학습을 스케줄링하거나 자동 실행Airflow, Prefect, Dagster워크플로우 관리파이프라인보다 더 넓게, 다양한 작업 흐름을 관리Airflow, Metafl.. 2025. 5. 4.
Python, Pathlib를 상대 경로 관리 상대경로 관리의 중요성df = pd.read_csv('D:/컴퓨터/폴더1/폴더2/data.csv') # 절대경로하드코딩된 절대경로 -> 다른 컴퓨터에서 실행 불가폴더 이동, 깃허브 업로드 시 오류 발생이전에 사용하던 방식의 문제점import osdata_path = os.path.join('data', 'etf_data.csv')이 방법은 pathlib 사용법보다 복잡하고 가독성이 떨어집니다.운영체제 구분자(/ vs ) 문제 발생 가능합니다.해결책: Pathlib를 활용해 상대경로에 접근Pathlib은 파이썬에서 파일 경로(디렉토리 경로)를 다루는 라이브러리 입니다.기존의 os.path 방시보다 직관적이고 파워풀해서 Python 3.4 이상부터 공식 추천 방식으로 자리잡았어요.경로들을 문자열이 아니라 객.. 2025. 5. 4.
JS 디버깅 도구 console.log() console.log()console.log() 는 JavaScript에서 데이터를 콘솔에 출력할 수 있는 함수입니다. 디버깅, 상태 확인, 실험 등 다양한 상황에서 사용되며, 단순한 출력 이상의 강력한 기능들을 내포하고 있습니다.console.log()의 동작 원리브라우저 환경에서console은 브라우저가 내장한 객체로, 개발자 도구(DevTools) 콘솔에 접근할 수 있도록 함.실제 구현은 브라우저마다 다르미잔 보통 C++로 작성된 콘솔 API를 JS에서 감싼 형태Node.js 환경에서console.log()는 내부적으로 stdout(표준 출력 스트림)을 사용다양한 출력 방식여러값 출력let name = "Tom", age = 30;console.log("이름:", name, "나이:", age);출.. 2025. 4. 5.
JS 기초 문법 1. 변수 선언let name = "Alice"; // 변경 가능한 변수const age = 25; // 변경 불가능한 변수var city = "Seoul"; // 변경 가능한 변수(구)let: 재할당 가능 , 블록 범위const: 재할당 불가능(상수), 블록 범위var: 함수 범위(호이스팅 발생가능)2. 함수// 선언식function sayHello(name){ return 'Hello, ${name}!"; }// 표현식const sayBye = function(name) { return 'Bye, ${name}!';}// 화살표 함수(Arrow fuction)const double = (x) => x * 2;3. 조건문1) if - else if - else2) switch - ca.. 2025. 4. 5.