Python/Utils 18

[Naver Map] 요구사항 별 사용 API 및 기능 정리 등

나중에 네이버 맵 (Naver Map) 관련 API 사용이나 정보가 필요시 때를 위한 정리 주소 정보 검색 으로 위경도 얻기기능 개요 지번, 도로명를 질의어로 사용해서 주소 정보를 검색 검색 결과 주소 목록 및 세부 정보 (위경도 좌표 포함) 네이버 API 문서 (링크)  사용법네이버 클라우드 콘솔에서 application 생성하고 client id (X-NCP-APIGW-API-KEY-ID) 얻기해당 정보를 querystring에 사용요청 URL 예시) GET https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode-js?X-NCP-APIGW-API-KEY-ID=&query=색어: 논현동 15-1>응답으로 주소 정보 및 위경도 좌표 반환 네이버 맵 U..

Python/Utils 2024.07.27

[Utils] Python 메모리 프로파일러 (memory_profiler)

배경특정 API를 호출시 계속 서버의 메모리가 폭증하는 현상 발생-> loop 혹은 DB 데이터가 Python 메모리로 불러오는 과정에서 문제가 있을 것으로 생각하고 프로파일링을 통해 원인을 찾아 보기로 하였다. 결과적으로 API에서 비효율적으로 파이썬 메모리를 사용하는 로직을 찾아 수정하여서 해결하였다. memory_profiler  외부 패키지 라이브러리메모리를 개괄적으로 프로파일링 할 수 있는 외부 패키지 라이브러리docs 링크 : https://pypi.org/project/memory-profiler/ memoy-profilerA module for monitoring memory usage of a python programpypi.org 패키지 설치pip install memory_profi..

Python/Utils 2024.05.05

[Utils] 파이썬 반올림 구현 (ft. 사사오입, round 함수 )

반올림 종류 파이썬 round() 반올림 함수는 기본적으로 오사오입의 방식을 따른다. 반올림 종류 사사오입 (Rounding half up) : 4 이하 버림, 5 이상 올림 오사오입 (Rounding half to even) : 5 미만 버림, 5 초과 올림 / 5는 앞자리가 홀수인 경우 올림, 짝수인 경우 버림 => 수를 짝수로 만들어 주는 방식 ex) 35 -> 40 / 25 -> 20 / python의 round() 함수 오사육입 (Rounding half down) : 5 이하 버림, 5 초과 올림 관련 링크 반올림 위키 : https://ko.wikipedia.org/wiki/%EB%B0%98%EC%98%AC%EB%A6%BC python3 round() 함수 링크 : https://docs...

Python/Utils 2024.04.21

[Utils] Custom Pre-commit hook 구현

Custom Pre-commit Hook 구현하기 👉 사용 사례 - API 문서 배포시 자동으로 error 코드가 적힌 html 문서가 같이 만들어 지도록 hook 에 추가 - hook은 (.py) 파일 구현 👉 구현 방법 - repo : local 값 - id와 name 설정 및 entry 로 .py 실행 - language : python 설정 # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: # make error code html - repo: local hooks: - id: make-error-enum-html name: make-error-en..

Python/Utils 2023.06.24

[Python] Datetime 이해 - aware, naive, datetime, timezone 등

Datetime 패키지 이해하기 Python에서 기본적으로 제공하는 Datetime 패키지에 대해 이해해 본다. - Datetime 모듈은 date와 time에 대한 조작을 위해 사용된다. Datetime 모듈 예시 1. naive vs aware - 해당 패키지에서 사용되는 날짜/시간 객체는 timezone 포함 여부에 따라 naive와 aware로 구분된다. - naive : tzinfo 정보를 포함하지 않는 날짜, 시간 객체 - aware : tzinfo, DST(daylight saving time) 정보를 포함한 날짜, 시간 객체 - 활용 1) 들어오는 datetime 값 (aware인지 naive인지)에 대한 형태 정의 - 활용 2) tzinfo 체크 및 시간대 변경 - 활용 3) tzinfo..

