- 스톡스톡 바로가기
- 각종 주식 정보와 커뮤니티, 모의투자 기능이 있는 주식 웹 서비스
나만의 주식경험을 커뮤니티에 공유해 주세요 !
- 모의투자 : 매도매수 기능, 지정가 주문 기능, 수익률 기준 유저별 랭킹 부여
- 종목정보 : 실시간 주가, 주가 그래프, 뉴스, 재무지표 등 투자 기초 자료 제공
- 커뮤니티 : 게시글, 댓글, 좋아요, 활동별 뱃지 부여, 실시간 채팅
- 유저친화 : 다크모드, 이벤트 알람, 사용법 소개 서비스 제공
이름 | 주특기 | 담당 기능 |
---|---|---|
김학준 | BE | 각종 종목 정보(차트,현재가,기사크롤링,랭킹,종목리스트) 불러오기 및 갱신 스케쥴링 / 모의투자 매매 / 게시글 CRUD / 랭킹 / 깃액션배포 / 구글 로그인 |
민지영 | BE | 각종 종목 정보(재무지표,증시인덱스) 불러오기 / 수익률 갱신 / 댓글, 좋아요, 마이페이지, 계좌 CRUD / SSE 알람연동 / 채팅 / 카카오 로그인 |
김승원 | FE | 커뮤니티 CRUD / 좋아요 / 관심종목 / 랭킹보드 / 알람 / 유저정보 수정 / 계좌개설 / 업적 |
황준수 | FE | 레이아웃 / 댓글 CRUD / 실시간 채팅 / 그래프 / 모의투자 / 주식정보 불러오기 / 게시글 페이지 |
홍준형 | FE | 소셜로그인(카카오, 구글) |
- Language:
java
,python
- Framework:
SPRING
,SPRINGBOOT
,FLASK
- Build Tool:
Gradle
- DB:
MySQL
,MongoDB
,Redis
- Server:
AWS EC2
- Other Tools :
Git
,Github
,swagger
,AWS S3
,AWS CodeDeploy
,WebSocket
,SSE
,OAuth
,notion
,slack
Notion: API 명세서 바로가기
Swagger: https://server-address.shop/swagger-ui.html
Notion: ERD 바로가기
- mySql은 딕셔너리, 이중리스트 등의 데이터를 관리하기엔 유연하지 못하고, 캐싱db로 부적합
- NOSQL 중 가장 익숙하며, RDS와 비슷한 클라우드 환경을 제공하는 mongoDB로 종목정보 데이터를 별도 관리
- Redis로 캐싱을 수행하고, 메세지 브로커로서도 활용
- 현재가 갱신 시점마다 전 유저의 수익률 계산 및 갱신 시 서버 과부하가 염려
- 전 유저 갱신이 아닌 수익률 조회 요청 건마다 갱신 및 보유종목 테이블에 평균매수가 필드 생성 후 매수 시마다 반영하여 수익률 계산 시 편리하도록 구현
- 탈퇴하는 회원이 관여한 게시글의 댓글, 추천, 비추천 개수 갱신 문제
- 상황: 게시글 엔티티에 각 요소 개수 필드 생성후 관련 api 호출마다 카운팅
- 방안 1:집계할 때마다 db를 통해 각 요소 카운팅
- 방안 2:탈퇴 요청 처리할 때 관여한 게시물을 db에서 모두 조회하여 개수 반영
- 둘 다 db에 많은 쿼리가 나가지만, 회원탈퇴 api가 게시글 조회 api보다 현저하게 적은 빈도수로 사용될 것이므로 탈퇴 시 처리하는 방향으로 결정
- EC2 배포 후 시간 관련 데이터가 UTC 기준으로 조회됨
- DB에는 한국 시간이 올바르게 저장되나 조회 값이 다름
- RDS, EC2의 timezone을 전부 한국으로 세팅
- main application 클래스에서 @PostConstruct로 타임존을 한국에 맞게 설정하여 해결