Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FE] 우측 거래 관련 컴포넌트 기능 구현 #17

Open
novice1993 opened this issue Aug 28, 2023 · 0 comments
Open

[FE] 우측 거래 관련 컴포넌트 기능 구현 #17

novice1993 opened this issue Aug 28, 2023 · 0 comments
Assignees
Labels
FE Front End

Comments

@novice1993
Copy link
Contributor

기능

시장가 기준 상/하위 10개 거래가 항목 조회
거래 가격 및 수량 선택 (지정가/시장가 설정 기능)
매수/매도 전환
보유 현금/보유 주식 대비 최대 매수/매도량 안내
매수/매도 확인 모달 창
주문 결과 조회 (미체결, 체결 관련 내역)
체결 알림 설정 (토스트 메세지 팝업)

작업 예상 시간

ex)

@novice1993 novice1993 added the FE Front End label Aug 28, 2023
@novice1993 novice1993 added this to the Bare Minimum Requirement milestone Aug 28, 2023
@novice1993 novice1993 self-assigned this Aug 28, 2023
novice1993 added a commit that referenced this issue Sep 7, 2023
- 지정가/시장가 관련 기능 활용하지 않는 것으로 계획이 수정되어 관련된 코드 주석처리
- 진행 상황 고려하여 재사용 하거나, 사용하지 않기로 확정될 경우 주석 처리한 부분 및 기타 코드 (ex. redux-toolkit 관련 reducer 등) 삭제 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 7, 2023
- 서버에서 주가 정보를 fetching 한 후 이를 활용하여 주가 리스트 렌더링에 활용할 배열 데이터 생성하는 로직 구현 중
- 매수/매도 호가 및 거래량 관련된 데이터 포함하였으며, fetching 된 데이터에 포함되지 않은 일부 데이터 (주가 등락률) 관련한 로직 계산하는 로직 추가적으로 필요

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 종목 변경에 따라 주식주문란 상단의 종목명/코드가 변경되도록 코드 추가

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 본래 react-query 라이브러리 사용하였으나 @tanstack/react-query-devtools 사용을 위해 @tanstack/react-query 로 변경
* react-query-devtools 및 브라우저 개발자 모드 네트워크 탭을 확인해봤을 때 동일한 useQuery를 통해 동일한 queryKey를 부여한 API 요청도 최초 호출 후 캐싱된 데이터를 활용하는 것이 아닌, 동일한 데이터 중복 호출 중인 것으로 보여짐. 관련하여 1차적으로 기능 구현 마친 후 불필요한 호출 방지 위해 원인 파악 및 리팩토링 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 로그인/로그아웃 관련 기능구현으로 인한 브랜치 병합

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 불필요한 주석 삭제

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 지정가/시장가 선택 기능 제거로 인한 관련 파일/코드 삭제

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 종목 선택에 따라 주식주문 창 상단의 종목명/종목코드 변경되도록 설정
- 관련하여 필요한 변수명 (useQuery 활용하여 fetching 해온 데이터 변수명) 수정

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 주가 변동률 (전날 종가 대비, 당일 매수/매도호가 변동률) 계산에 필요한 로직 추가
- 전날 종가 관련하여 화~토요일은 전날 종가를 기준으로 하며, 일/월요일은 금요일 종가를 기준으로 함