Python/Utils 2023.05.29

[Python Utils] 코드 컨벤션 템플릿 셋팅 (pre-commit, black, pycharm)

협업 간 코드 스타일/컨벤션을 맞추기 위해 다음과 같은 간단한 Code Formatter를 설정하였다. 목표 기능 1. git에 코드 push시 자동으로 formatting 체크 및 변경 2. 평소 IDE에서 코드 작성 후 저장시 자동으로 formatting 변경 사용 Tool - pre-commit-hook (pip install pre-commit-hooks) - Black (pip install black) - Pycharm (IDE) 1. pre-commit-hook.yaml 파일 - black을 hook으로 등록 (추가적으로 .flake8, isort 등 등록 가능) # See https://pre-commit.com for more information # See https://pre-comm..

Python/Utils 2023.05.29

[Pytest] 4. Pytest with Django (Feat. pytest-Django)

pytest-django 설치 Django 프레임워크에서 Pytest를 진행 하기 위해선 pytest-django 패키지 설치가 필요하다. $ pip install pytest-django https://pytest-django.readthedocs.io/en/latest/ pytest-django Documentation — pytest-django documentation © Copyright 2022, Andreas Pelme and contributors. Revision 1f3708ab. pytest-django.readthedocs.io django 셋팅 1. Django 프로젝트 생성 2. Django APP 생성 3. Settings.py에 DB 정보 및 APP 등록 (만약에 DOT_ENV..

Python/Utils 2022.11.06

[Pytest] 3. Pytest 문법 (Feat. fixture, parametize)

Basic pytest 기본 사용법 # test1.py import pytest def func(x): return x + 1 def test_add(): assert func(4) == 4 $ pytest test1.py Fixture Fixture란 Testing 을 하기 위해 공통적으로 필요한 자원을 사전에 준비해놓는 방법 (1) square_10이란 함수를 Fixture로 준비. (테스트 간 매반 호출됨) # 함수를 fixture로 @pytest.fixture def square_10(): return 10 * 10 def test_square(square_10): assert square_10 == 100 # 121 (2) square_10이란 함수를 Fixture로 미리 준비 및 활용 @pyt..

Python/Utils 2022.11.06

[Pytest] 2. Pytest 명령어 옵션 (command)

Pytest 명령어 옵션 1. 해당 디렉토리 내 모든 test_.py, *_test.py 실행 $ pytest 2. 특정 디렉토리 내부 실행 $ python -m pytest / 3. 특정 테스트 함수만 실행시 (k 옵션) $ pytest .py -k 4. 하나라도 Fail시 멈추고 싶을 때 $ pytest -x 5. 각 테스트 함수 결과 출력 (보다 자세히) $ pytest -vv 6. . 모든 test 실행 결과 출력 pytest -rA (pass포함) pytest -ra (pass 제외) 7. 결과에 Color 입히고 싶을때 (kernel 창 등에서 쓰기 좋음) $ pytest --color=yes 8. 캐시 파일 초기화 - 정확성에 대한 CI 과정에 사용 권장 (clear-cache ) $ pyt..

Python/Utils 2022.11.05

[Pytest] 1. Pytest란? (+ 프레임워크 별 사용)

Pytest란? Python 코드를 단위 테스트 (= 유닛테스트) 하기 위한 TEST Framework로, Python 기반 프로젝트의 TDD (Test Driven Development)에 주로 사용 과거 TDD 종류 기반 정리 글 링크 [SW 개발] 테스트 중심의 개발 TDD (with. Unit, E2E, Integration) "의도하지 않은 결함 수가 많아지면 개발자는 변경을 주저한다" 테스트 주도 개발 (TDD) 란? Test Driven Development 의 약자로 테스트 주도 개발이란는 뜻을 가지는 소프트웨어 개발 방법론 중 하나이 yubi5050.tistory.com Pytest 특징 테스트를 작성하는 데 있어 함수만 정의하면 되므로 편리 (단, pytest만의 고유한 방식을 익혀야 ..

Python/Utils 2022.11.04