본문 바로가기

분류 전체보기

(108)
Nodejs 메모리 leak 현상 해결하기 Push 서버는 고객에게 푸시 알림으로 전달할 메시지를 메인 서버로부터 전송받아 Google FCM(Firebase Cloud Messaging)을 통해 사용자에게 전송하는 역할을 합니다. 메인 서버는 보안을 위해 방화벽 내부에 위치하고 있기 때문에, 이러한 미들웨어 성격의 서버가 필요합니다. 서버를 처음 구축했을 당시에는 하루 평균 1만~3만 건의 데이터를 처리하면 충분했기 때문에 성능에 큰 신경을 쓰지 않았습니다. 대신 유지보수 측면에서 유리하도록 코드를 작성했고, 여러 라이브러리를 적극적으로 활용하여 구현했습니다.하지만 최근 회사가 푸시 알림을 활용한 적극적인 마케팅 전략을 도입하면서, 하루 처리해야 하는 메시지의 양이 급격히 증가했습니다. 이에 따라 한 번에 수십만 건의 트래픽이 몰리는 상황이 발..
[flask-cors] 재설치 Flask 로 백엔드를 구성했고 React로 프론트엔드를 구성했는데 어김없이 'cors' 이슈가 발생했습니다 ..  Flask 에는 flask-cors 패키지가 있어 다음처럼 해주면 모든 요청에 대한 CORS를 방지할 수 있습니다.app = Flask(__name__)CORS(app, resources={r"/*": {"origins": "*"}}) 하지만, flask-cors를 설치할 때 다음 명령어로 정확하게 설치해야 합니다.pip install Flask-Cors 저는 "pip install flask_cors" 로 해서인지 아무리해도 해결이 안되길래 "pip uninstall flask_cors & pip install flask-cors" 로 해도 해결이 안됐고 결국 다시 설치해주니 해결이 됐습..
개발자 도구 방지 코드 우회하기 가끔 개발자 도구를 차단하는 사이트가 존재하는데 위와 같은 방법으로 대부분 처리를 합니다. 이 경우 ctrl + shift + i 를 통해 개발자 도구를 열게되면 debugger; 가 실행되는데 그 때allow = 9999999999;window.removeEventListener('blur', detectDevTool);window.removeEventListener('focus', detectDevTool);window.removeEventListener('mousemove', detectDevTool);window.removeEventListener('resize', detectDevTool);window.removeEventListener('load', detectDevTool);다음처럼 처리하면..
Binance API 선물거래 - MACD_EMA 전략 구현 https://www.youtube.com/watch?v=Y-HFJkeJyc4 이번 글은 위 영상을 기반으로 작성하였습니다. Preview가상화폐 자동매매 프로그램을 접하기 가장 좋은 영상이지 않을까 싶습니다. 사용된 전략도 매우 간단하고요!바이낸스 계정을 만들고 리플을 입금하고 API세팅하는 부분은 다른 블로그를 참고하시길 바랍니다. 코인 거래를 시작하려면 가장 먼저 드는 생각은 어떤 코인을 살까입니다. 어떤 기준으로 코인을 사고팔아야 할지 고민하다 보면 막막합니다.그래서 이번 글에서는 그런 분들에게 좋은 강의와 이에 대한 설명을 해보려고 합니다. MACD-EMA 전략은 무엇일까?MACD는 Moving Average Convergence Divergence입니다. Moving Average는 이동평균선..
[React] useClickOutside hook React 로 개발하던 중, 특정 영역 밖을 클릭하면 떠있던 모달이 내려가거나 상태를 바꿔줘야 하는 경우가 발생했습니다.  이 때 물론 useState를 사용하거나 useRef를 사용해 바로 구현해도 되지만 hook으로 빼면 코드가 좀 더 간결해질 수 있습니다. //useClickOutside.tsimport { useEffect, MutableRefObject } from 'react';function useClickOutside(ref: MutableRefObject, onClickOutside: () => void) { useEffect(() => { /** * Invoke Function onClick outside of element */ function handleC..
[Pyqt5] QMainWindow 배경 이미지 설정하기 위 이미지 처럼 윈도우의 배경 이미지를 설정하려면 다음과 같은 방법을 시도할 수 있습니다. self.window.setStyleSheet("background-image: url(FILENAME); background-attachment: fixed") 하지만 이 방법은 이미지의 사이즈를 설정할 수 없습니다. 그래서 화면에 맞지 않게 이미지가 보여지죠. 그래서 QPixmap을 통해 이미지의 사이즈를 조정한 다음 QPalette 와 QBrush 를 사용해서 배경화면을 그려줘야 합니다. def initUI(self, titleFontSize, subFontSize, font_, title, content): self.setWindowTitle('Full Screen Presentation') # QLabel..
Learn Golang - Chat Service Preview 최근에 Golang을 공부하기 시작하면서 사이드 프로젝트를 시작하기에 앞서 잘 만들어진 소스코드를 분석해 보기로 했다. 실무에서 채팅 서비스를 개발하고 있기 때문에 채팅 프로젝트에 관심이 생겼다. 단순 분석뿐만 아니라 개선점을 찾아보고 중요한 개념들에 대해 기록을 남기려고 한다. 그리고 프로그램을 분석하며 발견한 이슈들을 좀 해결해보려고 한다. ethan-well/go-chat [GitHub - ethan-well/go-chat: Golang 高并发聊天程序/go chat room Golang 高并发聊天程序/go chat room. Contribute to ethan-well/go-chat development by creating an account on GitHub. github.com]..
모바일 환경 테스트 자동화 구축 Preview 저희 회사는 개발 이후 테스트를 진행할 때 QA엔지니어가 없기 때문에 1차적으로 개발자가 테스트하고 2차로 현업직무에 종사하는 임직원이 테스트하고 배포를 진행합니다. 개발자 인력도 부족해 부랴부랴 개발하기에도 시간이 벅차고 그렇다고 현업직원은 테스트가 본인 업무도 아니기 때문에 제대로 테스트를 진행해주리라 기대하기도 어렵습니다. 최근 운영하는 과정에서 개발자의 실수로 발생하는 단순 오류들을 수정해가는 과정에서 테스트의 중요성에 대해 뼈저리게 느끼게 되었고 API 테스트 툴, 테스팅 라이브러리 적용, 모바일 앱 테스트 자동화 등 어떻게 하면 개발자가 테스트에 시간을 많이 쏟지 않고 효율적으로 테스트를 진행해 배포까지 이어질 수 있을까 고민하며 자료를 찾아봤습니다. 현재 프로젝트 개발을 마치고..