Issues #17
novice1993 added a commit that referenced this issue Sep 8, 2023
- 주가 변동률 계산 로직 ( 금일 매수/매도 호가 - 전날 종가 / 전날 종가 * 100 )
- 주가 변동률 관련하여 코드 위치 조정 필요 ( 현재 : StockPriceList 컴포넌트 -> StockPrice 컴포넌트로 이동 필요)

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 종목 변경에 따른 주가리스트 변경 및 매수/매도 지정가 변경 기능 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 전체 매도/매수 거래량 대비 개별 매도/매수호가 거래량 비율 관련하여, 하단 바 형식으로 비율을 시각적으로 표현
- 종목 변경 시 해당 하단 바가 서서히 증가하는 애니메이션 효과 적용함

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 주식주문 창의 주가 리스트에서 특정 주가 클릭 시 발생하는 애니메이션 효과 추가

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 주식주문 창 주가리스트의 매도/매수호가 개수가 너무 적다고 판단됨 (매도호가 5개 + 매수호가 5개 = 총 10개)
- UX를 저해하는 요소라고 판단하여 fetching 해온 실제 호가를 바탕으로 약간의 더미 데이터 추가해주는 로직 생성
- 호가 간 가격차이 계산 후 매도/매수호가 더미데이터 각각 5개씩 추가하여 총 20개로 확장
- 더미 데이터로 설정한 가격으로는 거래가 불가하도록 설정해야하니, 더미로 추가한 호가 거래량은 0으로 설정 (선택해도 거래가 이루어지지 않음을 유저에게 인식)

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 주식주문 창의 거래가, 거래량 설정 기능 구현 완료
- 매수/매도 구분하여 적용되도록 기능 구현
- 보유자금 및 종목별 주식 Get API, 매도/매수 체결 API 구현 후 로직 추가 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 미로그인 상태에서 주식주문창 오픈 시 로그인 요청창 뜨도록 구현
- 로그인 버튼과 로그인 모달창 연결 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- StockOrderSection 내부 컴포넌트명 조금 더 직관적으로 수정
- 기타 변경 사항 : 더이상 사용하지 않는 더미 데이터 파일 삭제

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 주식 거래량(Volume) 관련 전역 상태 생성
- 기존에 지역 상태로 관리하였으나, 다수의 컴포넌트에서 활용되는 경우가 많아서 편의성 및 코드 간결화를 위해 전역 상태로 변경

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 주식주문 창의 매수/매도버튼 클릭했을 때 렌더링 되는 모달창 일부 구현 (거래량 0일 때 뜨는 알림문구)
- 아직 화면 및 기능 일부만 구현된 상태로, 추후 완성할 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 9, 2023
- 일부 컴포넌트 margin 값 세부 조정

Issues #17
novice1993 added a commit that referenced this issue Sep 10, 2023
- 컴포넌트 border 및 일부 텍스트 color 수정

Issues #17
novice1993 added a commit that referenced this issue Sep 10, 2023
- 기존 : 거래양을 이미 최대 거래량으로 설정한 뒤, 지정가를 높일 경우 변경된 최대 거래량으로 거래량을 자동으로 변경
- 최대 거래량보다 거래량을 높게 설정하고 매수/매도 버튼을 클릭할 경우 예외처리로 거래 불가 안내창을 띄울 예정이기 때문에 굳이 필요하지 않은 기능이라고 생각되어 삭제함

Issues #17
novice1993 added a commit that referenced this issue Sep 10, 2023
- 최대 구매 가능수량 초과한 값으로는 구매량 설정 못하도록 하는 로직 다시 복구
- 관련한 알림창 띄우는 것보다 초기에 설정을 못하도록 셋팅을 해놓은 것이 더 낫다고 생각되어 다시 복구기로 결정함
- 해당 기능 삭제 후 CSS 관련된 일부 수정 작업이 이루어진 상황이라, Git Reset이 아닌 다시 Commit 남기는 방법을 선택함

Issues #17
novice1993 added a commit that referenced this issue Sep 10, 2023
 - 가격설정 관련하여 현재 클릭 이벤트만 구현되어 있는 상황 (주가 리스트에서 직접 선택하거나, 상/하 버튼을 클릭하여 설정)
- input 엘리먼트에서 키보드로 직접 입력하는 기능이 필요하다고 생각되어 구현 중에 있음
- 로직 미완성된 상태이므로 브랜치 새로 따로 작업내용 저장함

Issues #17
novice1993 added a commit that referenced this issue Sep 10, 2023
- 데이터 fetching에 실패하거나, 받아온 데이터가 비어있는 경우 화면에 띄울 에러문구 화면 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 11, 2023
- 기존에는 클릭 이벤트로만 주가/거래량을 변경할 수 있었음
- 키보드 입력 이벤트를 추가하여 input 창에 직접 입력하여 설정할 수 있도록 기능 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 11, 2023
- 매수/매도 관련 경우의 수 고려하여 렌더링 되는 모달창 구분
- 매수/매도 관련 종목/거래가/거래량/총 거래가 정보 기입하여 구매 확인의사 확인하는 모달창까지 모두 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 12, 2023
- 매수/매도호가 관련 BE 데이터 증가로 인하여 화면에 렌더링 되는 주가 리스트 개수 증가 (기존에 활용하던 더미 데이터 로직 삭제)
- 주가변동률 계산 시 전날 주가 데이터가 넘어오지 않을 시 (데이터 초기화 등의 사유로) 임의로 전날 종가를 0으로 설정하여 처리
- 이후 예외처리 보완 예정이며 현재는 BE-FE 통합 테스트가 예정되어 있어 시간 문제로 임의로 0으로 설

