- Today
- Total
목록개발팁저장소/react (25)
Act99 기술블로그
오늘은 코드정리를 할 예정이다. 지금 작성한 코드의 문제점들은 1. [object1, object2....] 배열 요소를 각각의 배열로 변화시키는게 너무 많다. // array 데이터들 분류 const stockOpen = stockArray.map((item) => item.open); const openArray: number[] = []; stockOpen?.forEach((open) => openArray.push(open)); const stockClose = stockArray.map((item) => item.close); const closeArray: number[] = []; stockClose?.forEach((close) => closeArray.push(close)); const ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kJjXs/btrmLBYysWr/CSgwRuUtIZu0EKj4ylNFE0/img.png)
다음은 볼린저 밴드를 만들 차례이다. 볼린저 밴드란 존 볼린저의 주가 기술적 분석 도구이며, 이동평균선을 추세중심선으로 사용하고, 상하한 변동폭은 추세중심선의 표준편차로 계산한 밴드이다. 볼린저 밴드의 상한선: 20일 이평선 값 + ( 20일 동안의 주가 표준편차 값 ) * 2 볼린저 밴드의 하한선: 20일 이평선 값 - ( 20일 동안의 주가 표준편차 값 ) * 2 볼린저 밴드 구름대 형성 -> 상한선과 하한선 갭 => (상한선 – 하한선) / 중심선 이다. 이를 이용해 볼린저 밴드를 만들 것이다. 먼저 20일간의 주가 표준편차 값을 구해야 한다. ** 밑그림** 평균값 clo20ArrayBol = clo20Array.slice(index, (index+20)) -> 20개씩 추출 clo20ArrayB..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wZmWG/btrmKiEYTQU/o4PIMSEGYHbKM1Oo3NfHDK/img.gif)
저번 글에서 봤듯이 차트를 확대할 때, 과거 데이터를 가져오는 문제가 있었다. https://bugerstory.tistory.com/35 [React] 직접 주가 캔들 차트 & 거래량 바 차트 만들기4 - onWheel 을 통해 데이터값을 추가시키거나 오늘은 onWheel 을 통해 데이터 값을 추가 또는 감소시키는 작업을 했다. 그 전에 만들었던 코드를 일단 정리했다. stock.tsx 파일에서 불러오는 데이터를 handmade-chart.tsx 로 옮겼으며, 안쓰는 코드들 bugerstory.tistory.com 이 문제를 수정하기 위해 slice를 사용했다. const [dataLength, setDataLength] = useState(24); const stockData = data?.gsSto..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ehViE1/btrmEFHLdVy/6OQfEBxIeDdFc4f4enuh50/img.gif)
오늘은 onWheel 을 통해 데이터 값을 추가 또는 감소시키는 작업을 했다. 그 전에 만들었던 코드를 일단 정리했다. stock.tsx 파일에서 불러오는 데이터를 handmade-chart.tsx 로 옮겼으며, 안쓰는 코드들을 다 삭제시켰다. 중복 코드 정리와 코드축소화 작업, 컴포넌트 별 분류 작업은 오늘 할 작업을 마친 후 작업할 예정이다. 먼저, onWheel 로 불러올 데이터 량을 핸들링 할 필요가 있었다. const stockData = data?.gsStock.map((item) => item); const stockArray: any[] = []; stockData?.forEach((item) => stockArray.push(item)); console.log(stockArray); co..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ddK08D/btrmwY2oi3r/r23tjvNULzeHqwoGJZLAn1/img.png)
먼저 오늘 한 결과물은 이렇다. 저번 시간에는 차트구현까지는 했으나, 데이터 값 대비 차트 구현이 정확하지 않았으며, 화면 리사이즈를 할 때 오류가 생겼다. (몇개의 데이터만 변화) 따라서 유지보수에도 편하고, 화면 리사이즈 시 자연스럽게 변하며, 차트를 좀 더 정밀하게 구현할 필요가 있었다. 먼저, 화면 리사이즈부터 다루었다. ReactHook 을 이용해 사이즈 변화상태마다 width, height 값을 구할 예정이다. (tailwindCSS 를 사용하면 편하지만, 정확한 width 값과 height 값이 필요했으며, Hook 연습도 필요했기 때문에 직접 구현했다.) Hook Docs를 보면 useWindowSize 를 이용하는 코드가 나와있다. (공부를 목적으로 하면 직접 타이핑하면서 작성할 것을 추..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kKSNN/btrmwQowUQB/kEKYHW1NK7NHBhETwvDkp0/img.png)
이번에는 캔들 차트를 만들 차례이다. 기본틀은 거래량 차트 만들기와 같으며, 캔들차트 구현이라는 점에서 다르다. https://bugerstory.tistory.com/32 [React] 직접 주가 캔들 차트 & 거래량 바 차트 만들기 (라이브러리 x) (SVG 연습용) React-Google-Chart 를 사용하던 중, 직접 차트를 만들고 싶은 충동이 생겼다. 먼저 handmade-chart.tsx 를 만들어주고 svg 를 이용해 차트 틀부터 만들어 주었다. (CSS 경우 tailwind를 사용하였다.) - handmade-.. bugerstory.tistory.com 해야 할 일 1. 데이터 불러오기 2. 금액 최소값과 최대값을 구한 후, 7개의 구분선으로 나누기. 3. 시가와 종가 데이터로 바 차트..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b65vON/btrmhJ4MpER/eQTaGzXTsEchuVQO12pvyK/img.png)
React-Google-Chart 를 사용하던 중, 직접 차트를 만들고 싶은 충동이 생겼다. 먼저 handmade-chart.tsx 를 만들어주고 svg 를 이용해 차트 틀부터 만들어 주었다. (CSS 경우 tailwind를 사용하였다.) - handmade-chart.tsx import React from "react"; const SVG_CHART_WIDTH = 1600; const SVG_CHART_HEIGHT = 400; const SVG_VOLUME_WIDTH = 1600; const SVG_VOLUME_HEIGHT = 400; export const HandmadeChart = () => { const x0 = 50; const xAxisLength = SVG_CHART_WIDTH - x0 *..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/WcIfG/btrmhKhONRi/bsvWbJ6A3xViKbY9IDb6uK/img.png)
저번에 Nestjs 와 postgresql 을 이용해 주식데이터를 localhost:4000 에 띄워놨다. https://bugerstory.tistory.com/28 [Nestjs] CSV 파일을 postgresql 테이블로 옮기고 localhost 에 띄우기 필자는 현재 주식정보를 RestAPI 로 띄운 후, React를 이용해 브라우저 상에서 주식 차트를 구현시키려고 한다. 프론트엔드 공부를 하려했지만, 주식 api를 직접 빌드해서 사용하고 싶었기 때문에 작 bugerstory.tistory.com React 를 이용해 브라우저상에 차트를 띄울 예정이며, 먼저 apollo와 apollo-toolings 를 설치했다. https://github.com/apollographql/apollo-toolin..