본문 바로가기

프로그래밍167

[병렬 프로그래밍] 5. multiprocessing 모듈을 이용하여 여러 인자를 갖는 함수 병렬 처리하기 (feat. starmap) 파이썬(Python)에서 병렬 프로그래밍을 위한 multiprocessing 모듈에는 여러 인자를 갖는 함수를 처리하기 위한 기능을 제공한다. Pool 객체의 starmap를 이용하면 여러 인자를 갖는 함수를 병렬 처리 할 수 있다. 이번 포스팅에서는 starmap의 사용법을 알아보자. 여러 인자를 갖는 함수 병렬 처리 starmap은 첫 번째 인자로 작업 함수를 전달하고 두 번째 인자에 작업 함수 인자를 리스트에 담으면 된다. starmap( function, [ ( x1, y1, z1), ( x2, y2, z2 ), . . . ] 아래 코드는 일차 함수값을 계산하는 do_job에서 첫 번째 인자를 변하고 두 번째, 세 번째 인자를 같은 값으로 고정하여 결과값을 리스트에 담는다. from multipr.. 2023. 3. 22.
파이썬(Python) logging 모듈을 이용한 로그(Log) 남기기 파이썬(Python)에서는 logging 모듈을 이용하여 특정 상황에서 로그(Log)를 출력하거나 파일로 남기는 등의 작업을 수행할 수 있다. 이번 포스팅에서는 logging 모듈을 이용하여 로그 남기는 방법에 대해서 알아본다. logging 모듈 사용법 먼저 logging 모듈 사용법을 단계적으로 알아보고 응용 사례를 살펴보자. 1) Logger 클래스 생성 : getLogger logging 모듈에서 로그를 남기기 위한 첫 번째 단계는 Logger 클래스를 생성하는 것이다. 이는 getLogger를 이용하면 된다. 이때 name 인자에 원하는 Logger 이름을 지정한다. import logging logger = logging.getLogger(name='MyLog') logger를 살펴보면 다음과.. 2023. 3. 21.
파이썬(Python) 달력 다루기 (feat. calendar) 파이썬(Python)에서는 달력을 다루기 위한 calendar 모듈이 있다. 이번 포스팅에서는 calendar 모듈과 관련하여 실제로 많이 쓰일 법한 것들을 알아보고자 한다. calendar 모듈 1) 달력 출력 : calendar, Calendar, TextCalendar a. 특정 연도의 달력 출력 특정 연도의 달력을 출력하려면 calendar 함수에 보고 싶은 연도를 넣어주면 된다. import calendar print(calendar.calendar(2022)) 위 코드를 실행하면 월요일을 주의 시작일로 한 달력이 출력되는 것을 알 수 있다. 2022 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr S.. 2023. 3. 18.
파이썬(python) 날짜 다루기 (feat. datetime) 파이썬(Python)에서는 datetime 모듈을 이용하여 특정 날짜의 연도, 월, 일을 계산한다거나 또는 날짜를 특정 형태로 문자열 변환하는 것이 가능하다. 이번 포스팅에서는 파이썬(Python) 내장 모듈인 datetime 모듈을 이용하여 날짜를 다루는 방법에 대해서 알아본다. datetime 사용법 1) date, time, datetime 객체 datetime 모듈에서 가장 기본이 되는 클래스는 date, time, datetime이다. 이에 대한 기본적인 생성 방법을 알아보자. a. date 객체 date 객체는 기본적으로 연(year), 월(month), 일(day)을 입력 받는다. import datetime date = datetime.date(year=2022, month=10, day=.. 2023. 3. 18.
Pyinstaller 기본 - 이용하여 파이썬(.py) 파일을 실행 파일(.exe)로 만들기 Pyinstaller를 이용하면 파이썬(.py) 파일을 실행 파일(.exe)로 만들 수 있다. 이번 포스팅에서는 Pyinstaller의 사용법을 알아보려고 한다. Pyinstaller 사용법 1) pyinstaller 설치 먼저 pip 명령을 통해 pyinstaller를 설치한다. pip install pyinstaller 당연한 말이겠지만 가상환경을 쓴다면 해당 가상환경 내에 설치해야 한다. 엉뚱한 곳에 설치하고 다른 가상환경에서 pyinstaller를 실행하면 다른 파이썬 환경을 참조하게 되어 예상치 못한 에러가 발생한다(당연히 하지 말아야 할 실수를 내가 했다 ㅠㅠ). 2) 실행파일(exe) 만들기 이제 파이썬 파일(.py)을 실행 파일(.exe)로 만들어보자. 먼저 아래와 같은 간단한 파이썬 파일.. 2023. 3. 17.
[오류 해결] Pyinstaller : ValueError: not enough values to unpack (expected 2, got 1) 회사 서버에서 Pyinstaller를 사용하다가 아래와 같은 오류가 발생한 적이 있다. File "Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_multiprocessing.py", line 46, in _freeze_support ValueError: not enough values to unpack (expected 2, got 1) 오류만 발생하면 다행이지만 회사 서버(Window)에서 실행 프로세스가 무한정으로 늘어났다. 작업관리자에서 '작업 끝내기'를 해도 소용없었다. 어쩔 수 없이 내 계정을 로그 아웃해야 했다. ㅠㅠ 오류 해결 오류가 발생한 원인은 위 메시지 뒤에 나오는 메시지 joblib.externals.loky.process_executor.. 2023. 3. 17.
파이썬(Python) textwrap 모듈을 이용한 긴 문장(문자열) 정리하기(생략, 줄바꿈). 너무 긴 문장을 변수에 담아서 출력한다면 읽기가 쉽지 않을 것이다. 파이썬(Python)에서 제공하는 내장 모듈 textwrap을 이용하면 긴 문장(문자열) 생략(중략)하거나 줄 바꿈을 해줄 수 있다. textwrap은 파이썬(Python) 내장 모듈이므로 파이썬 설치 시 기본적으로 깔려있다. 이번 포스팅에서는 textwrap을 통한 긴 문장 생략, 줄바꿈 방법을 살펴보고자 한다. textwrap 사용법 textwrap을 임포트하고 긴 문장을 가져오기 위해 네이버 뉴스 기사 중 일부를 발췌하여 long_text에 담았다. import textwrap long_text = '지난 3일 SM의 제3자배정 유상증자와 전환사채발행에 대해 법원이 가처분을 인용하자 9.05% 지분 확보가 무산된 카카오는 전혀 예상.. 2023. 3. 12.
파이썬(Python) typing 모듈을 이용한 annotation 세부 설정하기 파이썬(Python) 클린 코드를 작성할 때 annotation을 많이 쓴다. annotation은 변수 타입, 함수의 입출력값에 대한 타입을 표현하는 방식을 말한다. 이때 typing 모듈을 이용하면 타입을 좀 더 정교하게 표현할 수 있다. 이번 포스팅에서는 typing 모듈을 이용하여 타입 annotation 방법을 알아보고자 한다. annotation에 대한 개념은 아래 포스팅을 참고하기 바란다. [클린 코드] 2. docstring과 annotation을 이용한 코드 문서화 typing 모듈을 이용한 정교한 타입 설정 여기서는 자주 사용하는 타입에 대해서 설명한다. 1) 파이썬의 기본 객체: Set, Tuple, List, Dict typing은 파이썬 내장 모듈이므로 설치할 필요 없이 바로 임포.. 2023. 2. 21.
[클린 코드] 2. docstring과 annotation을 이용한 코드 문서화 내가 작성한 파이썬(Python) 코드, 좀 더 구체적으로 말하면 클래스나 함수를 다른 엔지니어가 사용하려고 할 때 그 함수에 대한 입출력 정보, 동작 방식을 확인할 수 있어야 한다. 이때 사용하는 것이 docstring과 annotation이다. 이번 포스팅에서는 docstring과 annotation에 대해서 알아보려고 한다. docstring과 annotation을 이용한 코드 문서화 1) docstring docstring은 함수, 클래스에 대한 사용법, 입출력 정보 등을 문서화할 수 있는 기능이다. docstring은 어떤 정해진 형식은 없으나 대체로 함수 설명, 입력값 정보, 출력값 정보, 그리고 사용법 예제 순으로 정리하는 것 같다. docstring은 함수 또는 클래스 내에 홑따옴표(또는 .. 2023. 2. 20.
[클린 코드] 1. 데이터 타입 일관성 검사하기 (feat. mypy) 클린 코드는 자신을 위해서 또는 내 코드를 사용할 다른 사람들을 위해서 코드를 일관성 있고 가독성 있게 프로그래밍된 코드를 말한다. 이번 포스팅에서는 그중에서 mypy을 이용한 데이터 타입 일관성을 검사하는 방법에 대해서 알아보려고 한다. 데이터 타입 일관성 검사하기 1) mypy 설치하기 mypy는 pip을 통하여 설치할 수 있다. pip install mypy 2) 데이터 타입 일관성 검사하기 먼저 아래 코드를 담은 파이썬(python) 파일 test.py를 만들어준다. 아래 코드는 문자열 타입 변수 message와 문자열을 원소로하는원소로 하는 리스트(List) 또는 튜플(Tuple) 타입 변수 users를 받아서 문자열을 원소로 하는 순회가능한 객체를 리턴한다. 그러고 나서 의도했던 타입이 아닌 .. 2023. 2. 12.

맨 위로