Builder.shin
Python
142개의 게시물
Python
Python 딕셔너리 병합, 3.5+ 언패킹 연산자 활용
두 개 이상의 딕셔너리를 병합하는 작업이 필요했다. Python 3.5부터 지원하는 언패킹 연산자를 사용해 깔끔하게 해결했다.
2017년 12월 23일
Python
Python 멀티프로세싱으로 대용량 CSV 처리 개선
단일 프로세스로 처리하던 300만 건의 CSV 데이터 파싱이 너무 오래 걸려서 multiprocessing 모듈로 개선했다. 처리 시간을 1/4로 단축할 수 있었다.
2017년 11월 29일
Python
Python 딕셔너리 기본값 처리 3가지 방법
API 응답 파싱 중 KeyError가 빈번하게 발생해서 딕셔너리 기본값 처리 방법을 정리했다. get(), setdefault(), defaultdict 세 가지 방식을 비교하고 실무에서 어떻게 선택하는지 기록한다.
2017년 11월 19일
Python
Python 3.6 f-string으로 마이그레이션
기존 프로젝트의 문자열 포맷팅을 f-string으로 전환했다. % 포맷팅과 .format()이 혼재된 코드를 정리하면서 가독성이 크게 개선됐다.
2017년 11월 6일
Python
Python 멀티프로세싱으로 CSV 대용량 처리 속도 개선
200만 건의 CSV 데이터를 처리하는 배치 작업이 4시간 넘게 걸려서 병목을 분석했다. multiprocessing 모듈로 전환해 처리 시간을 1시간 이내로 단축했다.
2017년 11월 4일
Python
Python 딕셔너리 병합 방식 정리
Python 3.5+ 환경에서 딕셔너리를 병합하는 여러 방식을 비교했다. 상황에 따라 성능과 가독성이 다르기 때문에 각 방식의 특징을 정리해둔다.
2017년 10월 26일
Python
Python 2.7에서 3.6으로 마이그레이션 작업 회고
레거시 Django 프로젝트를 Python 2.7에서 3.6으로 마이그레이션하는 작업을 진행했다. unicode 처리와 라이브러리 호환성 문제가 주요 이슈였고, 2to3 도구와 six 라이브러리로 점진적 전환을 완료했다.
2017년 9월 19일
Python
Django ORM N+1 쿼리 문제 해결
회사 대시보드 페이지 로딩 속도가 3초 이상 걸려 원인을 분석했다. Django ORM에서 발생한 N+1 쿼리 문제였고, select_related와 prefetch_related로 해결했다.
2017년 7월 19일
Python
Python 2에서 3으로 마이그레이션하며 겪은 문제들
레거시 Django 프로젝트를 Python 2.7에서 3.6으로 마이그레이션했다. unicode 처리와 라이브러리 호환성 문제가 주요 이슈였다.
2017년 7월 5일
Python
Python 3.6 f-string으로 문자열 포매팅 개선하기
기존 프로젝트의 % 포매팅과 .format()을 f-string으로 전환했다. 가독성과 성능 모두 개선되었고, 특히 로깅 코드가 훨씬 간결해졌다.
2017년 6월 25일
Previous
1
More pages
12
13
14
15
Next
카테고리