본문 바로가기

전체 글

(91)
catties 알리에서 뭘 좀 사려고 봤더니 크기표가 이렇게 나와 있다. 응? catties? 이게 뭐지? 생전 처음 보는 단위라 뭔가 하고 찾아봤더니 중국, 동아시아에서 무게를 측정하는 단위로 약 600그램 이란다. -_- 이... 이것은... '근' 이 아닌가! 옷 사는데 사이즈를 '근' 으로 측정한다니... 나는 100근이라 S 를 사야 하는 듯.
python으로 email 발송하기 (feat. gmail SMTP) python script에서 간단하게 이메일을 발송하고 싶고, 이메일의 빈도가 높지 않으면 번거롭게 SMTP 서버를 설정하지 않고 gmail에서 제공하는 SMTP 서버를 이용해서 메일을 발송할 수 있다. 간단한 예시 코드는 아래와 같다. import os import smtplib from email.mime.text import MIMEText from datetime import datetime, timedelta import glob # Gmail 설정 gmail_user = 'SENDER USERID@gmail.com' # Gmail 주소 gmail_app_password = 'YOUR APP SPECIFIC PASSWORD' # 앱 비밀번호 # 이메일 전송 def send_email(subjec..
ubuntu: cron, timezone ubuntu 서버에서 특정한 시간에 돌아야 하는 프로세스가 있어서 crontab으로 처리하려고 했다. HOME="/home/me/cron" # 매 시간 실행 0 * * * * cd $HOME && ./hourly.sh # 3시 30분에 실행 30 3 * * * cd $HOME && ./330.sh 매 시간 돌아야 하는 스크립트 hourly.sh 는 정상적으로 실행되는데, 3시 30분에 돌아야 하는 스크립트 330.sh 는 실행이 되지 않는 문제가 있었다. /var/log/syslog 을 살펴봐도 3시 30분에 CRON 로그가 아예 없었다. 이럴 때는 로컬 타임존이 어떻게 설정되어 있는지 먼저 확인해보고 $ timedatectl Local time: Fri 2024-01-19 12:52:19 KST Uni..
ubuntu: github 에서 반응이 없을 때 새로 설치한 ubuntu 서버에서 github 에 있는 소스를 pull 하려고 하는 상황이었다. 처음에 https로 clone할 때는 문제 없이 되었다. > git clone https://github.com/........./project.git github ID, password를 매번 입력하는게 귀찮기도 하고, 스크립트를 만들어서 pull, build 하려고 https 대신 ssh 를 이용하기로 했다. 1) ssh key 생성 > ssh-keygen -t ed25519 -C "testaccount@test.com" 이렇게 하면 ~/.ssh/ 밑에 id_ed25519, id_ed25519.pub 2개의 파일이 생긴다. .pub 확장자가 붙은 것은 공개키 파일, 없는 것은 개인키 파일이다. 개인키 파일..
python: 특정 디렉토리 내의 파일 리스트를 얻는 방법 1. 파일명만 필요한 경우 os.listdir() 함수를 이용하면 특정한 디렉토리의 파일명 리스트를 쉽게 얻을 수 있다. import os files = os.listdir(PATH) 하지만 이렇게 하면 디렉토리 명도 포함된다. 디렉토리를 제외한 파일의 이름만 얻고 싶으면 import os files = [f for f in os.listdir(PATH) if os.path.isfile(f)] # files: [] 이렇게 하면 파이썬스럽게 파일명 리스트가 나올... 것 같지만, isfile()은 full path 를 넣어야 제대로 된 결과가 나온다. import os files = [f for f in os.listdir(PATH) if os.path.isfile(os.path.join(PATH, f))..
zsh alias 에서 설정한 커맨드가 매번 실행되지 않는다. 매번 타이핑하기 싫은 것을 zsh에 alias 해보려고 했더니 예상 외의 문제가 발생해서 남겨놓는다. ~/.zshrc 에 alias를 설정했다. alias printdate="echo ${date}" 이렇게 하면 printdate 커맨드를 내릴 때마다 지금 날짜, 시간이 출력될 것을 예상했는데... > printdate 2023년 7월 26일 수요일 10시 49분 19초 KST > printdate 2023년 7월 26일 수요일 10시 49분 19초 KST >printdate 2023년 7월 26일 수요일 10시 49분 19초 KST 결과는 두둥!!! 매번 실행될 필요가 있는 스크립트는 alias가 아니라 함수로 작성하는 것이 좋겠다. printdate () { echo $(date) } 이렇게 하면 잘..
python async IO를 통한 동시성 처리 python에서 동시성을 처리하는 방법을 정리해본다. 다루게 될 키워드들. multiprocessing, multithreading, async, await, async IO, coroutine, task, explicitly asynchronous, implicitly asynchronous, futures 기존에 동시성을 구현하기 위해 사용하던 방법들 1. Multiprocessing 복수의 CPU를 동시에 사용. multiprocessing 패키지을 이용해서 구현할 수 있다. 하드웨어 사양에 관련이 있고, 동시에 많은 계산이 필요한 작업에 적합하다. 2. Threading 다수의 thread가 번갈아가면서 실행되는 방법으로 동시성을 구현한다. 하나의 process가 다수의 thread를 포함할 수 ..
방화벽 내부의 로컬 네트워크에 외부에서 접근할 수 있게 하는 툴 ngrok http 80 무료 사용자는 2시간까지 임시 도메인이 유지된다. 잘 사용하면 아주 편함. ngrok.com