Development 17

[Python] 리눅스 환경에서 파이썬 배포파일 만들기

최근 리눅스 환경의 경우 기본적으로 파이썬이 설치가 되어 있어 파이썬 소스파일을 바로 실행시킬 수 있습니다. 다만, 이 경우 배포가 필요한 경우 소스파일을 공유해야 하는 문제가 발생하게 됩니다. 이 전에 공유해 드린 Windows 환경에서와 같이 리눅스 환경에서도 pyinstaller 를 통해 배포파일을 생성하는 방법을 알아 보도록 하겠습니다. 우선 저의 리눅스 테스트 환경은 아래아 같습니다. [root@instance1 dist]# uname -a Linux instance1 4.18.0-408.el8.x86_64 #1 SMP Mon Jul 18 17:42:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux [root@instance1 tmp]# cat /etc/*release..

[Python] 파이썬 디렉토리 크기 확인

업무용 PC 및 노트북을 사용하다 보면 간혹 Windows OS Drive 사이즈가 부족한 경우가 발생하는데, 이때 어느 디렉토리에서 많이 사용 중인지 확인 후 필요없는 파일들을 찾아서 삭제를 해주어야 합니다. 많은 디렉토리를 하나씩 클릭하여 사이즈를 확인할 수 도 있겠지만, 이건 너~무 비효율적인 방법입니다. 이런 경우 파이썬을 통해 손쉽게 확인이 가능합니다. 아래 코드를 참조하여 나만의 디렉토리 체크 프로그램을 만들어 업무에 활용해 보시기 바랍니다. import glob, os import time # 현재시간 정보 def cur_time_func(): # Current Time now = time.localtime() check_time = "%04d-%02d-%02d %02d:%02d:%02d" ..

[Python] 파이썬 파파고(Papago) API 연동

네이버에서 제공해주는 Open API를 통해 나만의 번역 프로그램을 만들 수 있습니다. 개인적인 불편함을 해소하고자 파이썬을 통해 간단한 번역 프로그램을 만들어 보면서 테스트한 내역을 공유하고자 합니다. 역시 사람은 직접 경험해보고 불편함을 느껴야 무언가 아이디어를 생각해내고 새로운 것을 만들려고 시도하는 것 같습니다.. 우선 네이버에서 제공하는 Open API를 사용하기 위해서는 사용 신청을 하여야 합니다. 신청하는 사이트는 아래와 같습니다. 네이버 개발자 센터 - NAVER Developers NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, ..

[Python] 파이썬 Dictionary 사용방법

Python에서 제공하는 자료구조 중 많이 사용하는 것중 하나가 Dictionary 입니다. Dictionary 의 경우 기본적으로 key와 value가 하나 또는 여러개가 { } 로 묶여져 있는 형태이고, Dictionary 내에 있는 데이터의 경우 쉼표(,)로 구분됩니다. {key:value, key:value, key:value} 1. Dictionary 기초 1) Dictionary 선언 가) 데이터가 없는 빈 Dictionary 선언 port_dict = dict() 나) 데이터가 존재하는 Dictionary 선언 port_dict = {'21':'ftp', '22':'ssh', '23':'telnet'} print(port_dict) # Output: {'21': 'ftp', '22': 'ss..

[Python] 파이썬 3.0 이전 버전에서 한글 주석 사용하기

Python 3.0 이하 버전에서 한글 주석을 사용하는 경우 .py 소스파일 실행 시 에러가 발생하게 됩니다. 이런 경우 .py 소스파일 첫줄에 아래와 같이 한줄 추가를 해주면 간단히 해결 됩니다. #-*- coding: utf-8 -*- Python 2 버전의 경우 문자열을 Unicode형식으로 처리하기 때문에 위와 같은 인코딩 설정이 필요하며, Python 3.0 부터는 기본적으로 UTF-8을 사용하여 인코딩 설정을 하지 않아도 됩니다.

[Python] 파이썬 exe 파일 Windows 기본 icon 사용하기

파이썬으로 작성한 코드를 pyinstaller를 통해 exe 파일을 만드는 경우 기본 icon은 아래와 같이 생성됩니다. 물론 해당 icon을 그대로 사용해도 되고, 다른 icon을 사용해도 전혀 문제가 되지 않습니다. 다만 저 같은 경우에는 Windows 기본 icon을 사용하고 싶어 해당 방법을 찾아보았고, 혹 저와 같은 생각을 가지시는 분들이 계실 거 같아 이 글을 작성하게 되었습니다. 구글링을 통해 pyinstaller 시 Windows 기본 icon을 사용하는 방법을 찾아보면, 대부분 pyinstaller로 exe 파일 만들 때 "--icon=NONE" 옵션을 사용하라고 가이드하고 있습니다. 하지만 저 같은 경우에는 해당 옵션을 사용해도 pyinstaller에서 제공하는 기본 icon으로 계속 ..

