Python
-
PyChecker로 Python 코드 품질 향상하기Python 개발자들에게 매우 유용한 도구인 PyChecker에 대해 알아보려고 합니다. 코드 품질을 높이고 잠재적인 버그를 미리 잡아내는 데 큰 도움이 되는 이 도구, 함께 살펴볼까요?PyChecker란?PyChecker는 Python 코드의 정적 분석 도구입니다. 코드를 실행하지 않고도 소스 코드를 분석하여 잠재적인 오류, 버그, 스타일 문제 등을 찾아냅니다. 이는 개발 과정에서 시간을 절약하고 코드의 안정성을 높이는 데 큰 도움이 됩니다.설치 방법PyChecker는 pip를 통해 쉽게 설치할 수 있습니다:pip install pychecker기본 사용법PyChecker의 기본 사용법은 매우 간단합니다. 명령줄에서 다음과 같이 사용하면 됩니다:pych..
[Python 버그 분석] 버그 찾기, 정적 분석을 위한 PyCheckerPyChecker로 Python 코드 품질 향상하기Python 개발자들에게 매우 유용한 도구인 PyChecker에 대해 알아보려고 합니다. 코드 품질을 높이고 잠재적인 버그를 미리 잡아내는 데 큰 도움이 되는 이 도구, 함께 살펴볼까요?PyChecker란?PyChecker는 Python 코드의 정적 분석 도구입니다. 코드를 실행하지 않고도 소스 코드를 분석하여 잠재적인 오류, 버그, 스타일 문제 등을 찾아냅니다. 이는 개발 과정에서 시간을 절약하고 코드의 안정성을 높이는 데 큰 도움이 됩니다.설치 방법PyChecker는 pip를 통해 쉽게 설치할 수 있습니다:pip install pychecker기본 사용법PyChecker의 기본 사용법은 매우 간단합니다. 명령줄에서 다음과 같이 사용하면 됩니다:pych..
2024.08.11 -
pyodbc 설치도중 pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported' 와 같은 에러가 발생 했습니다. 설치할때 사용한 명령어pip install pyodbc 우선 다시 지워 줍니다.pip uninstall pyodbc pip upgrade 해줍니다.pip install --upgrade pip 특정 버전의 pyodbc 설치, 최신 버전 대신 특정 버전의 pyodbc를 설치해보세요.pip install pyodbc==4.0.39 이제 정상적으로 설치됩니다.
pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported'pyodbc 설치도중 pip._vendor.packaging.version.InvalidVersion: Invalid version: '4.0.0-unsupported' 와 같은 에러가 발생 했습니다. 설치할때 사용한 명령어pip install pyodbc 우선 다시 지워 줍니다.pip uninstall pyodbc pip upgrade 해줍니다.pip install --upgrade pip 특정 버전의 pyodbc 설치, 최신 버전 대신 특정 버전의 pyodbc를 설치해보세요.pip install pyodbc==4.0.39 이제 정상적으로 설치됩니다.
2024.08.07 -
파이썬에서 딕셔너리를 다루는 더 나은 방법에 대해 이야기해보려고 합니다. 1) dict(key=value) 사용하기우리가 흔히 알고 있는 딕셔너리 생성 방법은 중괄호 {}를 사용하는 것입니다. 하지만 dict(key=value)로 생성하는 방법은 더 깔끔하고 직관적입니다. # 일반적으로 dictionary를 생성할때d = {'apple':4,'orange':5,'pear':6,'pineapple':7}# 더 나은 방법으로 똑같이 dictionary를 생성하는법d = dict(apple=4, orange=5, pear=6, pineapple=7) dict(key=value) 장점:{}를 사용할 때, 문자열 키에 따옴표를 입력할 필요가 없습니다.예를 들어, 'apple', 'orange' 등과 같이 말이죠..
Python 딕셔너리에 대해서 알면 좋은 8가지 (FOR CLEAN CODE)파이썬에서 딕셔너리를 다루는 더 나은 방법에 대해 이야기해보려고 합니다. 1) dict(key=value) 사용하기우리가 흔히 알고 있는 딕셔너리 생성 방법은 중괄호 {}를 사용하는 것입니다. 하지만 dict(key=value)로 생성하는 방법은 더 깔끔하고 직관적입니다. # 일반적으로 dictionary를 생성할때d = {'apple':4,'orange':5,'pear':6,'pineapple':7}# 더 나은 방법으로 똑같이 dictionary를 생성하는법d = dict(apple=4, orange=5, pear=6, pineapple=7) dict(key=value) 장점:{}를 사용할 때, 문자열 키에 따옴표를 입력할 필요가 없습니다.예를 들어, 'apple', 'orange' 등과 같이 말이죠..
2024.08.06 -
파이썬의 강력하고 유용한 기능 중 하나인 데코레이터(Decorator)에 대해 알아보겠습니다. 데코레이터를 사용하면 코드를 더 깔끔하고 재사용 가능하게 만들 수 있습니다. 함께 살펴볼까요? 데코레이터란?데코레이터는 기존 함수나 클래스의 동작을 수정하거나 확장할 수 있게 해주는 파이썬의 강력한 도구입니다. 간단히 말해, 다른 함수를 감싸고 있는 함수라고 생각하면 됩니다. 기본 데코레이터 만들기가장 간단한 형태의 데코레이터를 만들어 봅시다.def simple_decorator(func): def wrapper(): print("함수 실행 전") func() print("함수 실행 후") return wrapper@simple_decoratordef say_he..
Python 데코레이터: 코드를 우아하게 만드는 마법파이썬의 강력하고 유용한 기능 중 하나인 데코레이터(Decorator)에 대해 알아보겠습니다. 데코레이터를 사용하면 코드를 더 깔끔하고 재사용 가능하게 만들 수 있습니다. 함께 살펴볼까요? 데코레이터란?데코레이터는 기존 함수나 클래스의 동작을 수정하거나 확장할 수 있게 해주는 파이썬의 강력한 도구입니다. 간단히 말해, 다른 함수를 감싸고 있는 함수라고 생각하면 됩니다. 기본 데코레이터 만들기가장 간단한 형태의 데코레이터를 만들어 봅시다.def simple_decorator(func): def wrapper(): print("함수 실행 전") func() print("함수 실행 후") return wrapper@simple_decoratordef say_he..
2024.08.06 -
파이썬에서 함수를 더욱 유연하게 만들어주는 강력한 기능인 *args와 **kwargs에 대해 알아보겠습니다. 이 두 가지 문법을 이해하고 활용하면, 여러분의 코드는 한층 더 동적이고 확장 가능해질 것입니다. *args: 위치 인자의 자유로운 확장*args는 함수가 임의의 수의 위치 인자를 받을 수 있게 해줍니다. 함수 내부에서 args는 튜플로 처리됩니다.def sum_all(*args): return sum(args)print(sum_all(1, 2, 3)) # 출력: 6print(sum_all(1, 2, 3, 4, 5)) # 출력: 15이 예제에서 sum_all 함수는 몇 개의 인자가 전달되든 상관없이 모든 인자를 더해줍니다.**kwargs: 키워드 인자의 무한한 가능성**kwargs는 함..
Python의 *args와 **kwargs: 함수 인자의 유연성 극대화하기파이썬에서 함수를 더욱 유연하게 만들어주는 강력한 기능인 *args와 **kwargs에 대해 알아보겠습니다. 이 두 가지 문법을 이해하고 활용하면, 여러분의 코드는 한층 더 동적이고 확장 가능해질 것입니다. *args: 위치 인자의 자유로운 확장*args는 함수가 임의의 수의 위치 인자를 받을 수 있게 해줍니다. 함수 내부에서 args는 튜플로 처리됩니다.def sum_all(*args): return sum(args)print(sum_all(1, 2, 3)) # 출력: 6print(sum_all(1, 2, 3, 4, 5)) # 출력: 15이 예제에서 sum_all 함수는 몇 개의 인자가 전달되든 상관없이 모든 인자를 더해줍니다.**kwargs: 키워드 인자의 무한한 가능성**kwargs는 함..
2024.08.06 -
파이썬의 바다코끼리 연산자(walrus operator)에 대해 알아봅시다. 사실 자주 보이는 문법은 아니지만 한번씩 보이는 문법이라 알고넘어 가는게 좋겠습니다. 또한 코드 가독성 좋은 코드를 작성할때 도움이 됩니다. 이 연산자는 Python 3.8에서 도입되었습니다. 바다코끼리 연산자는 :=로 표현되며, 할당 표현식(assignment expression)이라고도 불립니다. 이 연산자의 주요 기능은 표현식 내에서 변수에 값을 할당하고 동시에 그 값을 사용할 수 있게 해주는 것입니다.간단한 예제를 통해 살펴보겠습니다:# 바다코끼리 연산자 사용 예if (n := len(myList)) > 10: print(f"리스트가 너무 깁니다. 길이: {n}")이 코드에서 n := len(myList)는 myL..
Python 바다코끼리 연산자(Walrus Operator) := := := :=파이썬의 바다코끼리 연산자(walrus operator)에 대해 알아봅시다. 사실 자주 보이는 문법은 아니지만 한번씩 보이는 문법이라 알고넘어 가는게 좋겠습니다. 또한 코드 가독성 좋은 코드를 작성할때 도움이 됩니다. 이 연산자는 Python 3.8에서 도입되었습니다. 바다코끼리 연산자는 :=로 표현되며, 할당 표현식(assignment expression)이라고도 불립니다. 이 연산자의 주요 기능은 표현식 내에서 변수에 값을 할당하고 동시에 그 값을 사용할 수 있게 해주는 것입니다.간단한 예제를 통해 살펴보겠습니다:# 바다코끼리 연산자 사용 예if (n := len(myList)) > 10: print(f"리스트가 너무 깁니다. 길이: {n}")이 코드에서 n := len(myList)는 myL..
2024.08.06 -
ImportError: cannot import name 'mesh_core_cython위와 같은 에러가 났다면 userpath/face3d/mesh/cython 경로로 들어가서 아래처럼 setup 파일을 install 해주세요! cd ./engineer/render/face3d/mesh/cython # !!각자의 face3d 라이브러리 path 맞춰줍시다python setup.py build_ext --inplacepython setup.py install
ImportError: cannot import name 'mesh_core_cython'ImportError: cannot import name 'mesh_core_cython위와 같은 에러가 났다면 userpath/face3d/mesh/cython 경로로 들어가서 아래처럼 setup 파일을 install 해주세요! cd ./engineer/render/face3d/mesh/cython # !!각자의 face3d 라이브러리 path 맞춰줍시다python setup.py build_ext --inplacepython setup.py install
2024.06.18 -
성능에 대해서는 프로그램을 만들고 나서나 기능 개발이 완료되고 나서나 작동이 잘되는것을 확인했는데 속도가 아쉽다면 항상 고민을 하게 됩니다.우리는 더 나은 품질에 빠릿빠릿한 프로그램을 원하니까요!프로그램이 원할하게 돌아가게 하기 위해선 Frontend에서의 부드러움도 중요하지만 그만큼 Backend 및 자동화를 위한 스크립트에서도 빠른 속도가 바쳐줘야 합니다. 이글은 제가 많은 시도 끝에 성능을 올려본 방법론중에 하나이며 스스로도 추후에 참고하고 싶어 기록을 남겨봅니다.속도가 문제가 되는곳에는 그만큼 거대한 연산작업이 있다는것입니다. 그 거대한 연산작업을 기다리지 않고 병렬로 처리한다면 사용자는 우선적으로 결과값을 바로 받을 수 있어 사용성에 부드러움을 느낄 수 있습니다. 그 병렬처리를 위해 동시프로그래..
(Python 성능 향상) concurrent.futures 동시 프로그래밍 모듈로 속도 개선해보자!성능에 대해서는 프로그램을 만들고 나서나 기능 개발이 완료되고 나서나 작동이 잘되는것을 확인했는데 속도가 아쉽다면 항상 고민을 하게 됩니다.우리는 더 나은 품질에 빠릿빠릿한 프로그램을 원하니까요!프로그램이 원할하게 돌아가게 하기 위해선 Frontend에서의 부드러움도 중요하지만 그만큼 Backend 및 자동화를 위한 스크립트에서도 빠른 속도가 바쳐줘야 합니다. 이글은 제가 많은 시도 끝에 성능을 올려본 방법론중에 하나이며 스스로도 추후에 참고하고 싶어 기록을 남겨봅니다.속도가 문제가 되는곳에는 그만큼 거대한 연산작업이 있다는것입니다. 그 거대한 연산작업을 기다리지 않고 병렬로 처리한다면 사용자는 우선적으로 결과값을 바로 받을 수 있어 사용성에 부드러움을 느낄 수 있습니다. 그 병렬처리를 위해 동시프로그래..
2024.06.17