🐍 Python
-
이펙티브 파이썬 7장 - 동시성과 병렬성
동시성 vs 병렬성구분동시성 (Concurrency)병렬성 (Parallelism)의미여러 작업을 번갈아가며 처리 (겉으로는 동시에)여러 작업을 실제로 동시에 처리처리 방식하나의 코어가 작업을 빠르게 전환하며 처리여러 코어가 각 작업을 동시에 실행예시카페에서 혼자 주문 받고, 계산하고, 음료 만들기카페에서 세 명이 각각 주문, 계산, 음료 만들기목적응답성 향상, I/O 대기 시간 활용처리 속도 향상파이썬스레드, 코루틴 (asyncio)하위 프로세스, C 확장, 시스템 콜자바스크립트이벤트 루프, 프로미스, async/await Web Workers, Node.js의 Worker Threads GIL (Global Interupt Lock)파이썬에는 GIL이라는 전역 인터프리터 락이 존재함하나의 스레드만 파..
2025.04.01
-
이펙티브 파이썬 6장 - 메타클래스와 애트리뷰트
Better way 44 세터와 게터 메서드 대신 평범한 애트리뷰트를 사용하라 setter, getter 메서드 활용이 아닌 애트리뷰트를 직접 활용하자# 안 좋은 예시 - getter, setter 활용class Person: def __init__(self): self._name = '' def get_name(self): return self._name def set_name(self, value): self._name = valuep = Person()p.set_name('Sungchan')print(p.get_name()) # 좋은 예시 - 애트리뷰트 활용class Person: def __init__(self): self.n..
2025.03.30
-
이펙티브 파이썬 5장 - 클래스와 인터페이스
Better way 38 간단한 인터페이스의 경우 클래스 대신 함수를 받아라훅(hook)Python 내장 API 사용할 때, 함수를 전달하여 실행하는 경우Python은 함수를 일급 시민 객체로 취급하기에 가능 일급 시민 (first-class citizen)아무런 제약 없이 사용할 수 있는 데이터 값함수 인자로 넘기기 가능함수 반환 값으로 사용 가능변수나 데이터 구조에 저장 가능 languages = ['python', 'swift', 'java']languages.sort(key=len) # hookprint(languages)>>>['java', 'swift', 'python'] 딕셔너리에 키가 추가 여부를 추적하는 내용이 필요하다고 하자.defaultdict 인자에 log_missing 을 구현하..
2025.03.21