본문 바로가기

개발

(49)
python pyQt5활용하여 fastapi 로그 찍기 소개 안녕하세요 오늘은 fastAPI 로그를 pyQt5 ui를 사용하여 표시하는 작업을 진행할 예정입니다. 기존에는 pyinstaller를 사용하여 command.exe 와 log파일에 로그기록을 남겨서 사용하고있었습니다. cmd 에 로그를 남기는 이유는 실시간으로 로그를 확인하고 , 프로그램 종료또한 cmd 가 종료되면 종료할수 있게 하기 위해서 였지만 여러가지 문제로 cmd 를 숨긴 상태로 배포하기로 하여 진행 하게 되었습니다. 구현 하면서 가장 힘들었던점은 pyQt5 gui 에 log를 표시할때 충돌이 발생하여 프로그램이 죽는 점이였습니다. 위 문제를 pyQt 커스텀 시그널을 사용하여 해결하였습니다. 간단하게 리뷰 진행할게요 코드 app.py : 최초 실행을 담당하는 main 역활 webServer..
aws cloudwatch log 사용하기 최근 클라우드 서버를 aws로 변경하면서 이것저것 작업을 하고잇다. 지난번에는 가비아에 등록된 도메인을 aws 로 이전하는 작업을 하였고 또 이전한 도메인에 ssl 인증을 하여 front-end/back-end 에 추가하였다 ( 원래 front-end에만 진행하려고하였지만 frontend에 ssl을 설정할 경우 backend에도 반드시 해줘야함 ) 이번에는 filebeat + logstash + elasticsearch + kibana 를 사용하던 구조를 aws cloudwatch로 통합하는 과정을 진행해보려고한다. 기본 설정은 docker container를 4개 사용중입니다 4개의 container는 volume 설정으로 /var/lib/docker/volumes/_data 밑에 저장됩니다. * 추가..
docker 커스텀 이미지 생성시 arg 활용 도커에서 이미지를 만들때 크게 두가지 방식을 사용한다. 1. docker build 명령어를 사용 2. docker-compose 사용 1번의 경우 각각의 도커 이미지를 만들때 주로 사용되고 2번의 경우 한개의 호스트에서 여러 이미지/컨테이너를 관리할때 사용되는 방법이다. 이미지를 만드는 방법은 다루지않고 arg사용하느부분만 자꾸 잊어버려 기록해 놓을 예정이다. 이미지를 만들떄 Dockerfile 을 통해 이미지를 만드는데 이때 변수를 사용할 경우가 종종 생긴다. (예를들면 서버 주소나 , 아이디 ,포트번호 등등 운영서버와 테스트서버 구분 하는 여러가지 경우) 이런경우 Dockerfile 에 ARG ENV 라고 선언하고 사용하면된다. 1번을 통해서 빌드할 때에는 docker build -t [image_..
docker 로그 보는방법 도커의 이미지를 컨테이너로 생성할떄 사용하는 docker run 명령어의 기본 동작 방식을 foreground 방식이다. 그렇게 때문에 docker run 으로 실행하면 해당 콘솔은 컨테이너가 종료될 때 까지 다른 행동을 할 수없다. 이런경우 해당 컨테이너의 로그가 출력되는 것을 볼 수 있다. 반면 background 방식으로 실행 시키려면 옵션에 -d 를 주어야한다. -d 옵션은 detached 를 의미하며 background 방식으로 동작하여 , 해당 콘솔이 run 이후 다른 동작을 할수있게 해준다. 만약 이미 실행한 컨테이너의 로그를 보는 방법은 아래와 같다. 1. docker attach [container_id] : 이후에 발생하는 로그를 실시간으로 확인할수 있다. 단 ) 해당 컨테이너가 res..
mysql 5.6 에서 5.7 업그레이드 후 쿼리 속도 이슈 안녕하세요 . 정말 귀차니즘의 끝을 달리다가 글을 씁니당... 일단 이슈는 제목 그대로 mysql 버전 업그레이드 되면서 일부 select query 가 급격히 느려진 현상입니다. 아래는 제가 문제 접근부터 해결 까지 기록한 내용입니다. ******************************************************************************************************** 위 부분에서 버전이 업그레이드 됨으로써 의도한데로 쿼리가 작동하지 않고 , 그로 인해 더 많은 데이터를 검색해야하는 비용이 발생하여 쿼리 속도가 느려지게 되는 문제가 발생하였습니다. 이를 해결하기 위해 병합되지않는 룰 중 하나인 group by 를 사용하여 아래 왼쪽 처럼 기존에 의도한..
python 에서 .exe 배포- 2 ( pyinstaller ,pyupdater,scp ) 이글에 이어서 작성합니다. 아래글은 약 6개월전을 회상하면서 작성한글입니다. 이글은 현재 시점의 글입니다. https://programmerk.tistory.com/66 잘쓰던 프로그램이 결국 문제가생겻다. 서버 버전과 현재 버전을 체크할 시점에 인터넷 연결이 되지않으면 프로그램이 죽는다. (ex : 인터넷이 끊기던가 , 무선인경우 발생함 ) 결국 올게 왔다 생각해서 손보기로했다 pyupdater를 선택했는데 이유는 pyinstaller 기반이서였다. https://www.pyupdater.org/ PyUpdater Welcome to PyUpdater If you think PyUpdater is awesome, please give this issue an up vote on awesome-pytho..
python 에서 .exe 배포 - 1 어디서부터 설명해야할지 고민하다가 .. 처음 이문제를 어떻게 접하게됫는지부터 설명하기로.... 상황설명 : 1. 반드시 python으로 개발해야하는 상황이였다 2. 현장(각 매장)에서 쉽게 사용할 수 있도록 실행파일로 배포해야 한다. 3. 점진적으로 확장되는 상황이였다. 일단 python을 exe로 배포해주는 라이브러리는 2~3개 있엇다. (cx_freeze , pyinstaller , auto py to exe ) 모두 테스트해봣는데 별반 차이없었다. ( 빌드 컴퓨터가라 윈도우였다. ) 이제 젠킨스로 연결해서 서버에 배포하고 클라이언트에서 어떻게 받아갈지를 고민했다. 처음에 github release를 pyupdater 알아봣는데 자료도 너무없고 , 시간이 촉박해서 패스.. 간단하게 python으로 s..
한권으로 배우는 vue.js 3 - 따라해보기 4 이번에는 Chapter 4 todolist 만들기를 진행해보았습니다. 코드를 일부로 다 따라쳐보면서 진행하였습니다. 완성된 화면은 아래와 같습니다. 직접 해본이유 1. 직접 따라 치다보니 오타로인해서 에러가 많이 발생햇지만 그 에러를 잡는것 또한 재미.. 2. 직접 따라치면서 내가 사용하지않았던 문법이나 코드스타일을 경험해볼수있엇음. 3. 눈 코딩보다는 직접 따라해본서 문제도 발생시켜보고 변경도 해보면서 100% 이해 볼수있는점이 도움이된것같다. 코드 및 주석 , 동작 확인은 아래처럼 진행하면 할 수 있습니다. git clone https://github.com/baaaaaaaaaaaaam/vue3.git git reset --hard 2265c3936553b2b21a5b0a12997b2ee59e25ab..