본문 바로가기

분류 전체보기

(91)
FastApi + Docker 로 분리된 서버 배포 준비 (+bind mount) 독립적인 마이크로 서비스 서버 하나를 만들었으니.. 이걸 메인서버랑 분리가 가능하다...따라서! 도커를 사용해서 배포 쪽을 자동화 해보겠다. 최종 목표는... 이 서버는 GET 용으로 사용할 예정이기 때문에 서버 내부의 매커니즘이 inconsistent해질 일이 없다. 따라서 이중화를 해서 로드밸런싱 해보는 것 까지 목표로..! FROM python:latest WORKDIR /app COPY ./requirements.txt /app/ RUN pip install -r requirements.txt COPY . . CMD uvicorn main:app --host=0.0.0.0 --port=8000 간단하게 이렇게 해놓고(포트번호는 일단 8000으로 해놓고 나중에 배포 단계에서 동적으로 할당시킬것 ex..
Python Virtual Enviornment vs Docker 다른점, 써야하는 이유? 조기졸업으로 인해 1년이 생겨버린 나..(1년 빨리 백수가 되어버림) 일단 방학이 시작되었으니 프로젝트를 하면서 가장 귀찮았던 서비스 배포 환경에 대해서 생각해보기로 했다. AWS에서 리눅스를 꼴에 도커라는 것을 알아서 한번 공부해보려고 했다. 다만 도커를 공부하기 이전에 먼저 파이썬 사용하는 내가 이걸 왜 사용해야하는지 납득부터 하고...(venv와 차별점?)공부를 하기로 했다. 동기가 중요하니!! 우선 도커라는 것은 가상머신과 비교를 한다. 도커와 VM의 차이는 현재 Host Os 위에 GuestOS를 할당하는가? 안하는가의 차이다. VM은 OS 모든 부분을 올리고, Docker는 그러지 않는다. 리눅스 커널만 사용한다. VM Host OS위에 그냥 가상환경 머신을 깐다(Virtual Box, Vmw..
R을 이용한 중고차 가격 결정 요인 분석 마지막 학기 금융계량분석 선형회귀분석 과제.. 2022년은 글로벌 인플레이션이 가장 큰 골칫거리로, 사람들로 하여금 매월 발표되는 미국의 소비자물가지수(CPI)를 주목하게 만들었다. CPI의 구성항목 중 중고차 가격(Used Cars)은 21년 4월(166.04)을 시작으로 22년 9월(207.53)인 현재까지 CPI 상승을 견인하였다. 처음에는 차량용 반도체 공급 부족으로 신차 출고가 지연된 탓으로 즉, 공급 측면의 문제로 보았다. 하지만 우리팀은 수요 측면의 요인이 중고차의 가격 상승을 견인했다고 보는데, 바로 Z세대의 수요이다. 이들은 3저호황 시대에서 발전을 이룬 대한민국에 태어났으며 각종 온라인 공유 플랫폼과 함께 자라며 ‘중고 물품’ 거래 및 인식에 대한 거부감이 덜하다. 최근 ‘중고나라’와 ..
[캡스톤] 재무 데이터 분석을 위한 전처리 - Fnguide 활용 지금까지는 수익률 데이터를 바탕으로만 주가 수익률 변동 가중치를 예측(?) 아니 평가를 하였다. 하지만 과거 수익률 데이터만 가지고 주가를 평가하는것은 상당히 논란의 여지가 있는 부분이다 - 약형 EMH https://muyahoyamuyaho.tistory.com/26 -> 포스팅 참조 (트레이딩머신) 방향과 배경, 이론 - 효율적 시장가설, CAPM, 회귀분석 아마 방학동안 본격적으로 프론트든 서버사이드든 데이터 처리부분이든 개발에 들어갈 것 같은데, 학기중에 해야하는 일은 아무래도 기본적인 방향을 잡아놓고 관련된 논의나 공부를 조금씩 muyahoyamuyaho.tistory.com 아무튼 그렇기 때문에 블랙 리터만에 포함될 선행 지표 및 가중치를 계산할 때 과거의 주가 흐름만으로는 데이터를 예측하는..
[캡스톤] 서버에서 사용할 부스팅 모델 만들기 일단 졸업작품 과제가.. 인공지능을 이용한 트레이딩 시스템을 개발하는것이다. 멘토링 프로그램을 하면서 배웠던 점과 개선할 점을 만들어서 실제 컴공 친구들과 협업 느낌으로 해보는 것이다. 아키텍쳐도 명확하게 설계함으로써 차별점을 뒀다. 전에는 이렇게 서버에서 리퀘스트를 받았을 때 일어나야 하는 일들을 flowchart 형식으로 만들어서 내부에 어떤 기능들을 넣을지 명시를 해줬다. 그리고 각 다이어그램들은 인터페이스, 추상형태로 구현해놨기 때문에 이제 실제 구현체를 만들어볼 차례다. 일단 결과적으로 모델은 세 가지를 만들었다. 아래 세 가지 구현체는 DecisionMaker.Decider 인터페이스를 implement 한 구현체이다. DefaultOptimizer - 저번 한이음 프로젝트때 썼던 일반적인 최..
[캡스톤] MSA 아키텍쳐 설계 열심히 기능을 만들고 있다 먼저 팀원인 친구가 만들고 있는 서버는 메인서버다. 현재 나는 파이썬으로 학습서버를 만드는중.. 메인서버에서는 다음과 같은 일을 한다. 1. 프론트와 소통하면서 유저 화면 데이터를 리턴해준다. 2. 프론트에서 주문이 들어오면 종목 리스트를 가지고 학습서버에 비율 계산 요청을 한다. 3. 비율 데이터를 학습서버로 부터 받아서 한국투자 Api를 활용해서 리밸런싱을 한다 4. 2~3반복 RestTemplate rt = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); //url-> "https://openapivts.koreainvestment.com:29443"+"/uapi/domestic-stock/v1/trading/o..
피드백 및 자성 - 학습서버 6학기 마지막 졸업직전... 나름의 피드백 지금까지 학습서버를 작성하면서 나름 설계를 잘하려고 했지만 나름 아쉬움이 남는다. 1. MSA 아키텍쳐 치고 상당히 얽혀있음 ex) 프론트에서 학습서버로 보내고 학습서버에서 비율을 메인서버로 보내고.. 2. exception handling 대신 그냥 code로 했던 점 3. api 구현 레벨에서 httpexception을 사용하지 않고 그냥 자체 code를 사용한 점 4. binding 할 때 enum을 사용하지 않은 점 그리고 구현을 다 하고 보니깐.. 만들 때는 좋아보였는데 설계상으로 약간의 결함이 보이기도 한다. 1. 굳이 비율 결정하는것이 주력인 학습 서버에서 DB 접근을 할 필요가 있었을까.. 메인 서버에서 코드를 받고 학습 서버에서는 학습 한 결과만..
학습 서버: 실제 돌아가는지 테스트 + 파싱 이슈(bs4로 네이버금융 크롤링) 현재 학습 스케줄러 큐는 다음과 같은 방식으로 작동한다 1. 프론트에서 유저가 설정을 완료하면(전략 + 주식종목리스트 + 투자금액 결정) 학습서버로 리퀘스트를 보낸다 2. 학습서버에서 리퀘스트를 받아서 db에 정보를 저장한다(PredictScheduler.newElement) 3. 학습된 모델에 넣어서 종목들의 수익률을 예측한다(PredictScheduler.newElement->Executor) 4. 예측한 종목들의 수익률과 표준편차를 사용해서 optimizing을 해서 비율을 결정한다(PredictScheduler.newElement->Executor -> Strategy) 5. 비율이 결정되면 db에 반영한다 (PredictScheduler.newElement) 6. 스케쥴러 큐에 kakaoid와 ..