Issues #17
novice1993 added a commit that referenced this issue Sep 12, 2023
- 주식주문창 OFF 상태일 시 브라우저 해상도에 따라 일부 노출되는 문제 발견되어 관련 CSS 수정 (-400px에서 -50vw로 수정)

Issuse #17
novice1993 added a commit that referenced this issue Sep 12, 2023
- BE 에서 받아오는 매도/매수호가 데이터 중 price 값이 0인 경우가 예외적으로 발생함 (한국투자증권 API를 기반으로 하여 BE 에서 수정 불가)
- price가 0일 경우 주가리스트에 포함해서 유저에게 보여주는 의미가 없기 때문에 필터링 하여 제거하여, price가 0인 경우가 발생하면 총 호가 개수가 20개 미만으로 설정됨 (BE 에서 매수/매도호가 각각 10개씩 총 20개 데이터를 받아오지만, price가 0인 경우를 필터링 하여 제거하기 때문에)
- 이러한 예외상황 발생하더라도 항상 주가 리스트에 호가가 총 20개 렌더링 될 수 있도록 FE에서 더미데이터 추가하는 로직 추가 (해당 더미 price 관련하여 거래량 0으로 설정하여, 유저가 해당 가격 지정하더로 거래가 불가함을 인지시킴 + 안내 메세지 띄워서 명확히 인식시킴)

Issues #17
novice1993 added a commit that referenced this issue Sep 12, 2023
- 주식 매수/매도 관련 서버 통신 로직 작성 후 적용하였으나 오류 발생하는 상황 (500 Error)
- BE 담당자와 소통하여 문제 해결할 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 12, 2023
- 거래량 유무에 따라 거래 가능여부를 안내하는 메세지 조건부 렌더링 되도록 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 거래량 유무에 따른 거래 가능 여부 안내 메세지 오류 수정 (이전 테스트 코드에서 설정한 onBlur, onFcuss 이벤트로 인해 발생한 오류로, 해당 이벤트 더이상 필요치 않아서 삭제처리 함)

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 주식주문 시 필요한 회원별 보유현금 데이터 렌더링 및 처리 가능
- 매도 거래 관련 최대 거래량 설정 시 현재 각 회원이 보유한 회사별 주식만큼만 설정할 수 있도록 설정 (보유 주식 중 거래량이 없어 거래대기로 분류된 주식 수도 차감)

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 매도/매수 발생 시 보유 현금 및 최대 매도가능 주식 수 갱신되도록 기능 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 로그인 관련 기능 구현으로 인한 브랜치 병합

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 로그인 비활성화 살태일 때는 보유 현금 등 회원관련된 정보를 fetching 하지 않고, 로그인 활성화 시 fetcing 하도록 로직 구현

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 주식주문 관련 정보 중 보유자금, 거래내역 등 로그인과 결부된 데이터 fetching 관련된 로직 일부 수정
- 사유 : fetching 로직의 문제가 아닌 현재 구현된 로그인 방식이 문제의 원인이므로 (Access Token이 만료되었음에도 갱신 없이 자동 로그인 되고 있었음) fetching 관련된 로직은 이전의 코드로 다시 복구 (더 깔끔하고 간결하기 때문에)
- 중간에 타 commit이 포함되어 있어 Git reset이 아닌 복구 후 commit 남기는 방법을 택함 (일부 코드 몇줄만 수정하면 되므로)

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 거래시점에 거래량 존재하지 않아 미체결로 분류된 주문 관련하여 주문 취소 기능 구현
- 취소 의사 이중 확인을 위한 모달창 필요한 상황이나, BE 담당자와 API 관련 추가 논의 후 확정되면 추가로 구현할 예정임

Issues #17
novice1993 added a commit that referenced this issue Sep 13, 2023
- 조회하는 회사 변경 시 자동으로 구매수량 0으로 설정되도록 수정 (이전 회사에서 조회하던 데이터가 정리되지 않아, 보유주식 0임에도 거래수량으로 설정이 가능한 오류가 존재하여 수정)

