파이썬
[Python] Pydantic BaseModel: 데이터 검증을 쉽게 하자
[Python] Pydantic BaseModel: 데이터 검증을 쉽게 하자
2025.01.11Pydantic의 BaseModel은 Python 데이터의 유효성을 검사하고 관리하기 위한 강력한 도구입니다. JSON 데이터를 파이썬 객체로 변환하거나, API 요청/응답을 검증할 때 특히 유용합니다. 간단한 클래스 정의만으로 복잡한 데이터 검증 로직을 구현할 수 있어요.BaseModel이 필요한 이유기존에는 데이터 검증을 이렇게 했습니다.def validate_user(data: dict): if "name" not in data: raise ValueError("이름이 필요합니다") if not isinstance(data["name"], str): raise ValueError("이름은 문자열이어야 합니다") if "age" in data and not i..
[Python] 제너레이터 (Generator)
[Python] 제너레이터 (Generator)
2024.11.18Python에서 제너레이터(Generator)는 큰 데이터를 메모리에 효율적으로 처리할 수 있게 도와주는 특별한 이터레이터입니다. 일반적인 함수와 달리, 제너레이터는 값을 한 번에 하나씩 반환하고, 매번 호출될 때 이전 상태를 기억합니다. 제너레이터는 yield 키워드를 사용하여 값을 반환하며, return을 사용하면 더 이상 값을 생성하지 않고 종료됩니다제너레이터의 특징메모리 효율성: 제너레이터는 값을 필요할 때마다 하나씩 생성하므로, 큰 데이터를 처리할 때 메모리를 아낄 수 있습니다.Lazy Evaluation(지연 평가): 모든 값을 한꺼번에 생성하지 않고, 요청할 때마다 값을 생성하여 반환합니다.상태 유지: yield 키워드 덕분에 함수의 상태가 유지되며, 중단된 위치에서 다시 시작할 수 있습니다..
[Python] 정규 표현식 (Regex)
[Python] 정규 표현식 (Regex)
2024.11.12정규 표현식(Regex, Regular Expression)은 문자열에서 특정 패턴을 찾고, 추출하거나, 치환할 때 사용하는 방법입니다. Python에서는 re 모듈을 통해 정규 표현식을 사용할 수 있습니다. 정규 표현식은 다양한 패턴을 통해 복잡한 문자열을 다룰 수 있어, 데이터 처리, 텍스트 분석, 웹 크롤링 등에 자주 활용됩니다.기본적인 정규 표현식 패턴정규 표현식에는 다양한 패턴이 있으며, 기본적인 패턴은 다음과 같습니다:. : 줄 바꿈 문자를 제외한 모든 문자 하나와 일치^ : 문자열의 시작을 의미$ : 문자열의 끝을 의미* : 앞의 문자가 0번 이상 반복됨을 의미+ : 앞의 문자가 1번 이상 반복됨을 의미? : 앞의 문자가 0번 또는 1번 나타남을 의미{n} : 정확히 n번 반복되는 패턴{n,..
[Python] 코드를 한 줄로 줄이는 방법: 내포 표현식과 One-liners
[Python] 코드를 한 줄로 줄이는 방법: 내포 표현식과 One-liners
2024.11.111. 리스트 내포 (List Comprehension)리스트 내포는 조건에 따라 요소를 필터링하거나 변환하여 새로운 리스트를 만들 수 있습니다. 예를 들어, 0부터 9까지의 숫자 중 짝수만 제곱한 리스트를 생성하려면 다음과 같이 작성할 수 있습니다.squares = [x**2 for x in range(10) if x % 2 == 0]print(squares) # [0, 4, 16, 36, 64]2. 딕셔너리 내포 (Dictionary Comprehension)딕셔너리 내포를 사용하면 키-값 쌍을 조건에 맞게 필터링하여 새로운 딕셔너리를 생성할 수 있습니다. 예를 들어, 0부터 4까지의 숫자와 그 제곱을 키-값으로 하는 딕셔너리는 다음과 같이 만들 수 있습니다.squares_dict = {x: x**2..