나는 이렇게 학습한다 573

Pydantic 의 Datetime 타입으로 날짜와 시간을 다뤄보자

Pydantic 의 네 가지 Datetime 타입 Pydantic은 데이터 유효성 검사와 데이터 클래스 설정을 간결하게 만들어주는 Python 라이브러리다. Pydantic에서는 날짜와 시간을 다루는 특별한 타입이 있는데, AwareDatetime, NaiveDatetime, PastDatetime, FutureDatetime이 바로 그것이다. 이 글을 통해 각각의 타입이 어떻게 동작하고 언제 사용되는지 확인해보자. AwareDatetime AwareDatetime은 시간대(timezone) 정보가 포함된 datetime 객체를 의미한다. 세계 각지의 시간대를 일관성 있게 처리해야 할 때 유용하게 쓸 수 있다. 사용 예시 from pydantic import BaseModel from datetime i..

Python _ setup.py 의 역할과 사용법

setup.py는 파이썬 프로젝트 및 패키지의 빌드, 패키징 및 배포를 관리하는 스크립트 파일이다. 이 파일은 주로 setuptools 및 distutils 라이브러리를 사용하여 파이썬 패키지 정보와 설정을 정의한다. setup.py의 주요 역할 패키지 정보 정의: 패키지의 이름, 버전, 저자, 라이선스 등의 메타데이터를 정의 의존성 관리: 패키지의 작동을 위해 필요한 다른 파이썬 패키지들을 명시 빌드 및 배포 명령 제공: python setup.py install, python setup.py sdist 등의 명령어로 패키지를 빌드하거나 설치 엔트리 포인트 지정: 특정 스크립트나 함수를 명령어로 실행할 수 있게 설정 setup.py 예시 from setuptools import setup, find_p..

Mermaid 로 30초 만에 다이어그램을 그려보자!

Mermaid 란?다이어그램을 그릴 때, 일반적으로 마우스로 그리는 GUI 기반의 툴을 사용했을 것이다. Mermaid 는 GUI 기반 툴과 달리 사용자가 직접 코드를 입력하여 다이어그램을 그리는 툴이다. (코드로 다이어그램을 그린다고? 개발자로서 이건 못 참지..!) 코드로 다이어그램을 그린다고 하니 어렵게 느껴질 수도 있겠지만.. 놀라지 마시라, 여러분이 mermaid 코드에 대해 아무것도 몰라도 지금 당장 다이어그램을 그릴 수 있다! (우리에겐 챗지피티가 있으니까🤭) 아래는 노션과 챗지피티를 활용하여 30초 만에 인물관계 다이어그램을 그리는 영상이다. Mermaid 빠르게 시작하기앞서 영상과 동일한 예제로, 5명의 인물 관계를 다이어그램으로 그려보겠다. - 철수: 철수는 영희와 스터디 그룹을 만들..

Python _ Decimal 모듈로 부동 소수점 문제 해결하기

Decimal 이란? Decimal은 '부동 소수점 문제'를 해결하고 소수점을 정확하게 표현하기 위해 사용하는 Python 자료형이다. 컴퓨터에서는 소수를 이진수로 표현하다 보니, 0.1과 같은 값이 정확하게 표현되지 않을 수 있다. 이러한 문제 때문에 금융, 회계 등 정확한 계산이 필요한 경우에는 Decimal을 사용해야 한다. 예를 들어, 파이썬에서 소수형을 그대로 사용하면 다음과 같은 부동 소수점 문제가 발생할 수 있다. value = 0.1 + 0.2 print(value) # 출력: 0.30000000000000004 하지만 아래처럼 Decimal 모듈을 사용하면 이런 문제를 피할 수 있다. from decimal import Decimal value = Decimal('0.1') + Decim..

JavaScript _ 콜백 함수를 알아보자

들어가며 자바스크립트에서 비동기 프로그래밍의 기초 개념 중 하나인 콜백 함수에 대해 알아보자. 본 글에서는 콜백 함수의 개념부터 동기 콜백과 비동기 콜백의 차이, 콜백 지옥과 한계, 그리고 콜백 함수 작성 팁까지 다루겠다. 또한 콜백 함수의 대안으로 선호되는 프로미스와 async/await에 대해서도 간략하게 소개하겠다. 콜백 함수란? 콜백 함수란 다른 함수에 인자로 전달되어, 어떤 작업이 완료된 후에 실행되는 함수이다. 콜백 함수는 자바스크립트에서 흔히 사용되는 패턴으로, 특히 비동기 작업을 처리할 때 유용하다. 비동기 작업이란, 작업의 실행과 완료 시점이 일치하지 않는 작업을 말하는데, 예를 들어 서버에서 데이터를 가져오는 작업이나 타이머를 사용한 작업 등이 비동기로 이루어질 수 있다. 콜백 함수의 ..

SQLAlchemy _ ForeignKey 로 연결된 개체 한 번에 삭제하기

SQLAlchemy에서는 cascading 옵션을 활용하여 관계된 개체(Entity)를 한 번에 삭제할 수 있다. 방법 1. 부모 relationship 에서 cascade 매개변수 지정 두 테이블 간의 관계를 정의할 때, 상위 개체와 하위 개체가 함께 삭제되도록 cascade 매개변수를 지정할 수 있다. from sqlalchemy import Column, Integer, ForeignKey from sqlalchemy.orm import relationship class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) children = relationship('Child', cascade='delete') ..

SQLAlchemy _ ForeignKey 필드에 name 을 넣어주어야 Alembic 이 downgrade 해줌

한 줄 요약 *ForeignKey 필드에 name을 넣어주어야 *Alembic 이 *downgrade 해줌. *ForeignKey 필드는 다른 테이블의 기본 키를 참조하는 테이블 필드를 의미함 *Alembic은 Python용 데이터베이스 마이그레이션 도구임 *downgrade는 이전 version으로 되돌리는 것을 의미함 문제상황 부모 record 를 지우면 자식 record 도 지워지도록, 자식 parent_id 필드에 ondelete="CASCADE" 옵션을 추가했다. class Child(Base): __tablename__ = "child" id = sa.Column(UUID(as_uuid=True), primary_key=True) parent_id = sa.Column( UUID(as_uuid..