Issues #17
novice1993 added a commit that referenced this issue Sep 14, 2023
- 최대 매도수량 계산 시 이미 주문하였으나 거래량이 없어 미체결로 편입된 주식도 매도가능 수량에서 차감하는 로직 기존이 구현
- 해당 로직에 오류가 존재하여 수정함 (미체결 주식수를 차감했어야 하나, 미체결 건수를 차감해서 오류 발생 Ex. 주식 3주를 매도 대기하였으나, 이것이 1건의 주문으로 발생했다면 3을 차감하는게 아니라 1을 차감하고 있어서 제대로 주식 수 만큼 차감할 수 있도록 수정)

Issues #17
novice1993 added a commit that referenced this issue Sep 14, 2023
- 우측 메뉴탭 및 메인페이지 레이아웃 변경으로 인한 브랜치 병합

Issues #17
novice1993 added a commit that referenced this issue Sep 14, 2023
- 최대 매도수량 계산 시 [보유 주식]에서 [매도 주문을 넣었으나 거래량이 없어 미체결 목록으로 넘어간 주식 수] 차감
- 기존에 BE 에서 해당 계산을 처리하지 않고 데이터를 송신하여 FE 에서 직접 계산하였으나, BE 에서 로직 구현하여 FE 에서 활용 중이던 로직 삭제
- 이외 주식주문 컴포넌트 기능 및 레이아웃 세부사항 변경 (API 주소 변경, 통신 테스트 코드 임시적으로 추가, 레이아웃 조정 위한 CSS 변경 등)
- 주식주문 외 변경사항 (TapContainerPage 파일에서 import 경로 관련 오류가 존재하여 수정 후 함께 Commit)

Issues #17
novice1993 added a commit that referenced this issue Sep 14, 2023
- 거래시점에 지정가 관련 거래량이 부재하여 미체결 된 거래 취소 기능 구현 (관련 UI도 구현)
- 관련하여 BE 로직에 약간의 오류 존재하여 (주문 요청해놓은 수량 중 일부만 취소하여 전체 수량이 모두 취소됨) BE 로직 수정 후 FE 로직도 수정 필요할 시 변경 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 14, 2023
- 주문결과 관련 컴포넌트 (미체결 목록 컴포넌트) CSS 일부 수정

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 전날 종가 대비 현재 매수/매도호가 주가 변동률 계산하는 로직 단순화 (기존에 활용하던 API가 아닌, 다른 API 활용 시 훨씬 간단하게 계산이 가능하여 로직 단순화)

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 기존 : 미체결 목록만 확인 가능
- 개선 : 미체결 목록 및 체결 목록 모두 확인 가능하도록 구현
- 체결 목록  관련 UI 추후 일부 수정할 예정

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 전날 종가 대비 현재 매수/매도호가 가격 변동률 로직 오류 존재하여 일부 수정

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 주식주문 요청 시 거래유형 (체결, 미체결) 에 따라 관련 목록 보여주는 거래내역창 자동으로 전환되도록 설정
- Ex. 현재 화면에서 체결창을 보여주고 있더라도 미체결 거래가 발생하면 자동으로 미체결 목록창으로 전환

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 거래결과 목록 (체결/미체결) 렌더링 시 발생하는 애니메이션 효과 추가

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 체결내역 목록 관련 컴포넌트 UI 구현
- BE 데이터 API 확정 시 내부 요소 일부 변경될 수 있음

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 매수/매도 요청 시 알림 토스트 메시지 구현 (react-toastify 라이브러리 활용)

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 미체결 거래내역 취소 시 좌측 하단에 토스트 메세지 알림 추가

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 미체결 거래 취소 관련 토스트 메시지 문구 수정

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 체결/미체결 거래내역 창 전환 시 가장 최근 거래가 바로 보이도록 설정

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 주가주문의 주가목록창이 마운트 되면 매수/매도호가 중 정중앙 값이 가운데 위치하도록 이벤트 설정하였으나 실행되지 않는 오류 해결

Issues #17
novice1993 added a commit that referenced this issue Sep 15, 2023
- 로그인/로그아웃 관련 기능 구현으로 인한 브랜치 병합

Issues #17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FE Front End
Projects
None yet
Development

No branches or pull requests

1 participant