29 notes
- pyproject.toml로 CLI 명령어 등록uv run -m src.db.csv_to_snowpg --옵션... 같은 긴 명령어를 uv run csv-to-snowpg처럼 짧게 만들 수 있다
- uv 프로젝트 관리uv는 패키지 설치, 가상환경, 파이썬 버전, 프로젝트 의존성 관리를 하나로 통합한 Rust 기반 프로젝트 관리 툴이다.
- 흐름 제어와 예외 처리pass는 빈칸 채우기, continue는 현재 회차 건너뛰기, break는 반복문 탈출이다
- for, while과 Pythonic 순회for는 정해진 데이터 묶음을 순회할 때, while은 종료 시점을 모르는 조건 반복에 쓴다
- 누락 값 처리Python/NumPy/Pandas 환경·자료형별로 누락값 표현이 다름(None, np.nan, NaT 등)
- 대용량 데이터 비동기 배치 파이프라인대량 데이터 처리는 배치(묶음 처리), 세마포어(동시 개수 제한), 턴스타일(속도 제한), 락(경쟁 상태 방지), 재시도·백오프를 조합한다
- 소요시간 계산특정 함수 및 명령어 소요시간 확인 방법
- 요일과 기간, 월 경계 날짜 유틸while 루프에 timedelta/relativedelta를 더해 기간별 날짜 문자열 리스트를 만든다
- 운영체제 OS 모듈현재 경로 확인: os.getcwd()
- 클래스 생성과 상속클래스는 객체를 표현하기 위한 문법으로, 속성(데이터)과 메서드(동작)로 구성된다
- argparse 가이드argparse는 터미널 명령어를 통해 스크립트 내부의 변수 값을 제어할 수 있게 해주는 CLI 도구
- asyncio 비동기 프로그래밍비동기는 I/O 대기 시간 동안 다른 작업을 처리해 동시성(Concurrency)을 극대화하는 기법이다
- Boto3 Client와 Connection Poolingboto3.client는 연결된 파이프가 아니라 자격 증명·리전 설정값을 담은 '가방'이다
- DuckDB 사용법DuckDB는 파일 기반 또는 메모리 기반으로 동작하는 임베디드 분석용 데이터베이스다
- if __name__ == '__main__' 이란네임스페이스는 Local → Global → Built-in 순으로 참조되는 이름 구분 범위
- pathlib로 안전한 절대 경로 설정상대 경로는 터미널 실행 위치(CWD)에 따라 달라져 FileNotFoundError를 일으킨다
- pprint로 예쁘게 출력하기목적: 덜 정제된 데이터 형태를 사용자가 보기 좋게 출력
- Python으로 데이터베이스 연결하기sqlalchemy의 create_engine으로 DB 엔진을 만들고, 비밀번호에 특수문자가 있으면 quote_plus로 인코딩한다
- reduce로 누적 집계하기reduce는 집계 함수를 누적으로 적용하는 functools 모듈의 함수다
- Selenium 웹 크롤링Selenium은 웹 브라우저를 제어해 페이지를 불러오고 JavaScript를 실행하며, BeautifulSoup은 HTML·XML을 파싱해 정보를 추출한다
- 문자열 분리 split & extract요약 특정 문자로 구분: str.split() 활용 정규표현식으로 구분: str.extract() 활용 특정 문자로 구분 # 각 열을 분할하여 list로 반환 df = df.assign( basic=df['col'].str.split(','), ver2=df['col'].apply(lambda x: x.split(sep=',', maxsplit=1)) ) # 분할 결과를 데이터프레임으로 반환 df2 = df['col'].str.split(&#...
- 정규표현식 가이드re 모듈 활용
- 조건부 문자열 필터링요약 polars: select() 메서드와 정규표현식 활용 pandas: 열 list에 접근하여 Boolean 값 반환 후 df.loc으로 인덱싱 polars # 조건 1개 music_df = df.select(pl.col('^music_.*$')) movie_df = df.select(pl.col('^.*movie$')) # 조건 2개 이상 fruits_df = df.select(pl.col('^apple.*$|^banana.*$')) nutrient_df = df.sele...
- Cursor VS Code 세팅uv 도입에 맞춰 Cursor(VS Code) 에디터를 최적화하는 settings.json 세팅 가이드
- date_range 시간 간격pandas의 date_range()를 활용하여 동일한 시간 간격의 날짜 데이터 생성
- Pydantic과 TOML로 Config 관리기존 Dict/YAML 기반 설정 관리의 타입 불안정성과 들여쓰기 민감성 문제 해결
- Python 설치 및 설정Mac 환경에서 기존 Python 정리 후 homebrew로 재설치하는 과정 정리
- timedelta 날짜 계산주요 내용 및 요약 dateutil.relativedelta 패키지 활용 요일 및 주중/주말 표시 상대적인 시간 계산 참고사항 datetime 패키지는 일(day) 단위만 적용 가능.
- tqdm 진행표시 모듈반복문의 진행상황을 확인