2024.11.11 - [Programming/Project] - [Spring Boot] 모의 투자 사이트 개발기 (1)2024.11.18 - [Programming/Project] - [Spring Boot] 모의 투자 사이트 개발기 (2) 1. 개요 이전에 가장 먼저 목표로 잡은 것이 클라이언트단에서 bybit 가 아닌 서버에서 데이터를 처리할 수 있도록 변경하는 것이다. 그리고 WebSocket 의 양방향 통신을 이용해서 주문 접수도 WebSocket 을 사용하고자 한다. 2. 시세 데이터 가공 및 처리Bybit 로부터 WebSocket 으로 시세 데이터 하나만 가져오고 서버 내부적으로 데이터를 가공해 캔들 형태의 실시간 데이터와 과거 데이터를 API 로 제공한다. 2024.11.22 - [Pr..
전체 글
행복한띠용이의 코딩 블로그입니다.1. 개요모의 투자 사이트를 개발하면서 토스 증권을 참고해보았을 때 실제 주문도 STOMP 를 통해서 진행되는 것을 확인할 수 있었다. WebSocket 이라는 것 자체가 양방향 통신이 가능한 프로토콜이기에 이미 연결되어있는 웹소켓을 사용하지 않을 이유가 없다. 모의 투자 사이트에서는 HTTP API 에 대해서 JWT 토큰을 사용해 사용자를 인증하고 있기에 STOMP 에서도 JWT 를 사용하고자 한다. 2. JWT 헤더 파싱const headers = { Authorization: `Bearer ${JWT_TOKEN}`,};try { const message = JSON.parse(messageJson); // JSON으로 변환 stompClient.send(destinationPath, he..
1. 개요모의 투자 서비스를 개발하면서 시세 데이터만 1초에 4~5개가 들어오곤 한다. 결국 프론트엔드의 모든 API 엔드포인트를 로컬 서버로 옮겨오기 위해서는 실시간 데이터를 가공해서 분봉 데이터 형태로 나타낼 수 있어야한다. 목표는 두 가지이다. 웹소켓을 사용해서 실시간 캔들 데이터를 제공하는 것과 HTTP API 로 과거 캔들 데이터를 조회할 수 있는 것이다. 실시간 데이터를 위해서는 당연히 웹소켓 을 사용하고 있으며 토스 증권을 참고하고 있기에 STOMP 프로토콜을 추가적으로 사용하겠다. 클라이언트에게 시세 데이터를 뿌려주기 위해서는 pub/sub 에서도 broadcast 가 필요하며 성능적으로 우수한 Redis 의 pub/sub 구조를 사용하고 있다. 이 역시 실제 토스 증권의 시세 ..
1. 개요현재 개발 중인 것은 모의 주식 사이트로 매수, 매도 주문이 발생한다. 당연히 이러한 주문은 동시성 제어가 되어야하며 여러 방법들을 사용해보면서 성능과 함께 비교해보겠다. /** * 주문 생성 - 시장가 주문 */ @Override @Transactional public synchronized BuyOrderDto createMarketOrder(BuyOrderRequest buyOrderRequest){ // 현재 주문 금액 조회 BigDecimal currentPrice = stockInfoHolder.getCurrentPrice(buyOrderRequest.getSymbol()); // 계좌 조회 및 금액 차감 ..
모의 투자 사이트를 개발한 지 2주가 채 안되었다. 솔직히 더 매진해야하지만 IT 동아리도 참여하게 되었고 여러 사정으로 인해 이번 주말에 살짝 정체되었다. 그러한 김에 지금까지 개발된 내용과 함께 두 번째 개발기를 작성해보고자 한다.1. 지난 이야기지난 글에서는 다른 투자 사이트들에서 WS 을 통해 실제 어떻게 데이터를 주고받는 지 비교해보았고, 프론트엔드와 백엔드 관점에서 어떤 부분을 개발해야할 지 생각해봤다. 그 결과로 2주간을 정리하자면 다음과 같다.Cursor AI 는 신이다.역시 지금까지 개인 프로젝트를 못한다는 말은 핑계다.이 프로젝트에서 어떤 고민을 담을 수 있을까프론트엔드의 전체를 Cursor 를 통해서 진행하고 있다. 완벽하지는 않지만 프롬프트만을 이용해서 내가 원하는 화면을 그려내고 ..