본문 바로가기
반응형

분류 전체보기998

Logrotate 한시간 단위로 로그 생성하는 방법 Logrotate를 사용하여 한 시간 단위로 로그를 생성하려면 다음과 같은 방법을 사용할 수 있다. /etc/logrotate.conf 파일을 편집한다. 다음과 같은 설정을 추가한다. /var/log/my_log { rotate 1 daily hourly } 위 설정은 /var/log/my_log라는 로그 파일을 매일 한 시간 단위로 생성한다. 또는 다음과 같은 설정을 사용할 수도 있다. /var/log/my_log { rotate 1 daily compress dateext } 위 설정은 /var/log/my_log라는 로그 파일을 매일 한 시간 단위로 생성하고, 압축하며, 파일 이름에 날짜를 추가한다. 잘 동작하는지 Debugging mode를 통해서 확인할 수 있다. sudo logrotate -d.. 2024. 2. 29.
원신 - 리세마라 최단 루트 오랫만에 리세마라를 원신에서 시도하는데 최단 루트와 최대 뽑기에 대해서 정리해 본다. 요약하자면 초보자의 기원으로 10회 일반 뽑기 4회 스타더스트와 원석 교환으로 3회 이렇게 뽑고 나면 다시 스타더스트가 75가 되어 1회 더 교환 하여 마지막 한번이 가능하다. 편하게 리세를 진행하기 위해서는 메일 주소가 필요하다. 아래 글에서 얘기한 https://www.emailondeck.com/ 에 접근하여 임시 메일 주소를 생성한다. 실명인증도 어쩔 수 없이 계속 진행해야 하기 때문에 정보를 저장해 두도록 하자. 플레이 방법은 다음과 같다. 먼저 아래 리딤 코드를 플레이 시작이나 마지막에 입력한다. 원신 리딤 코드 원석 50, 영웅의 경험 3 Genshingift 이후 메인 퀘스트만 진행하면 아래 기시단에서 모.. 2024. 2. 29.
Sqlachemy - 특정 날짜 하루의 데이터를 가져오기 다음은 SQLAlchemy를 사용하여 특정 날짜 하루의 데이터를 가져오는 코드이다. from sqlalchemy import create_engine from sqlalchemy.orm import Session # 데이터베이스 연결 설정 engine = create_engine("postgresql://user:password@localhost/database") # 세션 생성 session = Session(engine) # 특정 날짜 date = "2024-01-07" # 쿼리 query = session.query(Table).filter(Table.created_at >= date).filter(Table.created_at < date + timedelta(days=1)) # 결과 조회 res.. 2024. 2. 29.
Python - Missing optional dependency 'openpyxl' 해결 Missing optional dependency 'openpyxl' Pandas의 엑셀 읽기의 호환성을 위해서 보통 openpyxl 을 사용한다. openpyxl을 별도로 제공되는 Python용의 엑셀 라이브러리로써, 현재 3.1.2버전까지 나왔으며, Pandas에서 제공하는 기본 엑셀 라이브러리보다 좋은 호환성을 제공하여 많이 이용한다. 위 에러는 Pandas에서 openpyxl를 사용하는데, 해당 라이브러가 없을 때 발생한다. pd.read_excel(file_path, engine='openpyxl') 즉 openpyxl를 이용하고자 한다면, pip를 이용해서 설치하도록 하자. pip install openpyxl 2024. 2. 29.
Python - URL, WebContent Encode / Decode 하기 HTTP 호출을 진행하면, URL을 인코딩하거나 디코딩하는 일을 자주 경험하게 된다. 이때 주의할 점음 문자열을 encode/decode 를 Byte 레벨로하는 것이 아닌 문자열 수준으로 진행해주어야 한다. 즉 전체 문자열이 아닌 일부 UTF-8 로 작성된 문자열만 변환해주면 된다. 이를 효과적으로 해주는 라이브러리가 urllib 의 parse의 quote와 unquote 를 통해 진행할 수 있다. urllib.parse — URL을 구성 요소로 구문 분석 — Python 3.12.2 문서 urllib.parse — Parse URLs into components Source code: Lib/urllib/parse.py This module defines a standard interface to br.. 2024. 2. 29.
Python - Header Content-Disposition의 UTF-8에서 Filename 가져오기 웹을 이용해서 파일을 다운로드하였을때, 파일이름에 대한 정보가 필요한 경우가 있다. 이때 유용하게 사용할 수 있는 헤더 정보가 있는데, 바로 Content-Disposition 이다. Content-Disposition 에는 보통 파일 이름 정보를 함께 보내주는 경우가 있다. 하지만 한글인 경우 UTF-8로 디코딩을 해야 정상적으로 확인이 가능하다. 여러가지로 코드를 테스트해본 결과 unquote를 활용하여 디코딩이 가능하다는 것을 알게 되었는데, 아래 코드를 이용해서 파일 이름정보를 가져올 수 있다. from urllib import parse def get_filename(source_header): fname = re.findall("filename\*=([^;]+)", source_header, .. 2024. 2. 29.
Python - Error cv2 (-215:Assertion failed) !ssize.empty() in function 'resize' 이오류를 해결하기까지 시간이 조금 소요되었는데, 가장 시도해볼 수 있는 방법은 바로 사이즈이다. 필자가 확인한 내용으로는 사이즈가 정상 범주에서 너무 크기 때문에 발생하게 된다. 쉽게 확인하는 방법은 cv2.imread(imagepath) 를 이용해서 읽어보는 것이다. 그럼 오유 원인이 사이즈인데, 결과는 ssize.empty로 떨어지는 경우가 많다. 물론 이를 위해서 파일 경로 문제라던가, 다양한 문제가 있지만, 필자는 다음과 같은 코드를 이용해서 사이즈를 조정하면 해소가 가능하다. from PIL import Image image = Image.open(image_path) re_height = round(image.height / 2) re_width = round(image.width / 2) i.. 2024. 2. 29.
EasyOCR - "module 'cv2' has no attribute 'imread'" 버전이슈인 경우가 있다. 현재 가장 정상적으로 동작하는 건 4.5 버전으로 확인된다. pip uninstall opencv-python pip install opencv-python==4.5.4.60 2024. 2. 29.
GBA/GBC - 포켓몬스터 한글롬 모음 (1세대 2세대 3세대) 게임보이 어드밴스와 컬러로 출시하면서 엄청난 인기를 끌었던 포켓몬스터 3세대 버전까지 정리해보았다. 게임보이 언드밴스는 패밀리 시리즈 보다 성능이 우수하여 보다 높은 퀄리티의 게임이 가능하여 많은 사용자들이 사랑하였고, 지금 해봐도 괜찮은 게임들이 많으므로, 레트로 게임 유저라면 한번쯤은 해볼 만한 게임기라고 할 수 있다. 1. 게임보이 어드밴스, 컬러 에뮬레이터 Windows - Visualboy Advance M v2.1.4.x64 마우스 끌어다 놓기(Drag And Drop)으로 실행이 가능하다. 기본키(키보드 기준) A: L, B: K, L:I, R:O Start: Enter, Select: Back Visualboy Advance M v2.1 비밀번호:1234 한글 패치 사이트 기본적으로 영문 .. 2024. 2. 28.
반응형