파이썬 패키지 만들기: 협업을 위한 코드 모듈화 소개협업 프로젝트에서 우리가 만든 코드를 다른 팀에서 쉽게 사용할 수 있도록 패키지화하는 방법에 대해 알아보겠습니다. 이를 통해 pip install package_name 형태로 간편하게 설치하고 사용할 수 있는 패키지를 만들 수 있습니다. # 사전 설치pip install setuptools 패키지 구조 만들기package_name/├── package_name/│ ├── __init__.py│ └── function.py├── README.md├── requirements.txt└── setup.py 패키지 구조 설명위의 패키지 구조는 Python 패키지를 만들기 위한 기본적인 틀입니다. 각 파일과 디렉토리가 어떤 역할을 하는지 하나씩 살펴보겠..
AboutPython
Poetry를 사용하는 이유같이 작업하는 개발자들끼리 같은 버전의 패키지들을 설치하여, 환경을 일치시키게 됩니다.의존성 충돌 문제를 알아서 해결해주고, 패키지를 최신 버전으로 알아서 관리해줍니다. Poetry 설치Python3.8 이상이어야한다. 아래 가이드 보고 설치 진행https://python-poetry.org/docs/#installing-with-pipx Git 저장소에 Poetry 초기화하기poetry init 레포 내에서 init을 하면 다음과 같이 초기 세팅과 관련한 메뉴얼이 나옵니다.Main Dependencies 는 Production 전용,Develop Dependencies 는 Dev 전용으로 필요한 패키지를 분리하여 설치하면 된다고 합니다.pyproject.toml이 생성..
본 글은 https://hyperconnect.github.io/2023/05/30/Python-Performance-Tips.html#2-built-in-list는-충분히-빠르지-않다-필요시-array나-numpy를-사용하자 의 내용을 공부하며 정리한 글 입니다. 어떤 상황에서 Array나 Numpy를 쓰는 것이 적절할까? 내부에 PyObject (객체)를 들고 있는 list PyObject **ob_item; 부분을 보면, 값을 조회하기 위해 참조를 두번 타고 들어가는 것으로 볼 수 있다. 아래는 cpython에서 파이썬 list를 정의하는 부분이다. https://github.com/python/cpython/blob/main/Include/cpython/listobject.h /* Python b..
하나의 스레드가 두 개의 작업을 연속적으로 수행한 것에 비해, 두 개 스레드가 각각 하나의 작업을 수행했을 때 더 오래걸렸다고 합니다. 왜 이런 일이 발생했을까요? import random import threading import time def working(): max([random.random() for i in range(500000000)]) # 1 Thread s_time = time.time() working() working() e_time = time.time() print(f'{e_time - s_time:.5f}') # 2 Threads s_time = time.time() threads = [] for i in range(2): threads.append(threading.Thre..