python-100

[파이썬 100강] 80강. functools.singledispatch로 타입별 처리 로직 깔끔하게 분기하기

실무에서 데이터를 처리하다 보면 같은 함수 이름으로 "문자열이면 이렇게", "딕셔너리면 저렇게" 처리해야 할 때가 자주 있습니다. 보통은 if isinstance(...) 분기를 길게 늘어뜨리는데, 케이스가 늘어날수록 함수가 비대해지고 수정도 위험해집니다. 이번 강의에서는 functools.singledispatch로…

[파이썬 100강] 79강. contextlib로 리소스 정리와 전처리-후처리 패턴 표준화하기

파일을 열고 닫거나, DB 세션을 시작하고 종료하거나, 임시 설정을 적용했다가 원복하는 코드는 거의 모든 서비스 코드에 반복해서 등장합니다. 문제는 이 패턴을 매번 try/finally로 직접 쓰다 보면 누락이 생기고, 예외가 났을 때 정리가 불완전해지기 쉽다는 점입니다. 이번 강의에서는 contextlib로 이런 전처…

[파이썬 100강] 78강. typing.Protocol로 유연한 인터페이스 계약 만들기

이번 강의에서는 추상 클래스처럼 무겁게 상속 구조를 만들지 않아도, “이 메서드가 있으면 같은 방식으로 쓸 수 있다”는 계약을 명확하게 잡는 typing.Protocol을 다룹니다. 서론은 여기까지 하고 바로 코드로 들어가겠습니다.

[파이썬 100강] 77강. typing.Literal과 TypedDict로 입력 스키마를 명확하게 고정하기

API 응답, 설정 파일, 메시지 큐 페이로드를 다루다 보면 “문자열 키는 맞는데 값 의미가 조금씩 다른” 문제가 반복됩니다. 이번 강의에서는 서론 길게 끌지 않고 바로 Literal, TypedDict로 입력 스키마를 코드에 고정하는 방법을 익혀 보겠습니다.

[파이썬 100강] 76강. enum으로 상태와 상수를 안전하게 관리하기

숫자 1, 문자열 "done", 대문자 상수 STATUS_OK = "ok"를 여기저기 흩어 쓰기 시작하면, 프로젝트가 커질수록 상태값 관리가 급격히 불안정해집니다. 이번 강의에서는 enum을 사용해 상태와 상수의 의미를 코드에 명확히 고정하는 방법을 바로 예제로 익힙니다.

[파이썬 100강] 75강. collections.abc로 컨테이너 인터페이스를 정확하게 설계하기

리스트처럼 보이지만 진짜 리스트는 아닌 객체, 딕셔너리처럼 쓰지만 내부 저장 방식이 다른 객체를 만들 때가 많습니다. 이때 “겉모양만 비슷한” 수준에서 끝내면 협업 중에 금방 깨집니다. 이번 강의에서는 collections.abc를 이용해 컨테이너가 지켜야 할 약속(인터페이스) 을 코드로 명시하는 방법을 바로 실습합니다.

[파이썬 100강] 74강. UserString으로 문자열 규칙을 안전하게 커스터마이징하기

문자열은 어디에나 있습니다. 사용자 아이디, 이메일, SKU, 로그 키, 캐시 키, URL 조각까지 전부 문자열이죠. 그래서 문자열 규칙을 느슨하게 두면 "어디선가 대문자, 어디선가 공백, 어디선가 한글 정규화 실패" 같은 문제가 쌓입니다. 이번 강의는 collections.UserString으로 문자열 자체에 규칙을…

[파이썬 100강] 73강. UserList로 리스트 규칙을 안전하게 커스터마이징하기

실무에서 리스트는 거의 모든 곳에 등장합니다. 그런데 "그냥 append 하면 된다" 수준으로 쓰다 보면 데이터 타입이 섞이거나, 중복이 누적되거나, 정렬 기준이 뒤섞여서 나중에 품질 문제가 터집니다. 이번 강의에서는 collections.UserList를 사용해 리스트 자체에 규칙을 내장하는 방법을 익힙니다. 서론은…

[파이썬 100강] 72강. UserDict로 딕셔너리 규칙을 안전하게 커스터마이징하기

실무에서는 "딕셔너리처럼 쓰되, 아무 키나 받으면 안 되는" 상황이 자주 나옵니다. 예를 들어 설정값 저장소는 키를 소문자로 통일하고 싶고, API 응답 캐시는 만료 시간을 자동으로 확인하고 싶고, 사용자 입력 매핑은 값 타입을 강제하고 싶습니다. 이런 요구를 일반 dict 위에 여기저기 if 문으로 붙이기 시작하면 코…

[파이썬 100강] 71강. OrderedDict로 순서가 중요한 매핑 로직 안정화하기

딕셔너리는 Python 3.7+부터 입력 순서를 유지하지만, 순서를 "조작"하는 기능까지 자동으로 주지는 않습니다. 이번 강의에서는 collections.OrderedDict를 이용해 LRU 같은 순서 기반 로직을 안전하게 구현하는 방법을 바로 실습합니다.