[Python] 파이썬 Windows 서비스 등록

이번 시간에는 파이썬으로 제작한 exe 실행파일을 Windows 서비스에 등록하여 실행시키는 방법에 대해 알아보도록 하겠습니다. 최종적으로 구현하고자 하는 방식은 아래와 같습니다. [ 프로그램 구성 ] - Watchdog.exe (Windows Service 등록) - Main.exe [ 프로그램 실행 방식 ] 1. 서비스 시작 1) Windows Service 에서 Watchdog 서비스(ex, Test Service) 시작 2) Watchdog.exe 가 Main.exe 프로그램 실행 2. 서비스 중지 1) Windows Service 에서 Watchdog 서비스(ex, Test Service) 중지 2) Watchdog.exe 가 Main.exe 프로그램 종료(kill) 1. 테스트 환경 Pytho..

[Python] 파이썬 SMTP를 통한 메일 전송

파이썬에서 제공해 주는 라이브러리 중 기본 내장된 "smtplib" 라는 모듈을 통해 아주 쉽게 메일을 전송할 수 있습니다. 아래 예제를 참조하여 해당 기능을 잘 활용한다면 본인의 업무 효율성을 높여줄 수 있는 하나의 좋은 무기가 될 수 있으니 업무에 한 번씩 적용해 보셔도 좋을 거 같습니다. 우선 STMP가 무엇인지 살짝 알아보고 넘어가도록 하겠습니다. SMTP는 "Simple Mail Transfer Protocol" 의 약자로서 메일을 보내는데 사용되는 프로토콜입니다. 보통 사내에 SMTP 서버를 구축하여 메일 서버를 통해 메일 발송이 이루어지는데, 요즘은 굳이 사내에 메일 서버를 구축할 필요 없이 Google, MS, 네이버, 다음 등을 통해서 좀 더 편리하게 메일 기능을 사용할 수도 있습니다. ..

[Python] 웹 크롤링(Crawling) 주의사항

인터넷에서 웹 크롤링이라고 검색을 하면 파이썬을 통해 쉽고 간편하게 웹 정보를 수집할 수 있는 내용들이 상당히 많이 공유되고 있습니다. 좀더 편하고 쉽게 웹에 있는 정보들을 수집하고 재활용할 수 있어 충분히 좋은 기능이긴 하지만, 해당 기능을 사용하기 전에 기본적인 주의사항에 대해서 숙지를 하고 사용하는 것이 좋을거 같아 이렇게 글을 남깁니다. "모든 정보를 크롤링 할 수 없다!" 현재 인터넷상에는 정말 다양한 사이트들과 다양한 정보들이 존재하는데, 모든 정보에 대해 크롤링이 허용되는 것이 아닙니다. 개인정보가 있는 사이트의 경우 당연히 수집 못하도록 막을 것이고, 가져가지 말아야할 정보를 가져 가는 경우에는 저작권에 걸려 법적 문제까지 가는 경우가 발생할 수 도 있습니다. 그럼 이런경우 어떻게 구분하여..

[Python] 파이썬 속도개선

파이썬은 많은 장점들이 있지만 컴파일 언어에 비해 속도가 느리다는 단점이 존재합니다. 파이썬의 속도를 높이기 위해 인터넷에서 찾아보면 "병렬처리" 또는 "Cython" 이라고 하는 내용이 많이 보이는데, 해당 내용은 좀더 고급 스킬을 요구하는 내용들이라 초보 개발자 분들이 지금 바로 접하고 적용하기에는 다소 어려운 내용들이라고 생각됩니다. 이번 시간에는 위에서 언급한 "병렬처리"와 "Cython"을 접하기 이전에 좀더 쉬운 방식으로 파이썬 속도를 개선할 수 있는 방법에 대해 알아보도록 하겠습니다. "반복문에서 간단한 구문 변경으로 속도 개선" 개발을 하다보면 반복문은 필수적으로 다루어야 하는 내용입니다. 파이썬에서 반복문 사용할 떄 loop 내에 . 을 사용하게 되면 속도저하가 발생하게 됩니다. 아래 간..