본문 바로가기

Python

(29)
Python - Pydantic Pydantic 이란? pydantic은 Python의 Type Annotations을 활용하여 데이터 유효성을 검사 하는 라이브러리입니다. 데이터 모델링: pydantic을 사용하면 데이터 모델을 정의할 수 있습니다. 이 모델은 데이터의 구조, 유형, 제약 조건 등을 정의합니다. 데이터 유효성 검사: pydantic은 정의된 모델에 따라 데이터의 유효성을 자동으로 검사합니다. 잘못된 유형의 데이터나 제약 조건을 위반하는 경우 예외를 발생시킵니다. 데이터 변환: pydantic은 데이터 유형 간 자동 변환을 지원합니다. 예를 들어 문자열을 날짜 객체로 변환하거나 JSON 데이터를 Python 객체로 변환할 수 있습니다. JSON 지원: pydantic은 JSON 데이터를 Python 객체로, Python..
Python - typing Python에서 타입 힌트를 구성하고 사용하면 코드의 가독성과 유지 관리성이 크게 향상될 수 있습니다. 또한 자동 완성 및 정적 분석과 같은 작업에 대한 더 나은 도구 지원을 용이하게 할 수 있습니다. 타입 힌트는 변수, 함수의 매개변수, 반환 값 등에 대한 타입 정보를 명시적으로 선언하는 것입니다. 타입 힌트은 Python 인터프리터에 의해 강제되지 않기 때문에 실행 시점에는 무시됩니다. 타입 힌팅은 주로 코드 가독성, IDE 지원, 정적 분석을 위한 용도입니다. 기본 타입 정수, 문자열, 부동 소수점 및 부울과 같은 기본 유형의 경우 변수 및 함수 반환 유형에 타입 정보를 명시적으로 선언 # 변수에 타입 힌트 추가 name: str = "Python" age: int = 30 is_student: b..
Python - Parameter(매개변수)와 Argument(인자) Parameter와 Argument의 차이 Parameter(매개변수) 함수에 전달되는 값을 받아들이는 변수 def add(a, b): return a + b Argument(인자) 함수를 호출할 때 전달되는 값 result = add(3, 5)
Python - 패킹(Packing), 언패킹(Unpacking) 패킹(Packing) 여러 개의 값을 하나의 자료구조(리스트, 튜플 등)로 묶는 것을 의미. ### 리스트 패킹 # 3개의 값을 리스트에 담아 my_list라는 변수에 할당 my_list = [1, 2, 3] ### 딕셔너리 패킹 # 3개의 값을 딕셔너리에 담아 my_dict라는 변수에 할당 my_dict = {'a': 1, 'b': 2, 'c': 3} ### 튜플 패킹 # 3개의 값을 튜플에 담아 my_tuple이라는 변수에 할당 my_tuple = (1, 2, 3) # 튜플을 () 생략하고 사용 가능 my_tuple = 1, 2, 3 print(my_tuple) # (1, 2, 3) 아래 코드는? a, b, c = 1, 2, 3 # 패킹? # (a, b, c) = (1, 2, 3) # 언패킹? pri..
Python - 프로그램 환경 설정값 관리와 로깅 적용 파이썬 프로그램의 환경 설정값(DB 접속 정보, Logging 설정 등)을 관리하고 로깅을 적용하기 YAML 파일을 사용하여 프로그램 환경 설정값을 관리 환경 설정 값은 한번만 읽어오기 환경 설정 값을 이용 하여 Logging 설정, DB 접속 하기 로깅의 핸들러와 포매터는 한번만 설정하기 모듈 별로 logger를 생성 하고 하나의 파일에 로그를 기록하기 파일 구조 . ├─ app_init.py # 프로그램 최초 환경 설정(로깅 설정) ├─ config.py # 환경 설정값 로드 ├─ config.yaml # 환경 설정값 ├─ main.py # 메인 프로그램 ├─ db | └── connect_db.py # 데이터베이스 연결 ├─ logs | └── app.log # 로그 파일 └─ service ├──..
Python - Python에서 YAML 사용하기 YAML이란? YAML(YAML Ain't Markup Language)은 가독성이 좋고, 계층 구조를 표현하기 쉬우며, 코드 생성이 용이합니다. YAML은 설정 파일, 로그 파일, 데이터 교환 등 다양한 분야에서 활용됩니다. 구성 요소 및 문법 스칼라 값(scalar)은 문자열, 숫자, 불린 등의 단일 값을 의미합니다. 시퀀스(sequence)는 순서가 있는 값의 목록을 나타냅니다. 매핑(mapping)은 키-값 쌍으로 이루어진 데이터 구조입니다. 주석은 # 기호로 시작합니다. 앵커(&)와 별칭(*)을 사용하여 중복 데이터를 재사용할 수 있습니다. JSON과의 비교 항목 설명 가독성 YAML은 사람이 읽고 쓰기 쉽도록 설계되었으며, JSON보다 더 자연스러운 언어 구조를 가지고 있습니다 주석 YAML은..
Python - Logging - 2 (로깅 적용) Flask에 로깅 적용 Flask에는 기본적으로 로깅이 설정되어 있습니다. logging를 import 하지 않고 app.logger로 사용할 수 있습니다. # pip install flask from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): app.logger.info('Root endpoint was called') return 'Hello, World!' if __name__ == '__main__': # 로깅 레벨을 DEBUG로 설정하여 앱을 시작합니다. app.logger.setLevel('DEBUG') app.run(debug=True) http://127.0.0.1:5000/에 접속하면 Consol..
Python - Logging - 1 (로깅 기본) 로깅(Logging)이란? 로깅(Logging)은 애플리케이션이나 시스템의 실행 중에 발생하는 이벤트나 메시지를 기록하는 과정 디버깅, 모니터링, 문제 해결, 감사 목적 등으로 사용 애플리케이션의 실행 상태를 추적하고 오류 발생 시 원인 분석 로그를 통해 시스템의 활동을 기록하고 모니터링 로그는 개발 단계뿐만 아니라 운영 환경에서도 매우 중요한 역할 로깅 레벨(Level)의 이해 로깅 레벨은 로그 메시지의 심각성이나 중요도를 나타내는 수준입니다. 일반적인 로깅 레벨 로깅 레벨 내용 DEBUG 개발 시 디버깅을 위해 정보 기록 INFO 프로그램 실행 과정에서 발생하는 정보 기록 WARNING 발생 가능한 문제 상황에 대한 경고 메시지 기록 ERROR 에러 발생 시 에러 정보 기록 CRITICAL 치명적인 ..