✨ python/FastAPI14 [FastAPI] asyncio 사용하여 볼린저밴드 차트 구현하기 CMD창에 실시간으로 찍히고 있는 웹소켓 데이터들 asyncio란 무엇인가? - 하나의 프로그램이 여러 작업을 동시에 처리하는 방식이다.정확히 말하면 동시성 (Concurrency) 제공, 비동기 I/O를 위한 파이썬 표준 라이브러리이다. @app.on_event("startup")async def startup_event(): asyncio.create_task( )해당 함수는 백그라운드에서 계속 실행하는 것으로, 계속 돌아가야하는 작업 ( 웹소켓, 모니터링 등)에 적합하다. await을 안걸어주면 CPU 사용율이 100%가 된다. 반드시 걸어주자.구분await 없음await 있음CPU 사용률100%낮음이벤트 루프독점공유다른 작업실행불가실행 가능서버 응답멈춤정상 app.pyapp.py에서.. 2026. 1. 6. [FastAPI, Recat] 차트에 볼린저밴드 추가하기 결과화면ApexChart.jsimport { useEffect, useState, useRef } from "react";import axios from "axios";import Chart from "react-apexcharts";import MaCalc from "../utils/MaCalc";const MAX_CANDLES = 100;function ApexChart() { const [candles, setCandles] = useState([]); const wsRef = useRef(null); /* ========================= * 1️⃣ 초기 캔들 로딩 (REST API) * ========================= */ const.. 2026. 1. 4. [FastAPI, React] 골든크로스, 데드크로스 ( Telegram Bot) 결과화면 전체 아키텍쳐 요약업비트 WebSocket ↓FastAPI 중계 ↓React 실시간 분봉 생성 ↓이동평균 계산 ↓골든 / 데드 감지 ↓FastAPI 알림 API ↓Telegram BotReact 구조CandleChart.jsimport React, { useState, useEffect, useRef } from "react";import Chart from "react-apexcharts";import axios from "axios";import MaCalc from "../utils/MaCalc";function CandleChart() { const [ca.. 2025. 12. 21. [FastAPI, React] Telegram Bot 연동하기 결과화면FastAPI로 텔레그램 Bot을 연동하여 알람이 오게 만들었따. 1. 텔레그램 봇 만들기https://telegram.me/BotFather BotFatherBotFather is the one bot to rule them all. Use it to create new bot accounts and manage your existing bots.telegram.me텔레그램에서 BotFather을 검색하게 되면, 봇 생성을 할 수 있다. /start/newbot위 명령어를 순서대로 친 후, 이름을 지정해주면 Token을 발급해준다. 2. 나의 chat_id 얻기https://api.telegram.org/bot/getUpdates해당 사이트에 가서, 나의 chat id를 확인할 수 있다."ch.. 2025. 12. 21. [FastAPI, Recat] 이전 데이터 + 실시간 데이터(WebSocket) 합하기 (3) 🔷 전체 구조 한 줄 요약과거 캔들 데이터(REST) + 실시간 체결 데이터(WebSocket)→ 캔들 배열을 계속 업데이트→ 그 배열로 이동평균(MA)을 계산→ ApexCharts로 캔들 + MA를 동시에 그림 CandleChart.jsimport React, { useState, useEffect, useRef } from "react";// Chart 컴포넌트 (ApexCharts를 React에서 사용하기 위함)import Chart from "react-apexcharts";// HTTP 통신용 라이브러리import axios from "axios";// 이동평균 계산 함수 (직접 만든 유틸 함수)import MaCalc from "../utils/MaCalc";function CandleCha.. 2025. 12. 14. [FastAPI, Recat] 이전 데이터 + 실시간 데이터(WebSocket) 합하기 (2) https://bright-landscape.tistory.com/464 [FastAPI, Recat] 이전 데이터 + 실시간 데이터(WebSocket) 합하기 (1)결과화면 ticker_ws.pyfrom fastapi import APIRouter, WebSocketimport websocketsimport jsonrouter = APIRouter()UPBIT_WS_URL = "wss://api.upbit.com/websocket/v1"@router.websocket("/chart")async def ticker(ws: WebSocket): await ws.accept() async with websobright-landscape.tistory.com이전 코드에서 정적인 차트와 거기에 실시간 움직이는 .. 2025. 12. 12. [FastAPI, Recat] 이전 데이터 + 실시간 데이터(WebSocket) 합하기 (1) 결과화면 ticker_ws.pyfrom fastapi import APIRouter, WebSocketimport websocketsimport jsonrouter = APIRouter()UPBIT_WS_URL = "wss://api.upbit.com/websocket/v1"@router.websocket("/chart")async def ticker(ws: WebSocket): await ws.accept() async with websockets.connect(UPBIT_WS_URL) as upbit_ws: subscribe = [{"ticket": "proxy"}, {"type": "ticker", "codes": ["KRW-BTC"]}] await upbit_.. 2025. 12. 12. [FastApi, React] 업비트 WebSocket으로 실시간 시세 불러오기 결과화면 console에 보다시피, 메시지를 계속 받아와 화면에 뿌려지고 있다.1. wscat 설치npm install -g wscat 2-1.FastAPI , app.py ( 방법 1)1) 필요한 라이브러리들 ImportFastAPI/WebSocket → 웹소켓 서버 만들 때 필요websockets → FastAPI 내부에서 Upbit WebSocket과 연결할 때 필요json → 구독 메시지를 JSON 문자열로 바꿀 때 사용chart_router → 기존 REST API 라우터(chart/candle) 등록2) CORS 설정React 프론트엔드(3000포트)가 API를 호출할 때 CORS 오류가 생기지 않도록 허용.3) 업비트 웹소켓 주소FastAPI가 대신 Upbit WebSocket에 연결해서 .. 2025. 12. 10. FastAPI로 업비트 차트 React로 JSON 형식 데이터 가져오기 결과화면 1. FastAPI - chart.pyfrom fastapi import APIRouterimport requestsrouter = APIRouter( prefix="/chart", tags=["chart"], responses={404: {"description": "Not found"}},)@router.get("/candle")def get_upbit_candle(): url = "https://api.upbit.com/v1/candles/minutes/5?market=KRW-BTC&count=5" headers = {"accept": "application/json"} response = requests.get(url, headers=headers) .. 2025. 12. 8. 업비트 API 환경변수 세팅 및 FastAPI 로 자산 조회하기 1. UPBit 세팅 업비트를 로그인 하고, 우측에서 고객센터 > [OPEN API 안내] 를 클릭하여 Open API 사용하기에서 등록할 수 있다. 참고로 cmd창에서 ipconfig 했을때 나오는 ip가 여기서 허용하는 IP가 아니라는 점을 주의하자.나는 ipconfig해서 나오는 내 IP 값으로 해서 안되가지고 시간을 아주 많이 날렸다.. https://www.findip.kr/ 아이피 확인 - my ip addressIP 주소를 확인하는 가장 쉽고 빠른 방법 이 사이트(findip.kr)에 접속하는 것이 IP주소를 확인하는 가장 쉽고 빠른 방법이다. 27.0.238.181 가 현재 접속한 기기의 공인 IP(Internet Protocol) 주소다 IP주소는www.findip.kr위 주소에서 나오는.. 2025. 12. 6. VisualStudio로 FastAPI와 React 쉽게 연동하기 FastAPI + Recat 전체 프로젝트 구조 (베스트 프랙티스 )C:\fastApi│├── backend/ # FastAPI 서버│ ├── app.py│ ├── main.py│ ├── run.bat│├── frontend/ # React 프론트엔드 (CRA로 생성)│ ├── public/│ ├── src/│ │ ├── api/ # 백엔드 API 호출│ │ │ ├── App.js # axios 설정│└── README.md # 전체 프로젝트 설명우선 이렇게 backend는 FastAPI, frontend는 React로 프로젝트를 만들어 보려고 한다.https://bri.. 2025. 12. 6. FastAPI로 처음 웹에 데이터 띄워보기 (uv) 이전 포스팅에서 pip를 사용해서 FastAPI를 사용해보았다. https://bright-landscape.tistory.com/453 FastAPI로 처음 웹에 데이터 띄워보기1. CMD로 파이썬 버전 확인 python --verison 에서 버전이 안나오면, 제대로 설치된게 아니다.제어판가서 파이썬 삭제하고, 다시 설치할 때,"Add Python to PATH" 이거 체크하고 설치하자. 2. venv 가상환경 생bright-landscape.tistory.com uv는 pip와 .venv를 사용하여 fastApi를 했을때와 초기 화면이 살짝 다를 수 있으나, visual에서의 문법은 똑같이 사용하면 된다. 1. cmd 명령프롬프트 입력uv를 사용하기 위해 아래 명령어를 cmd에서 실행해서 설치가 필.. 2025. 12. 5. 이전 1 2 다음