전체 글 1045

[Python] 의도치 않은 모든 예외 기록 처리하기

문제점 try ... catch 를 아무리 잘 이용하더라도 예측하지 못했던 오류가 발생할 수 있습니다. 특히, PyQt 등을 이용한 GUI라면 예측하지 못한 오류로 인하여 GUI가 사라지거나, Flask 등의 웹 서비스라면 서비스가 중단될 수도 있습니다. 이런 경우, 어떤 문제로 인하여 발생한 것인지 확인할 수 있도록 예측하지 못한 모든 예외를 기록하는 방법을 정리해 둡니다. 일반적인 예외 처리 일반적으로 파이썬에서 예외를 처리하기 위해서는 "try... except" 구문을 이용합니다. 다음 예제는 엑셀 시트의 특정 셀에 값을 채워넣는 과정에서 예외를 처리하는 것을 간단하게 보여 줍니다. for row in gain_data_list[1:]: try: sheet.cell(row = row_base, c..

"귀공자(The Childe, 2023)"를 본 후에...

감상 관람객들의 평이 좋아서 찾아보게 되었는데, 결론적으로 괜한 시간낭비라는 생각이 들지 않을 정도로 나름 괜찮았습니다. 무엇보다도 뻔한 신파나 감정 소모없이 어떻게 보면 상쾌 통쾌하게 청소?해 버리는 해결사다운 모습이 시원했습니다. 오히려 윤주 역의 고아라 배우님 등이 중간에 바로 청소?되어 버려서 "어...어? 이렇게 가버린다고?"하고 놀래기도 했습니다. 무엇보다 처음에는 진짜 코피노를 섭외하여 연기한 것이 아닌가 하고 의심하게 한 강태주 배우님의 모습에 깜짝 놀라고... 그의 연기력에 또 한번 깜짝 놀라웠습니다. 김선우 배우님의 액션 연기도 좋았고, 두 남자 배우의 호흡도 잘 들어 맞아서 볼맛이 나는 영화였습니다. 영화 정보 장르 액션 감독 박훈정 주연 김선호, 강태주, 김강우, 고아라 제작국 대한..

취미/영화보기 2023.08.12

[Python] Python 3.11에서 PySide2 설치 오류 문제

문제점 새로 설치한 PC에서 파이썬 최신 버전인 3.11을 설치한 이후에 PySide2를 설치하려고 하였더니, 다음과 같은 오류가 발생하였습니다. Collecting PyQt5 (from -r .\requirements.txt (line 3)) Using cached PyQt5-5.15.9-cp37-abi3-win_amd64.whl (6.8 MB) ERROR: Could not find a version that satisfies the requirement PySide2 (from versions: none) ERROR: No matching distribution found for PySide2 (utel-tester) PS D:\Dev\python\mini\utel-tester> pip instal..

"미션 임파서블: 데드 레코닝 PART ONE(Mission: Impossible - Dead Reckoning - PART ONE, 2023)"를 본 후에...

감상 다음 날 새벽까지 졸음?을 참아가며 보고 난 후의 첫 느낌은 3시간 동안 예고편을 본 것이란 말인가? 였습니다. 아무런 정보 없이 당연하게도 "미션 임파서블"이기 때문에 보러 간 것이었는데, 160분이 넘는 짧지 않은 시간이 짧게 느껴졌지만 마지막에 결론이 나지 않고 다음 파트?로 넘어 가면서 일종의 배신감이 느껴지면서 3시간 짜리 예고편을 본 느낌이었습니다. AI가 악하게 변하면 어떨게 될지 상상하게 만드는, 두려움을 느끼게 만드는 내용이었습니다. 과연 결말은 어떻게 될지... 궁금하네요. 그 동안의 미션 임파서블에서는 말 그대로 불가능한 미션을 기상천외한 방법으로 수행하는 모습들이 있어서 우와~ 하는 감탄이 절로 나오게 만들었었는데... 이 번 편은 그런 느낌이 좀 덜했습니다. 특히나 오토바이를..

취미/영화보기 2023.07.15

[Python] PyQt5 - askyesno, showerror, showinfo 대체하기

문제점 "tkinter.messagebox" 내의 askyesno, showerror, showinfo 함수들을 이용하여 메시창 알림을 잘 사용하고 있었습니다. from tkinter.messagebox import askyesno, showerror, showinfo 그런데 메시지 창이 나타나는 위치가 항상 화면에 중간에만 나타나는 문제가 있었습니다. 알림 메시지 창이 해당 함수를 호출하는 창의 중앙에 위치하도록 변경해야 했습니다. parent 매개변수에 부모 객체를 넘겨주면 부모 컨트롤의 중앙에 표시될 것이라는 글을 보고 적용해 보았으나 오류가 발생하였습니다. 해결 과정 "Tkinter, tkmessagebox keeps sending me to the root":https://stackoverflo..

[Python] 클래스 인스턴스 형변환 시, 주의할 점

파이썬에서 형변환은 꼭 필요하지 않습니다. 오히려 리터럴 형식의 변수에 대한 형변환을 제외하고는 굳이 형변환을 권장하지도 않는 것 같습니다.(지금 생각해 보니, 클래스 인스턴스의 형변환 자체가 필요없기도 하거니, 그런 문법이 없군요. ^^;) 특히나 클래스 인스턴스에 대한 형변환은 무의미할 정도입니다. 다음과 같은 코드를 보면, 어디서 문제가 있는지 감이 오신다면 다행이지만 저와 같이 델파이(파스칼)에 더 익숙한 개발자라면 도대체 문제가 뭔지 알 수가 없을 수 있습니다. (저도 왜 이게 문제가 되는 잘 몰랐습니다. ^^;) def handleGroupboxAllClick(self) -> None: """ 그룹박스 내 모든 체크박스의 선택을 토글하는 "All" 버튼 핸들러 : 모든 체크박스 항목의 선택을 ..

"범죄도시3(THE ROUNDUP : NO WAY OUT, 2023)"를 본 후에...

감상 믿고 보게 되는 범죄도시가 될지 궁금한 영화였습니다. 다 본 후의 느낌은 4편도 기대는 된다 입니다. 아직까지는 화끈하게 빌런을 참교육?하는 마석도 형사의 모습이 호쾌하고 멋지게 느껴지기 때문이겠죠. 하지만 하나하나 따지고 보면 전개상 이상하고 어색한 부분도 많고 매번 동일한? 형식으로 진행되는 사건의 방향이 다음 장면들이 이미 파악되어서 재미를 반감시키는 부분이 있었습니다. 빌런 치고는 이준혁님이 연기한 주성철 팀장의 비중도 좀 약하지 않았나 싶었습니다. 역시 빌런으로는 장첸이 역대급이었나 봅니다. 4편으로 그대 되는 부분은 마지막에 나왔던 장이수?와 함께 어떤 일들을 벌일지... 어떤 빌런이 나올지가 궁금했던 점이 가장 큽니다. 액션 자체로써는 마동석님의 다른 작품들과도 많이 유사하여 액션 보다..

취미/영화보기 2023.07.08

[Python] PySide2에서 'Python 코드 보기' 시, uic 관련 오류

문제점 새로 설치한 PC에서 파이썬을 설치한 이후에 PySide2를 설치하고 새로운 폼을 만든 후, "Python 코드 보기"를 실행하였더니, 다음과 같이 "uic"를 찾을 수 없다는 오류가 발생하였습니다. "코드 생성 실패" 오류 메시지 해결 방법 해결 방법은 간단합니다. "uic.exe" 파일을 검색하여 찾아보면, "PySide2" 패키지가 설치된 폴더에 함께 위치해 있습니다. "uic.exe" 파일이 있는 "PySide2" 패키지가 설치된 폴더로 가서, "bin" 폴더를 생성하고, 생성된 "bin" 폴더에 "uic.exe" 파일을 복사해 줍니다. 그리고 난 후, "Python 코드 보기"를 실행했을 때는 정상적으로 코드가 생성되어 표시됩니다.

"플래시(The Flash, 2023)"를 본 후에...

감상 보러 가기 전부터 여러 매체에서 마침내 DC에서 히어로물로 성공한 작품이 나왔다는 평을 많이 보아서 기대를 갖고 보았는데, 저의 감상도 다르지 않게 상당히 재미나게 보았습니다. 특히, 전날 보았던 스파이더맨과 유사하게 멀티버스?를 통하여 과거로 돌아가 아버지의 누명과 어머니를 살리려던 시도가 나비효과가 되어 다크 플래시?를 만들어낸 것까지... 타임 패러독스, 평행 우주론 등등 깊게 생각하면 머리아픈 주제를 나름 잘 풀어낸 것 같았습니다. 결과적으로 사건들을 원래대로 되돌려 놓기는 했지만, 누구나 한 번쯤 생각해 봤음직한, 과거로 돌아가 잘못된 선택을 되돌리고 싶은 마음을... DC 특유의 어두운 분위기(유독 배트민만 그랬던가요...?)가 아닌 밝은 분위기에서 매번 뒤치닥거리만 하던 플래쉬의 과거 ..

취미/영화보기 2023.06.26

[docker] gitlab - backup 수행하기

개요 도커 컨테이너로 운영중인 GitLab의 자료를 백업하는 방법을 알아 보겠습니다. 크게 보면 두 가지 방법이 있습니다. 첫 번재는 GitLab 컨테이너로 마운트한 "data" 폴더 등을 "tar" 명령 등을 이용하여 백업하는 방법입니다. 두 번째는 GitLab 컨테이너 내부에 "gitlab-rake" 명령으로 직접 백업하는 방법입니다. 마운트 폴더 백업 운영중인 GitLab 컨테이너를 중지합니다. docker stop gitlab && docker rm gitlab 마운트된 폴더를 통째로 압축 백업합니다. cd /home/service tar cfz gitlab-14.1.8.tgz gitlab/ 백업이 완료된 이후에 GitLab 컨테이너를 다시 구동합니다. "gitlab-rake" 명령을 이용한 백업..

Docker 2023.06.15
728x90