분류 전체보기59 이펙티브 파이썬 8장 - 강건성과 성능 Better way 65 try/except/else/finally의 각 블록을 잘 활용하라블록용도try예외가 발생할 수 있는 최소한의 코드만 포함except예외 처리else예외 없이 성공한 경우의 처리 (except으로 빠진 경우 실행 X)finally예외 여부와 무관하게 반드시 실행되어야 하는 부분 (파일 닫는 등) 안 좋은 예시 - try문 안에 예외 발생 코드 & 안하는 코드가 섞여 있음import threadinglock = threading.Lock()def critical_section_basic(): lock.acquire() try: result = 10 / 0 # ❗ 예외 발생 가능 print("✅ 작업 성공:", result) except .. 2025. 4. 9. 이펙티브 파이썬 7장 - 동시성과 병렬성 동시성 vs 병렬성구분동시성 (Concurrency)병렬성 (Parallelism)의미여러 작업을 번갈아가며 처리 (겉으로는 동시에)여러 작업을 실제로 동시에 처리처리 방식하나의 코어가 작업을 빠르게 전환하며 처리여러 코어가 각 작업을 동시에 실행예시카페에서 혼자 주문 받고, 계산하고, 음료 만들기카페에서 세 명이 각각 주문, 계산, 음료 만들기목적응답성 향상, I/O 대기 시간 활용처리 속도 향상파이썬스레드, 코루틴 (asyncio)하위 프로세스, C 확장, 시스템 콜자바스크립트이벤트 루프, 프로미스, async/await Web Workers, Node.js의 Worker Threads GIL (Global Interupt Lock)파이썬에는 GIL이라는 전역 인터프리터 락이 존재함하나의 스레드만 파.. 2025. 4. 1. 이펙티브 파이썬 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. 3. 30. 백준 21279번 광부 호석 - Python 문제https://www.acmicpc.net/problem/21279 시도했지만 실패한 방법BFS(?) 방법으로 mines[x][y] = mines[x-1][y] + mines[x][y-1] - mines[x-1][y-1] + mineral[x][y] -> O(W*H)로 실패모든 포인트를 반복해서 넣어서 처리 -> O(N^2)로 실패 마지막은 투포인터 + set을 활용했다. import sysfrom collections import defaultdictinput = sys.stdin.readlinen, cash = map(int, input().split())x_gems = defaultdict(list) # x좌표에 있는 보석들y_gems = defaultdict(list) # y좌표에 있는 보석.. 2025. 3. 29. HTTP 정리 및 질문 리스트 (feat.RESTful) 1. HTTP 정리📌 주요 상태 코드 요약 정리표 상태 코드 의미사용예시200 OK성공일반적인 요청 성공201 Created리소스 생성됨POST로 새로운 리소스 생성204 No Content성공했지만 응답 본문 없음DELETE, PATCH 등 후에 본문 불필요할 때400 Bad Request클라이언트 요청 오류잘못된 파라미터, JSON 파싱 실패401 Unauthorized인증 실패로그인/토큰 없음, 만료403 Forbidden권한 없음로그인은 됐지만 권한 없음404 Not Found리소스 없음경로 또는 리소스 존재하지 않음405 Method Not Allowed메서드 허용 안됨GET만 지원하는 API에 POST 요청 등409 Conflict리소스 충돌중복 요청, 버전 충돌 등429 Too Many R.. 2025. 3. 22. 이펙티브 파이썬 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. 3. 21. 이전 1 2 3 4 ··· 10 다음