본문 바로가기

GPT10

로그 핸들러 추가 방법 먼저, 클래스 내부에서 로거를 생성하고 파일 핸들러를 추가하는 방법입니다. import logging class MyClass: def __init__(self): self.logger = logging.getLogger('MyClass') self.logger.setLevel(logging.DEBUG) log_file = 'my_class.log' file_handler = logging.FileHandler(log_file) file_handler.setLevel(logging.DEBUG) log_format = '%(asctime)s - %(levelname)s - %(message)s' date_format = '%Y-%m-%d %H:%M:%S' formatter = logging.Formatte.. 2023. 7. 20.
Log handler 파이썬의 logging 모듈은 다양한 로그 핸들러를 제공하여 로그를 다양한 대상으로 출력할 수 있습니다. 주요 로그 핸들러들과 각각의 역할에 대해 설명하겠습니다. StreamHandler (스트림 핸들러) 로그를 스트림으로 출력하는 핸들러입니다. 스트림은 콘솔(Console)과 같은 출력 장치를 의미합니다. 주로 개발 중에 로그를 확인하는 용도로 사용됩니다. logging.StreamHandler 클래스를 사용하여 생성하며, 기본적으로 콘솔에 로그를 출력합니다. FileHandler (파일 핸들러) 로그를 파일로 출력하는 핸들러입니다. 로그를 파일에 기록하여 보관하거나 분석하는 용도로 사용됩니다. logging.FileHandler 클래스를 사용하여 생성하며, 지정한 파일에 로그를 기록합니다. Rotat.. 2023. 7. 20.
파이썬 로그 설정 import logging # 로그 파일 경로 log_file = 'app.log' # 로그 포맷 설정 log_format = '%(asctime)s - %(levelname)s - %(message)s' date_format = '%Y-%m-%d %H:%M:%S' # 로그 레벨 설정 (DEBUG, INFO, WARNING, ERROR, CRITICAL) log_level = logging.DEBUG # 로거 설정 logging.basicConfig(filename=log_file, level=log_level, format=log_format, datefmt=date_format) # 로그 메시지 출력 logging.debug('This is a debug message.') logging.info('.. 2023. 7. 20.
Gitlab 모듈 설치 GitLab에 있는 모듈을 설치하는 방법은 크게 두 가지로 나눌 수 있습니다. 하나는 모듈을 패키지로 빌드하여 설치하는 방법이고, 다른 하나는 GitLab의 URL을 직접 지정하여 설치하는 방법입니다. 각각의 방법을 설명하겠습니다. 모듈을 패키지로 빌드하여 설치하는 방법 먼저, GitLab에 있는 모듈의 코드를 패키지로 빌드합니다. 빌드된 패키지를 pip를 사용하여 설치합니다. 이 방법은 GitLab에 있는 모듈을 pip로 직접 설치하는 방법과 유사합니다. 모듈의 코드를 패키지화하여 PyPI와 같은 저장소에 업로드한 뒤, pip를 사용하여 설치하는 방법과 동일합니다. 먼저, GitLab에 있는 모듈의 코드를 패키지화합니다. 이 작업은 setuptools와 wheel 라이브러리를 사용하여 수행할 수 있습니.. 2023. 7. 20.
Git을 이용한 파이썬 패키지 관리 Git 리포지토리 생성 먼저, Python 패키지들을 관리할 Git 리포지토리를 생성합니다. GitHub, GitLab, Bitbucket 등의 원격 Git 호스팅 서비스를 사용하거나, 로컬로 Git 저장소를 초기화하여 생성할 수 있습니다. 패키지 구조 설정 패키지를 만들기 위해 저장소에 패키지를 위한 디렉토리 구조를 설정합니다. 일반적으로 다음과 같은 구조를 사용합니다. your_package/ your_package/ __init__.py module1.py module2.py README.md setup.py 패키지 코드 작성 패키지의 기능을 구현할 모듈들을 작성하고, __init__.py 파일을 추가하여 패키지를 초기화합니다. setup.py 파일 작성 setup.py 파일은 패키지를 설치하고 관.. 2023. 7. 20.
Docker Docker는 컨테이너 기반 가상화 기술을 제공하는 오픈 소스 플랫폼입니다. 컨테이너는 애플리케이션과 해당 종속성(라이브러리, 설정 파일 등)을 격리된 환경으로 패키징하여 실행하는 방식을 의미합니다. 이를 통해 애플리케이션을 각각의 독립적인 환경에서 실행하고 배포할 수 있습니다. Docker의 주요 특징과 동작 방식에 대해 설명드리겠습니다. 컨테이너 기반 가상화 Docker는 컨테이너라는 단위로 애플리케이션과 해당 종속성들을 격리된 환경에 담습니다. 각 컨테이너는 호스트 시스템의 커널을 공유하며, 컨테이너 간에는 프로세스 격리를 통해 독립적으로 실행됩니다. 이를 통해 가볍고 빠르며, 여러 개의 컨테이너를 운영 체제에서 효율적으로 관리할 수 있습니다. 이미지 기반 배포 Docker는 컨테이너를 생성하는 기.. 2023. 7. 20.
객체 생성 시, 패러미터 검사 파이썬에서 객체를 생성할 때, 생성자(__init__ 메서드)의 파라미터 타입을 검사하여 타입이 일치하지 않는 경우 객체 생성을 막을 수 있습니다. 이를 위해 다음과 같은 방법을 활용할 수 있습니다. 타입 어노테이션(Type Annotation) 활용 파이썬 3.5 이상에서는 타입 어노테이션을 사용하여 파라미터의 타입을 명시할 수 있습니다. typing 모듈을 활용하여 타입을 정의하고, isinstance() 함수를 사용하여 타입을 확인할 수 있습니다. from typing import Optional class MyClass: def __init__(self, param1: str, param2: Optional[int]): if not isinstance(param1, str) or not isins.. 2023. 7. 20.
클래스 변수 선언 시 _와 __의 차이 파이썬에서 클래스 변수를 선언할 때 _ 한 개와 _ 두 개의 차이가 있습니다. _ 한 개 (단일 언더스코어): _variable과 같이 변수 이름 앞에 언더스코어 한 개를 붙여 선언합니다. 이는 변수를 "내부 변수" 또는 "보호 변수"로 표시하는 관례적인 표기 방법입니다. 클래스 내부에서는 사용되지만, 클래스 외부에서 접근할 때에는 해당 변수에 직접 접근하지 않는 것이 바람직합니다. 다른 개발자에게 해당 변수가 내부적으로 사용되는 것임을 알리고, 변수에 대한 직접 접근을 억제하는 역할을 합니다. 하지만 파이썬에서는 실제로 해당 변수에 대한 접근 제한이나 강제를 적용하지 않으므로, 관례적인 규칙으로써 사용됩니다. _ 두 개 (이중 언더스코어): __variable과 같이 변수 이름 앞에 언더스코어 두 개를.. 2023. 7. 19.
DTO DTO(Data Transfer Object) 클래스는 데이터 전송을 위한 객체로, 데이터를 보관하고 전송하는 데 사용됩니다. 일반적으로 속성(attribute)만을 가지며, getter와 setter 메서드를 제공합니다. 이를 통해 데이터의 캡슐화와 유효성 검사 등을 수행할 수 있습니다. 아래는 Python에서 DTO 클래스를 정의하는 예제입니다. Copy code class UserDTO: def __init__(self, username, email, age): self._username = username self._email = email self._age = age @property def username(self): return self._username @username.setter def.. 2023. 7. 19.