본문 바로가기

728x90
반응형

Development

(302)
파이썬 Test Case 작성시 init 과 import.... 파이썬에서 다른 서비스를 import 해서 쓰는 경우와 init 에 정의해서 쓰는 경우가 있다. 이 두가지 경우에 다른 서비스를 mocking 하는 경우 차이가 생긴다.1. __init__에서 서비스를 정의하는 경우 (Dependency Injection) - 서비스 객체를 클래스 외부에서 생성하고, 인스턴스 생성 시 __init__을 통해 주입한다.- 테스트에서 의존성을 쉽게 교체할 수 있다.- Mocking이 간단하며, 클래스 내에서 서비스가 직접 호출되더라도 Mock을 주입할 수 있다.# app/services.pyclass DependencyService: def get_data(self): return {"key": "real_value"}class MyService: d..
Python 웹 스크래핑 하기2 2024.08.20 - [Development/Python] - Python 웹 스크래핑 하기 Python 웹 스크래핑 하기2~3주에 한번씩 책을 20권 이상 빌리다 보니 이미 빌린 책인지 아닌지 확인해야 할 일들이 생겼다. 일반 도서는 상관이 없었는데 잡지 같은 경우 구분하기가 상당히 불편했다. 이유는 대여 목록해blusky10.tistory.com 기존 글에 이어서 웹 스크래핑 한 정보를 다시 한번 더 가공해보려고 한다. 우선 먼저 글에서는 스크래핑을 통해서 url 을 추출했다. 이번에는 추출한 url 웹페이지에 있는 정보를 가져와보려고 한다. def get_book_info_from_url(url:str) : detail_response = requests.get(u..
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate OpenAPI 사용하다가 SSL 에러가 발생했다. 구글링을 해서 찾은 방법들을 몇가지 적용해봐도 해결되지는 않았다. 내용들 중에 결론은 request 를 사용시 verify 를 False 로 해야 한다는 것이었다. 그래서 에러 로그를 다시 봤다. Traceback (most recent call last): File "c:\workspace\.venv\Lib\site-packages\httpx\_transports\default.py", line 69, in map_httpcore_exceptions yield File "c:\workspace\.venv\Lib\site-packages\httpx\_transports\default.py", line 233, in handle_request ..
Python 웹 스크래핑 하기 2~3주에 한번씩 책을 20권 이상 빌리다 보니 이미 빌린 책인지 아닌지 확인해야 할 일들이 생겼다. 일반 도서는 상관이 없었는데 잡지 같은 경우 구분하기가 상당히 불편했다. 이유는 대여 목록해 잡지의 정보가 제목만 나왔기 때문이다. 이 잡지가 몇월호인지 확인 해보려면 대출 목록에 들어가서 상세 내용을 확인해봐야만 했다. 그게 귀찮아서 내가 빌린 책을 손쉽게 검색 해보자는 취지에서 웹 스크래핑을 해봤다.아래 코드는 대출 목록페이지에 있는 화면에서 링크를 가져오는 코드이다. def get_file_list_from_site(data_url: str, cookies: dict): # 세션 객체 생성 session = requests.Session() # 인증된 세션으로 데이터 요청 re..
[Python] Blob Storage 에 Connection String 으로 연결하기 2024.07.12 - [Development/Cloud] - [Azure] Storage 생성 및 권한 연결Azure Blob Stroage 에 접근하기 위한 두번째로는 엑세스 키로 접근하는 방법이 있다. 이 방법은 먼저 설명한 방법보다는 간단하다. 스토리지 계정에 들어가보면 보안 + 네트워킹 메뉴에 액세스 키 라는 메뉴가 있다.화면에 보이는 연결 문자열의 값을 가지고 BlobServiceClient 를 생성할 수 있다.connection_string = ""blob_service_client = BlobServiceClient.from_connection_string(connection_string)container_client = blob_service_client.get_container_clie..
[Azure] Storage 생성 및 권한 연결 이번에  Azure 의 Storage 를 연결해볼 일이 있어서 실제 생성하고 권한 연결했던 내용들을 정리해 보고자 한다. 도큐먼트가 잘 되어있긴 하지만 GCP나 AWS 에서 사용하던 절차와 달라서(특히 용어가..) 많이 헷갈렸다. 최종 목표는 파이썬 코드로 Azure 에 파일을 업로드 하고 다운로드, 목록 을 가져오는 코드를 만들기 위함이다. 1. 스토리지 계정 생성Azure 에서 우선 스토리지 계정을 생성을 해야 한다. GCP 나 AWS 에서는 바로  Storage 를 생성했던것 같은데 이부분에서 좀 차이가 있었다. 계정 생성시 기억해야 할 항목은 리소스 그룹 이름이다. 마지막에 역할 할당시 다시 나온다. 기본 정보들만 입력을 하고 검토+만들기 버튼을 클릭한다. 검토가 끝나면 만들기 버튼이 나오는데 그..
python 으로 Azure blob storage 연결 Azure 의 Blob Storage 에 파일을 업로드 하고 목록을 조회하는 코드를 작성해자. 만약 Azure 의 설정관련 내용을 보고 싶다면 다음 글을 참고하면 된다.2024.07.12 - [Development/Cloud] - [Azure] Storage 생성 및 권한 연결import osfrom unittest import TestCasefrom azure.identity import DefaultAzureCredentialfrom azure.storage.blob import BlobServiceClientos.environ["AZURE_CLIENT_ID"] = ''os.environ["AZURE_TENANT_ID"] = ''os.environ["AZURE_CLIENT_SECRET"] = ''cl..
poetry 설정 및 패키지 추가 1. Poetry 설치 후 환경 변수 추가각각 환경에 따라 다음 내용을 환경 변수에 추가해준다. (참고 : https://python-poetry.org/docs/#installing-with-the-official-installer)$HOME/.local/bin on Unix.%APPDATA%\Python\Scripts on Windows.$POETRY_HOME/bin if $POETRY_HOME is set.또는~/Library/Application Support/pypoetry/venv/bin/poetry on MacOS.~/.local/share/pypoetry/venv/bin/poetry on Linux/Unix.%APPDATA%\pypoetry\venv\Scripts\poetry on Wind..
파이썬 requests 의 multipart/form-data 활용 FastAPI 로 아래와 같이 코드를 작성 했다.@router.post( "/v1/file", name="Upload File",)def upload_file( name: Annotated[str, Form()], language: Annotated[str, Form()], file: Annotated[UploadFile, Form()]):그리고 이 API 를 호출 하기위해 Test 코드를 작성했는데 아래와 같이 작성을 했다.def test_file_upload(self): file: UploadFile = open("./테스트.txt", "rb") # curl 명령에 필요한 헤더 설정 headers = { "token": "XXXXXXXX", "..
파이썬 문법 - 클래스 정의 (ABCMeta, object) ABCMetaPython에서 클래스를 정의할 때, metaclass=ABCMeta 옵션을 사용하면 해당 클래스를 추상 클래스(abstract class)로 만들 수 있다. 추상 클래스는 일반 클래스와 달리 인스턴스화 될 수 없고, 추상 메서드만을 가질 수 있다.추상 클래스는 ABCMeta라는 내장 클래스를 사용하여 구현된다. ABCMeta는 Python 표준 라이브러리의 abc 모듈에 포함되어 있으며, 추상 클래스 및 추상 메서드를 지원하기 위한 메터 클래스이다. from abc import ABCMeta, abstractmethodclass MyAbstractClass(metaclass=ABCMeta): @abstractmethod def my_abstract_method(self): ..

728x90
반응형