-
Notifications
You must be signed in to change notification settings - Fork 1
2024.10.31 기획 미팅
박진명 edited this page Oct 31, 2024
·
1 revision
- 디자인
- DB 설계
- 발표 준비
- ~ 15:00 : 피그마 디자인(FE), ERD 설계(BE) 작업하기
- 15:00 : FE, BE 진행 상황 중간 공유
- 15:00 ~ 17:00 : 피그마 디자인(FE), ERD 설계(BE) 작업하기
- 17:00 : 분업한 내용 공유 및 발표 준비
- 21:00 : 멘토링 진행
- 경마와 같이 특정 주식을 선택하여 수익률이 높은 사람이 승!
- 위키를 보고 발표하기
- PPT와 같은 발표자료 구성해서 발표하기 ⭐
- 서비스의 목적, 핵심 기능, 설계 위주로!
- 그라운드 룰, 협업 방식 소개
5분 그라운드 룰 소개
5분 기능 소개
5분 피그마 DB 소개
- 팀원 소개.
- 그라운드 룰 소개.
- 커밋 컨벤션, 브랜치 전략 소개. (알파 브랜치?)
- 서비스 목적 소개.
- 서비스 핵심 기능 소개.
- feature list / 백로그 소개.
- 기술적 목표 소개.
- 기술 스택 소개.
- 아키텍처 소개.
- 현재 진행 중인 상황 소개.
- figma 스크린샷.
- ERD.
- Q&A
-
팀원 소개.
안녕하세요 Web 16조에서 기획 발표를 맡은 이시은입니다.
저희팀은 프론트 2명, 백 3명으로 구성되어 있습니다.
프론트는 고동우님, 서산님, 백은 김진님, 박진명님, 그리고 저, 이렇게 담당하고 계십니다.
-
그라운드 룰 소개.
- 일정.
- 협업에서 가장 중요하다고 할 수 있는 시간 약속을 준수하기 위해, 저희는 활동 시간을 준수하며 줌 미팅 시 3분 일찍 들어와 미팅을 준비하는 시간을 가져보려고 합니다.
- 또한 코어타임 이외 작업 때문에 컨디션이 나빠지는 경우를 방지하기 위하여 19시 이후 최대 3시간까지 작업 후 모든 작업을 종료하는 규칙을 세워보았습니다.
- 주마다 새로운 스프린트로 진입해야 하기 때문에 매주 월요일 스프린트 계획과 관련된 주간 회의 또한 진행하기로 결정하였습니다. 이 과정에서 작업 예상 시간 산정에 어려움이 있을 경우에는, 플래닝 포커와 같은 방식을 도입해보려 합니다.
- 코드 리뷰
- 저희 코드 리뷰는 Pull Request가 올라오면 각 분야끼리 간단한 방식으로 코드 리뷰가 진행됩니다. 코드 리뷰 방식은 뱅크 샐러드 코드 리뷰 방식을 참고해 중요도를 이모지로 표현해 남기는 방식으로 진행해보려고 합니다.
- 또, 매주 목요일 밤 시간대에 전체 코드에 대한 이해도를 높이기 위해서 간단한 그룹 리뷰 시간을 가지려고 합니다.
- 협업.
- 협업에 있어서는 서로 고민을 공유하고, 질문하며 함께 성장할 수 있는 환경을 만들어보려고 했습니다. 복잡한 문제가 있는 경우는 페어 프로그래밍 형태로도 진행해보려고 합니다.
- 일정.
-
커밋 컨벤션, 브랜치 전략 소개
- 커밋 컨벤션
- 깃 컨벤션과 관련해서 발표를 이어나가보겠습니다. 커밋은 이모지를 사용하여 통일성있게 진행해보려고 합니다.
- 브랜치 전략
- 저희 브랜치 전략은 프론트와 백으로 브랜치를 분리한 이후 feature 별로 추가적으로 브랜치를 분리하여 개발을 진행합니다. 기능 개발이 완료되는 대로 각 분야의 main 브랜치로 pull request를 요청하고 reviewer로 같은 분야의 팀원은 등록하여 프론트는 다른 프론트 팀원, 백엔드는 다른 백엔드 팀원들의 approve를 받으면 머지를 완료하도록 했습니다.
- 저녁 7시 전 모든 팀원들은 모여서 dev 브랜치에 front/main, backend/main 브랜치에 머지를 진행합니다.
- 백엔드의 경우 backend/main 이외에 alpha 브랜치를 만들어 클라우드에 배포하여 프론트엔드가 빨리 즉각적으로 활용할 수 있도록 합니다.
- 커밋 컨벤션
-
서비스 목적 소개.
- 서비스 이름
- 저희 서비스의 이름은 JuGa로, 주식의 ‘주’, Game의 ‘Ga’를 따 와 결정하였습니다. 저희 JuGa 서비스를 한 줄로 요약하면 ‘실시간 주식 데이터를 활용해 모의 투자를 경험하고, 친구들과 함께 성장할 수 있는 게임 서비스’ 라고 할 수 있습니다.
- 주식에 대해 잘 아시는 분들도 계시고, 잘 모르시는 분들도 꽤 계실텐데요. 주식에 대해 잘 모르신다면, 막연한 불안감과 낯섦 때문에 주식 투자가 꺼려지실 수도 있을 것 같습니다. 저희는 이러한 ‘주린이’들을 타겟으로 하여 가상머니를 통해 투자 경험을 쌓을 수 있도록 하려고 합니다. 또한 주식에 대한 어색함을 타파하기 위해, 익숙한 게임 요소를 통해 주식에 대한 친근감을 높여가는 것이 저희 서비스의 목표라고 할 수 있겠습니다.
- 서비스 이름
-
서비스 핵심 기능 소개.
- 실제 주식 투자 요소
- 저희 JuGa 서비스의 핵심 기능은 가장 기본적으로 실재 주식 정보를 실시간으로 받아와서 제공하는 기능에 있습니다. 사용자는 실재 주식을 사는 것과 유사하게 매입/매도를 진행할 수 있고 초기 시드 머니의 경우 최초 로그인시 천만원을 제공할 예정입니다.
- 게임적 요소
- 저희 서비스가 단순히 모의 투자 시뮬레이션이 아니라 모의 투자 게임인 이유는 주식에 대해 무섭게 생각할 수 있는 주식 초보들에게 게임이라는 가벼운 요소를 함께 넣어서 비교적 쉽게 다가올 수 있게 하기 위해서 였습니다. 따라서 저희 서비스에는 시간을 되돌리는 아이템이나 수수료를 없애주는 아이템 등을 추가하고 친구와 수익률을 대결하는 기능을 추가했습니다.
- 실제 주식 투자 요소
-
feature list / 백로그 소개.
- feature list
- feature list를 통해 세부 기능을 조금 더 자세히 설명 드리겠습니다.
- 우선 매도, 매수 등등 핵심 서비스를 이용하기 위한 회원가입 및 로그인 기능이 있습니다. 카카오 소셜 로그인을 통해 접근성을 높였고, 추가로 테스트 계정 제공을 통해 소셜 로그인을 하지 않고도 핵심 기능을 사용해볼 수 있도록 할 예정입니다.
- 실시간으로 갱신되는 주식 차트 및 거래 현황을 통해 주식에 대한 정보를 확인하고, 거래 기능을 통해 주식에 대한 매도와 매수가 가능합니다.
- 주식 종목은 셀 수 없이 많기 때문에, 필요한 종목만 확인 가능하도록 종목 검색 기능및 관심 종목 기능을 추가하였습니다. 관심 종목에 등록해둔 종목들은 5% 단위로 주가 변동이 있을 때마다 사용자에게 알람이 전송되도록 구현할 예정입니다.
- 친구 신청, 수락, 거절, 삭제가 가능하며, 친구와 함께 특정 주식 종목에 대해 주가 대결을 펼칠 수도 있습니다.
- 수수료 면제권, 거래 무효화권, 거래 내역 초기화, 주식 할인권 등등 아이템을 이용해 더 쉽고 재미있는 투자가 가능합니다.
- 마이페이지를 통해 내 정보, 포트폴리오, 보유 아이템, 내 친구를 볼 수 있습니다.
- 주식 회사에 대해 더 궁금하다면, 회사 상세 보기를 통해 디테일한 정보를 볼 수도 있고, 실시간 뉴스를 통해 새로운 정보를 얻을 수도 있습니다.
- 유저끼리의 정보 공유를 위해, 전체 유저에 대한 실시간 채팅 기능도 구현할 예정입니다.
- 오늘의 상/하위 top 5 종목을 통해 홈 화면에서 간단하게 특이 종목을 조회할 수 있습니다.
- 튜토리얼을 통해 게임 기능을 좀 더 살리려고 했고, 주린이를 타겟으로 한 만큼 주식 용어 사전을 구현해보려고 합니다.
- 추가로, 프로젝트 완료 이후 AI 종목 추천 기능을 추가해볼 예정입니다.
- 백로그
- 저희 백로그는 엑셀을 기반으로 작성하였습니다.
- product backlog 탭에서는 feature list를 기반으로 각 기능 별 태스크를 분리하였고 회의를 통해 팀원들과 상의하여 각 태스크의 priority 및 예상 소모 시간(estimate)를 작성하였습니다.
- 이후 이후 스프린트가 시작되는 월요일마다 iteration 탭에서 스프린트 동안 진행할 스프린트 백로그를 작성하고 매일 데일리 스크럼에 진행 상황을 체크해 번다운차트에 반영하여 나감으로서 진행상황을 추적해나갈 것입니다.
- feature list
-
기술적 목표 소개.
- FrontEnd & BackEnd 기술적 목표
- 저희 프로젝트에서 기술적 목표는 다음과 같습니다.
- FE에서는 실시간 상태관리, 부드러운 UI/UX 구현, 사용성 높은 페이지 구현 목표로 하고 있습니다.
- BE에서는 실시간 데이터 처리 시스템, 테스트 코드 작성, 보안, 성능 테스트 등이 있습니다.
- FrontEnd & BackEnd 기술적 목표
-
기술 스택 소개.
- 기술 스택은 이렇게 정리해봤습니다. React, NestJS를 활용해서 진행하려고 합니다.
-
아키텍처 소개.
- 저희 프로젝트의 소프트웨어 아키텍처에 대해 설명드리겠습니다.
- 인프라 측면에서는 NCloud를 활용하여 안정적인 서비스 운영 환경을 구축하려고 합니다. 데이터베이스는 서버에 직접 설치해서 운영하고, NestJS와 React로 수행하는 프로젝트는 Docker로 실행해 배포와 확장에 용이하도록 설계해보았습니다.
- 실시간 주가 데이터는 한국투자증권의 Open API를 통해 제공받으려고 합니다. WebSocket을 통해 실시간 데이터를 수신하여 저희 게임을 이용하는 사용자에게 즉각적인 주식 시장 정보를 제공합니다.
- 추가로, 네이버 뉴스 API를 이용해 주식과 관련된 정보를 사용자에게 보여줄 수 있도록 합니다.
- DevOps 환경으로 GitHub를 통한 버전 관리를 하고 github actions을 사용하여 CI/CD 파이프라인을 구축해 볼 예정입니다.
-
현재 진행 중인 상황 소개.
- figma 스크린샷.
- 마지막으로 현재 진행 중인 상황에 대해 설명 드리겠습니다. 피그마 제작과 ERD 제작의 경우 프론트/백 각각의 분야의 그룹원들이 서로 분업을 진행 중입니다. 피그마 제작의 경우 상세한 디자인 제작은 아직 미완료이고 전체적인 위치와 구조를 잡고 있습니다.
- ERD.
- DB 설계는 현재 이런 식으로 설계해보았습니다.
- 친구 table 관련해서는 현재는 view를 이용해 친구 리스트를 호출하고, 나중에 문제가 생기면 새로운 테이블을 추가해 관리해볼 예정입니다.
- 이후 API 호출 한도나 빠른 응답 시간을 고려하여 Redis 도입도 고려 중에 있습니다.
- figma 스크린샷.
-
Q&A
- [FE] 프론트엔드 기술스택
- [FE] 라이브러리 없이 차트 구현 이유
- [FE] Canvas API 사용방법
- [FE] 네비게이션 바 애니메이션 구현
- [FE] Socket.io 사용방법
- [FE] Tanstack Router에 대하여...
- [FE] Intl(Internationalization) API
- [FE] React Suspense 적용
- [FE] 한글 입력 방식의 유연성을 높인 검색 시스템 구현하기
- [BE] 백엔드 기술 스택
- [BE] SSE vs Socket.io
- [BE] Redis를 도입하게 된 계기
- [BE] ACG Rule을 활용한 Secure CI CD 파이프라인 구현
- [BE] Nginx 로드밸런싱을 통해 한국 투자 API 소켓 제한 극복
- [BE] 주가 지수 기능 개발 과정
- [BE] 매수 및 매도 기능 개발 과정
- [BE] 실시간 자산 조회 기능 개발 과정
- [BE] 단위 테스트
- [BE] redis를 이용한 한국투자 Open API 세션 관리
- [BE] 데이터베이스 인덱싱
- [FE] React에서의 DOM 요소 접근 (useRef vs getElementById)
- [FE] Outlet을 활용한 공통 레이아웃 관리
- [FE] react hooks가 특정 조건에서 실행되면 안되는 이유 & useQuery에 query function 매개변수가 undefined일 수도 있을 때 어떻게 해결할까
- [FE] cross‐domain 로컬 환경에서 cookie로 인증 처리하기 with vite proxy
- [FE] 크롬&사파리 Composition 차이
- [FE] useEffect 의존성 배열
- [BE] Naver Cloud Platform HTTPS 무응답 현상
- [BE] 한국투자 Open API에서 access token을 발급받지 못하는 문제
- [BE] 한국투자 Open API와 웹소켓 연결이 되지 않던 문제
- [BE] 한국투자 Open API 웹소켓 연결이 중단되는 문제
- [BE] 같은 주식 주문이 동시에 여러 번 체결되는 문제
- [BE] 한국투자 Open API Websocket 세션을 두 개에서 한 개로 변경하기
- [BE] Nginx 로드 밸런싱 중 Socket bad Request 발생하는 현상
- [BE] 매수/매도 체결 로직에 의해 redis pub/sub이 정상적으로 동작하지 않는 문제