분류 전체보기
-
[Python] Pytest Fixtures에 대한 가이드Python/Python 2024. 7. 2. 15:51
일단 해당글은 https://betterstack.com/community/guides/testing/pytest-fixtures-guide/를 읽고 나름 정리한 내용을 바탕으로 정리하는 것 에 목적이 있슴ㅁ_ㅁ A Complete Guide to Pytest Fixtures | Better Stack CommunityLearn how to use Pytest fixtures for writing maintainable and isolated tests.betterstack.com단위 테스트는 소프트웨어 품질에 필수적이지만 반복적인 설정과 데이터 복제로 인해 이를 번거롭게 만들 수 있다. Pytest픽스처는 이러한 문제에 대한 솔루션을 제공함. Pytest Fixtures란?일반적 테스트 설정을 캡슐화하..
-
[Python]: 다중상속과 메서드 결정 순서 MRO(Method Resolution Order)Python/Python 2024. 6. 27. 14:30
다중상속이 무엇인가Python에서 다중 상속은 하나의 클래스가 둘 이상의 부모 클래스로부터 속성과 메서드를 상속받는 기능을 의미합니다. 다중 상속은 매우 유용하지만, 복잡성을 증가시키기 때문에 신중하게 사용해야 합니다. Python의 다중 상속에서 주의해야 할 주요 특징과 개념은 다음과 같습니다. MRO( Method Resolution Order )는 무엇인가?MRO는 다중 상속 시 메서드나 속성을 검색하는 순서를 결정하는 규칙입니다.파이썬은 MRO는 C3 슈퍼클래스 선형화(C3 linearization)에 기반한다. C3 선형화 메서드로 변경하기 이전에는 하나의 클래스가 두 개의 조상을 가졋을 경우, 다중 상속을 계단식으로 사용하지 않는 단순한 경우만 고려했기에 계산과 추적이 매우 쉬웠따~. MRO가..
-
[Python] 파이썬 개발모드 devPython/Python 2024. 6. 25. 22:27
파이썬 3.7부터 전용 개발모드(development mode)에서 파이썬 인터프리터를 호출해 추가적인 런타임을 체크할 수 있다.이 코드를 실행했을 때 발생할 수 있는 잠재적인 이슈를 분석하는 데 유용하다. 올바르게 동작하는 코드에서 이를 적용하는 비용은 매우 높기 때문에 기본적으로 비활성화 되어 있다.두 가지 방법으로 활성화 가능.python -x dev application.pyPYTHONDEVMODE 환경 변수 이용PYTHONDEVMODE = 1 application기본 경고 필터 종류DeprecationWarning(종료 경고): 지원이 종료된 표준 라이브러리 요소ImportWarning(임포트 경고): 모듈 임포트 시 실수와 관련해서 발생PendingDeprecationWarning(종료 예정 ..
-
[Python] ChainMapPython/Python 2024. 6. 25. 17:15
ChainMap은 여러 개의 딕셔너리를 하나의 논리적인 뷰로 결합할 때 사용되는 유용한 도구다 기능적인 관점에서 두 딕셔너리를 병합하는 객체를 만드는 방법은 ChaiMap클래스를 방법이있다.새로운 딕셔너리를 만들고 여러 Update를 호출하는 것 보다 ChainMap 함수를 사용할 때가 더 빠르다. 작동 예시from collections import ChainMapuser_account = {"iban": "GB71BARC200231", "type": "account"}user_profile = {"display_name": "John Doe", "type": "profile"}user = ChainMap(user_account, user_profile)>>> user['iban']'GB71BARC200..
-
Gitlab 도커 구동PMS/Gitlab 2024. 6. 25. 16:05
gitlab 자체는 도커에 공식적으로 이미지를 지원한다[ https://hub.docker.com/r/gitlab/gitlab-ce ]Cli docker pull gitlab/gitlab-ce:15.4.2-ce.0 # 이미지를당겨온다.export GITLAB_HOME=/srv/gitlab # 환경변수 등록docker run --detach \--hostname gitlab.example.com \--publish 443:443 --publish 80:80 --publish 22:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--vo..
-
[Python] watchdog 액티브리로딩 프레임워크Python 2024. 6. 25. 15:38
액티브 프레임워크란 무엇인가?> 액티브리로드란 코드가 변경되었음을 인식하는프레임워크다. 이를 통해 우리는 어플리케이션을 별도로 개발했을 때 자동으로 리로드 되는 편리함을 가지고 있다.액티브 프레임워크가 무엇인지를 떠나서 기본적으로 다들 보통일반적인 프레임워크들을 많이 사용 했을 것이다 [장고,플라스크 등등)왜 사용하는가?> 해당 기법을 사용하지 않으면 변경할 때 마다 프로그램을 껏다 켜줘야하는 귀찮은 상황이 발생한다. 사용법)- install$ pip install watchdog직접 코드상에 설정하여 감시.import sysimport timeimport loggingfrom watchdog.observers import Observerfrom watchdog.events import LoggingE..
-
CI/CD (1) Test(FastAPI/Gitlab)이것저것 2024. 2. 13. 15:37
프로잭트 생성 / 예제 코드 적용 Dockerfile 구성 FROM python:3.9-slim # Set environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # Set the working directory in the container WORKDIR /app # Copy the current directory contents into the container at /app COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Make port 80 av..
-
[gitlab-runner] ERROR: error during connect: Get "http://docker:2375/v1.24/info": dial tcp: lookup docker on 192.168.1.1:53: no such host이것저것 2024. 2. 13. 14:41
Server: ERROR: error during connect: Get "http://docker:2375/v1.24/info": dial tcp: lookup docker on 192.168.1.1:53: no such host errors pretty printing info Cleaning up project directory and file based variables 대충 이런 에러가 나는데 /etc/gitlab-runner/config.toml를 [[runners]] id = 0 token = "glrt-iwxLr-7Nszw7kLHTJPcn" token_obtained_at = 0001-01-01T00:00:00Z token_expires_at = 0001-01-01T00:00:00Z exe..