반응형
반응형
투자회수 내역의 XIRR 값들을 일괄 업데이트 해야 하는 이슈가 있었는데 간결하고 심플한 파이썬으로 작업을 하게 되었습니다.이미 Spring 웹서버에 단건의 투자건에 대해 XIRR을 구하는 로직은 구현이 되어 있었고 포팅만 하면 되는 상황이었는데 생산성을 높이고자 파이썬으로 작업을 하게 됩니다 XIRR 일괄 업데이트는 FAST API 를 발행해서 스케줄러를 통해 새벽 시간대에 업데이트를 하도록 설정하고 XIRR 산식은 채찍피티를 갈궈서 빠르게 클래스 객체로 만들어 내게 됩니다.생산성은 기가 막히는데 딜레마에 빠지기도 하지만 MSDN 찾아보고 구글링 하던 시절 생각하면 별반 차이는 없다고 생각이 드네요 CashFlow 는 현금흐름 정보를 가지는 객체입니다class CashFlow: def __in..
기존 apache 웹서버를 nginx 로 교체하는 작업 진행후 몇가지 버그사항이 발생했던 부분은 nginx 서버 셋팅으로 잡을 수 있었는데이번 유효하지 않은 문자 오류는 서버 셋팅으로는 해결이 안되었어요 파일 다운로드 실패 파일 다운로드 링크 클릭 시 아래처럼 유효하지 않은 문자가 발견되었다고 합니다get 방식으로 호출하는 부분인데 한글 파일명의 경우 처리실패로 나타나는 부분이었어요 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다. 아래 처럼 URIEncoding는 "UTF-8" 로 설정하고, relaxedQueryChars 는 "[]()^|"" 설정해서Query String에 한글 또는 특수문자가 있을 시 제대로..
413 request entity too large 오류 기존 윈도우 서버에서 구동중이던 웹서버를 apache에서 nginx 로 교체하는 작업을 진행 후 몇가지 테스트를 진행하다 아래와 같은 오류를 맞이하게 됩니다. 413 request entity too large413 요청 엔터티가 너무 큽니다 2개의 서버에 같은 nginx 를 설치했는데 2개의 서버가 넘겨주는 메시지도 하나는 영어, 하나는 한글인데 왜인지 파악해보아야 겠습니다. 해당 오류를 찾아보니 클라이언트의 요청 사이즈가 제한에 걸려서 발생하는 문제인데 주로 첨부파일 업로드시 발생하는 부분이었습니다.아래와 같이 nginx 공식문서에서 해당 오류가 발생하는 경우를 설명해두었는데요 client_max_body_size 값일 수정해 클라이언트 요청..
WebSocket 을 활용한 주가정보 실시간 조회 작업 대쉬보드에서 주식 종목 정보를 보여주는 부분이 존재하는데 주가정보는 전일 오후 3시 30분, 장이 마감되고 난 뒤에 일괄 업데이트 된 정보만을 보여주다보니 당일 실시간으로 변하고 있는 주가정보를 반영해주지 못하고 있었습니다.20분 지연시세도 아닌 전일 종가라서 당일 변동에 따른 수익률의 변화를 실시간으로 반영하지 못하고 있는 부분으로 인해 이 부분을 개선해주기로 하였습니다. 주가정보는 서버에서 가져오게 하고, 뷰단에서는 수신된 주가정보를 업데이트 하도록 했습니다.웹페이지 접속 시 웹소켓을 이용해 서버로 접속 요청 이후 접속 성공 시 주가정보를 내려받을 종목 코드 리스트를 넘겨주도록 합니다. 서버는 python 으로 작성되었으며 주가정보는 Finan..
nodejs express 서버를 AWS에서 무중단 서비스로 구동하기 위해 PM2를 사용중에 있습니다. https://pm2.keymetrics.io/ npm install pm2 -g 명령어로 손쉽게 설치가 가능하며 pm2 list 로 현재 리스트업된 목록을 확인가능하고 pm2 monit 명령어로 구동중인 서버 로그를 확인도 가능합니다. 다만 로그를 하나씩 확인하는게 너무 불편하고 모니터링 하기엔 부적절하다는 판단하에 모니터링 툴을 알아보던 중 pm2 자체에서 제공해주는 모니터링 웹서비스가 있음을 확인해서 설치하게 되었습니다. 기존 스프링에서 진행했었던 프로메테우스와 Grafana를 그대로 차용해서 활용해보고 싶었으나 일단 빠르게 시작할 수 있는 PM2를 먼저 건드려 보게 되었습니다. https://i..