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

Dev be -> dev #300

Merged
merged 278 commits into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
278 commits
Select commit Hold shift + click to select a range
f0c72df
Feature/#93 - 좋아요 기능 구현 (#193)
xjfcnfw3 Nov 19, 2024
74220b1
✨ feat: cors 허용 설정
xjfcnfw3 Nov 20, 2024
c2f20d0
♻️ refactor: 잘못된 파일명 수정
xjfcnfw3 Nov 20, 2024
8f16568
Feature/#92 - 채팅 좋아요 취소 기능 구현 (#197)
xjfcnfw3 Nov 20, 2024
16e7592
✅ test: datasource mock 타입 에러 수정
xjfcnfw3 Nov 20, 2024
5160dc5
♻️ refactor: 채팅 스크롤 중복 로직 제거
xjfcnfw3 Nov 20, 2024
6a56cc1
✨ feat: detail 완성
swkim12345 Nov 20, 2024
8f5f772
✨ feat: 좋아요 순으로 채팅 정렬 기능 구현
xjfcnfw3 Nov 20, 2024
cdcaf84
✨ feat: 좋아요 순 채팅 스크롤 엔드포인트 구현
xjfcnfw3 Nov 20, 2024
8e27f13
✨ feat: chat likeCount 인덱스 설정
xjfcnfw3 Nov 20, 2024
0dd1b70
♻️ refactor: 채팅 스크롤 쿼리 빌더 중복 코드 제거
xjfcnfw3 Nov 20, 2024
5e7e4b0
✨ feat: 주식 소유 확인 엔드포인트를 쿼리로 받도록 변경
xjfcnfw3 Nov 20, 2024
ca6f156
♻️ refactor: tR_IDS로 리터럴 삭제
swkim12345 Nov 20, 2024
2429423
🐛 fix: production 모드일때에만 작동하게 변경
swkim12345 Nov 20, 2024
b773169
♻️ refactor: 리터럴 코드 제거 - tr_id
swkim12345 Nov 20, 2024
8f30d02
✨ feat: token retry 로직 추가
swkim12345 Nov 20, 2024
364f833
💄 style: stock controller import 순서 수정
xjfcnfw3 Nov 20, 2024
b097178
✨ feat: custom filter 추가, exception도 추가
swkim12345 Nov 20, 2024
adf6ac5
✨ feat: 주식을 소유한 사용자만 채팅 가능하도록 구현
xjfcnfw3 Nov 20, 2024
38c158b
✨ feat: 유저 서브네임 생성 로직 구현
xjfcnfw3 Nov 20, 2024
faa77af
✨ feat: 멘션 엔티티 구현
xjfcnfw3 Nov 20, 2024
8b80865
✨ feat: 특정 유저를 멘션하는 기능 구현
xjfcnfw3 Nov 20, 2024
9f28b3a
🐛 fix: minute fix per config
swkim12345 Nov 20, 2024
54651bf
🐛 fix: minute data 시간 체크 추가
swkim12345 Nov 20, 2024
db309d3
Merge branch 'dev-be' into feature/#10
swkim12345 Nov 20, 2024
433cc93
✨ feat: 웹소켓 게이트 경로 변경
xjfcnfw3 Nov 20, 2024
0b467ab
Feature/#104 - 좋아요 순 스크롤 기능 구현 (#199)
xjfcnfw3 Nov 20, 2024
6f6622a
Feature/#115 - 주식을 소유한 사람이 채팅방 전체에 메시지를 보낼 수 있다. (#200)
xjfcnfw3 Nov 20, 2024
3b543a6
🐛 fix: output 파일 삭제, DI, 로직 변경(isMarketOpenTime이 정반대로 구현되어 있었음)
swkim12345 Nov 20, 2024
d6e5739
🐛 fix: 웹 소켓 비어있는 쿠키 에러 문제 해결
xjfcnfw3 Nov 20, 2024
6752e6d
Bug/#202 - 웹 소켓 비어있는 쿠키 에러 수정 (#204)
xjfcnfw3 Nov 20, 2024
4dcaa31
♻️ refactor: openapi scraper service 에서 안 쓰이는 클래스 삭제
swkim12345 Nov 20, 2024
fd56fe0
Feature/#10 detail 구현, minute 구현 변경 (#201)
xjfcnfw3 Nov 21, 2024
31b77ff
🐛 fix: injectable하게 변경, 이전 websocket 코드 삭제ㅔ
swkim12345 Nov 21, 2024
3978d00
✨ feat: websocket 연결 추가
swkim12345 Nov 21, 2024
d157f1e
✨ feat: live data 추가
swkim12345 Nov 21, 2024
f00641d
🐛 fix: 기존 코드에서 object 검사 로직 변경
swkim12345 Nov 21, 2024
51cf720
♻️ refactor: eslint 준수
swkim12345 Nov 21, 2024
6135a87
✨ feat: 주식 데이터 조회 엔드포인트 통합
xjfcnfw3 Nov 21, 2024
13f5cfa
Merge remote-tracking branch 'origin/dev-be' into feature/#207
xjfcnfw3 Nov 21, 2024
46ba8aa
💄 style: 큰 따옴표 제거
xjfcnfw3 Nov 21, 2024
386f324
🐛 fix: kospi stock 데이터 추가, 코드 리팩토링
swkim12345 Nov 21, 2024
1554926
✨ feat: 쿠키 sameSite 옵션 수정
xjfcnfw3 Nov 21, 2024
7b0049f
Feature/#207 - 주식 controller 엔트포인트 통합 (#209)
xjfcnfw3 Nov 21, 2024
d4abdcb
✨ feat: 쿠키 sameSite 옵션 재설정
xjfcnfw3 Nov 21, 2024
8e7e73c
🐛 fix: detail 항목 해결
swkim12345 Nov 21, 2024
b92e3e6
🐛 fix: detail NaN 임시 해결
swkim12345 Nov 21, 2024
b1b8364
Feature/#10 실시간 데이터 수집 추가, pingpong 추가 (#208)
swkim12345 Nov 21, 2024
71fd726
Feature/#211 - sameSite 옵션 수정 (#212)
xjfcnfw3 Nov 21, 2024
a393cbb
🐛 fix: type ws 추가
swkim12345 Nov 21, 2024
a0ce639
🐛 fix: type ws 추가 (#214)
swkim12345 Nov 21, 2024
85d8ae0
🐛 fix: try catch 추가
swkim12345 Nov 21, 2024
e46e103
🐛 fix: 커스텀 필터에 try-catch 추가
swkim12345 Nov 21, 2024
dffce0e
모든 곳에 trycatch 추가 (#215)
swkim12345 Nov 21, 2024
4a1ad27
✨ feat: 쿠키 sameSite 옵션 재설정
xjfcnfw3 Nov 21, 2024
6d75fbc
Feature/#216 - 쿠키 도메인 설정 (#217)
xjfcnfw3 Nov 21, 2024
bf74172
✨ feat: 채팅 사용자 닉네임 정보 추가
xjfcnfw3 Nov 21, 2024
0f5585f
Feature/#218 - 채팅에 사용자 닉네임 정보 추가 (#219)
xjfcnfw3 Nov 21, 2024
9e97858
✨ feat: 쿠키 옵션 초기화
xjfcnfw3 Nov 21, 2024
949878f
Feature/#220 - 쿠키 옵션 초기화 (#221)
xjfcnfw3 Nov 21, 2024
e1c702a
🐛 fix: websocket 임시 수정
swkim12345 Nov 22, 2024
e55cadd
✨ feat: 테스터 유저 생성 기능 구현
xjfcnfw3 Nov 23, 2024
fc9adbd
🚚 chore: passport local 패키지 설치
xjfcnfw3 Nov 23, 2024
07d2a82
✨ feat: 테스터 유저 service 구현
xjfcnfw3 Nov 23, 2024
2bc7247
✨ feat: 테스터 유저 strategy 구현
xjfcnfw3 Nov 23, 2024
1de6bc2
✨ feat: 테스터 유저 guard 구현
xjfcnfw3 Nov 23, 2024
258044b
✨ feat: 테스터 유저 로그인 기능 구현
xjfcnfw3 Nov 23, 2024
afb3bf3
♻️ refactor: google strategy 더이상 사용하지 않는 의존성 제거
xjfcnfw3 Nov 23, 2024
8cbd2e4
🐛 fix: openapiPeriodData 수정 - 불필요한 private, filter 삭제, 로직 변경
swkim12345 Nov 24, 2024
74875eb
🐛 fix: openapiToken - custom filter 삭제, 불필요한 private 삭제, try-catch로 변경
swkim12345 Nov 24, 2024
ff5e7bb
✨ feat: priority queue 추가
swkim12345 Nov 24, 2024
ab4e821
🐛 fix: type 수정 - undefined 추가 및 확인
swkim12345 Nov 24, 2024
b038411
♻️ refactor: websocket return 값 parse 분리후 테스트 추가
swkim12345 Nov 24, 2024
0a56bb5
♻️ refactor: parse stock data를 다른 함수로 분리
swkim12345 Nov 24, 2024
41d2c85
♻️ refactor: web socket client 리팩토링
swkim12345 Nov 24, 2024
46aaf9b
♻️ refactor: websocket Client 리팩토링 - initOpen, close등으로 분리
swkim12345 Nov 24, 2024
8562e20
🐛 fix: openapilive data 수정
swkim12345 Nov 24, 2024
a188a03
♻️ refactor: websocket client service 수정
swkim12345 Nov 24, 2024
df6709c
♻️ refactor: api 폴더 이동
swkim12345 Nov 24, 2024
f612b6e
🐛 fix: websocket 에러 해결, import, DI 문제 해결
swkim12345 Nov 24, 2024
441926f
🐛 fix: stock gateway 수정, websocket - client 서빙 구조 변경
swkim12345 Nov 24, 2024
973733b
🐛 fix: 주식 상세 데이터 name 추
swkim12345 Nov 24, 2024
cdfd1f8
Revert "🐛 fix: stock gateway 수정, websocket - client 서빙 구조 변경"
swkim12345 Nov 24, 2024
fd85580
filter 삭제, 핵심함수 private 삭제, 우선순위 큐 만들기, websocket 데이터 등록 관련 구조 변경 (#233)
swkim12345 Nov 24, 2024
9b395d3
♻️ refactor: stock detail 기본쿼리가 아닌 left join 으로 변경
swkim12345 Nov 24, 2024
7cc8591
stock detail 기본쿼리가 아닌 left join 으로 변경 (#236)
swkim12345 Nov 24, 2024
b71839a
✨ feat: 유저 랜덤 닉네임 변경
xjfcnfw3 Nov 25, 2024
22d60c6
✨ feat: 테스터 로그인 엔드포인트 swagger 설정
xjfcnfw3 Nov 25, 2024
cb22ad5
Feature/#230 - 테스터 유저 기능 구현 (#238)
xjfcnfw3 Nov 25, 2024
996b64a
✨ feat: 랜덤 닉네임 상수 추가
xjfcnfw3 Nov 25, 2024
e82a6dd
Bug/#235 websocket 버그 해결, token db에 저장 (#240)
swkim12345 Nov 25, 2024
44bb8ec
✨ feat: 거래중인 종목만 검색
xjfcnfw3 Nov 25, 2024
46a9b28
Bug/#242 - 커밋되지 않는 상수 추가 (#243)
xjfcnfw3 Nov 25, 2024
3d82534
Merge branch 'dev-be' into feature/#110
xjfcnfw3 Nov 25, 2024
a2c49b0
🐛 fix: 중복된 닉네임 테스터 에러 수정
xjfcnfw3 Nov 25, 2024
d0fadf7
✨ feat: 채팅으로 멘션을 진행
xjfcnfw3 Nov 25, 2024
ba47d8b
✨ feat: 멘션 연관관계 설정
xjfcnfw3 Nov 25, 2024
2bc7699
🐛 fix: 잘못된 검증으로 멘션이 안되는 문제 해결
xjfcnfw3 Nov 26, 2024
299d3b7
✨ feat: 채팅스크롤에서 멘션 필드 추가
xjfcnfw3 Nov 26, 2024
52f830f
✨ feat: 닉네임과 서브네임으로 유저 닉네임 검색
xjfcnfw3 Nov 26, 2024
7621b73
✨ feat: 서브네임 like 적용
xjfcnfw3 Nov 26, 2024
eafa2b3
livedata 수집 추가 + openapi로 장시간,마감 변경 로직, token을 주입할 수 있게 변경 (#246)
swkim12345 Nov 26, 2024
0672bf4
🐛 fix: 주식 컨트롤러에서 잘못된 경로 매핑문제 해결
xjfcnfw3 Nov 26, 2024
7799a4c
Feature/#110 - 특정 사용자를 멘션한다. (#249)
xjfcnfw3 Nov 26, 2024
76f6de1
Feature/#251 - 주식 컨트롤러 잘못된 경로 매핑 문제 해결 (#252)
xjfcnfw3 Nov 26, 2024
3ed0e29
Bug/#250 stock data 문제 해결 (#256)
swkim12345 Nov 26, 2024
a2cc91a
✨ feat: 변동률 랭킹 엔티티 구현
xjfcnfw3 Nov 26, 2024
2779b81
✨ feat: 변동률 랭킹 api 데이터 수집
xjfcnfw3 Nov 26, 2024
ee5e460
💄 style: 변동 랭킹 주식 관련 코드 eslint 형식으로 수정
xjfcnfw3 Nov 26, 2024
e1ceb5c
✨ feat: 랭킹 api 데이터를 스크롤
xjfcnfw3 Nov 26, 2024
2ab7a9c
Merge remote-tracking branch 'origin/dev-be' into feature/#253
xjfcnfw3 Nov 26, 2024
ca95b47
Bug/#257 detail 로직 변경 (#258)
swkim12345 Nov 26, 2024
b68dce1
Merge branch 'dev-be' of https://github.com/boostcampwm-2024/web17-ju…
xjfcnfw3 Nov 27, 2024
a62b313
🐛 fix: openApiToken 타입 변경으로 인한 발생한 오류 수정
xjfcnfw3 Nov 27, 2024
d3b6d65
✨ feat: 구글 로그인 리다이렉트 주소 임시로 변경
xjfcnfw3 Nov 27, 2024
ec540c4
Feature/#253 - 가격 상승률 및 하락률 데이터 수집 (#260)
xjfcnfw3 Nov 27, 2024
743dee3
✨ feat: 사용자 주식 삭제를 stock id 값을 통해 진행하도록 변경
xjfcnfw3 Nov 27, 2024
54a4d6d
✨ feat: 사용자 소유 주식 리스트 제공 엔드포인트 구현
xjfcnfw3 Nov 27, 2024
87f5d94
Feature/#268 - 주식 소유 리스트 조회 구현 및 삭제 로직 변경 (#270)
xjfcnfw3 Nov 27, 2024
00ef29d
✨ feat: 변동률 랭킹 조회시 라이브 데이터 수집
xjfcnfw3 Nov 27, 2024
26243dd
✨ feat: 구글 로그인 후 리다이렉트 url 변경
xjfcnfw3 Nov 27, 2024
5e87a5a
Feature/#271 - 변동률 데이터 조회 시 라이브 데이터도 조회 (#272)
baegyeong Nov 27, 2024
6294a4d
🐛 fix: console log 제거
xjfcnfw3 Nov 27, 2024
01b3a77
✨ feat: 변동률 라이브 데이터 수집 스케줄러 수정
xjfcnfw3 Nov 27, 2024
cfaafad
🐛 fix: 배포 환경에서 발생하는 칼럼 에러 문제 해결
xjfcnfw3 Nov 27, 2024
df12230
Bug/#267 - typeorm 기능으로 exist 확인, token 발급주기 단축(12시간) (#269)
swkim12345 Nov 27, 2024
466bd72
Feature/#273 - 배포환경 칼럼 에러 문제 해결 (#274)
xjfcnfw3 Nov 27, 2024
6ad952d
Feature/#259 코스피, 코스닥, 원달러 환율 받아오기 (#275)
swkim12345 Nov 27, 2024
3c173f8
✨ feat: 로그아웃 엔드포인트 구현
xjfcnfw3 Nov 27, 2024
495b544
✨ feat: 로그인 상태 확인 시 닉네임도 전송
xjfcnfw3 Nov 27, 2024
f908bbc
✨ feat: 유저 정보 조회 엔드포인트 구현
xjfcnfw3 Nov 27, 2024
57894d6
✨ feat: 유저 닉네임 변경 엔드포인트 구현
xjfcnfw3 Nov 27, 2024
7a49ef8
✨ feat: 닉네임 변경 엔드포인트 스웨거 설정
xjfcnfw3 Nov 27, 2024
624d81e
✨ feat: cors를 로컬 환경에 허용
xjfcnfw3 Nov 27, 2024
ce257c6
Feature/#62 - 로그아웃 기능 구현 (#276)
xjfcnfw3 Nov 27, 2024
211c591
✨ feat: 상위 조회수 주식 라이브 데이터 수집 구현
xjfcnfw3 Nov 27, 2024
2f15e87
✨ feat: 주식 가격 상승 및 하락률 조회 API 구현
xjfcnfw3 Nov 27, 2024
36a031c
✨ feat: 상위 조회 수 라이브 데이터 요청 큐 적용
xjfcnfw3 Nov 28, 2024
2f25292
Merge branch 'dev-be' into feature/#277
xjfcnfw3 Nov 28, 2024
f71f521
🐛 fix: update at 갱신 문제 해결
xjfcnfw3 Nov 28, 2024
09845d1
Feature/#280 - 가격 상승률 및 하락률 통합 조회 API 구현 (#281)
xjfcnfw3 Nov 28, 2024
36812e3
🐛 fix: 누락된 키 다시 추가
xjfcnfw3 Nov 28, 2024
c1b3351
✨ feat: 변동률 라이브 데이터 수집 스케줄러 재가동
xjfcnfw3 Nov 28, 2024
2ff278c
✨ feat: 채팅 response id 필드 추가
xjfcnfw3 Nov 28, 2024
9efa7a8
Feature/#277 - 조회수가 높은 주가 종목의 데이터를 갱신 (#283)
xjfcnfw3 Nov 28, 2024
24c5e5a
✨ feat: 변동률 주가 데이터 큐 적용
xjfcnfw3 Nov 28, 2024
287b53b
♻️ refactor: 변동률 순위에 연관된 중복 코드 제거
xjfcnfw3 Nov 28, 2024
0a92028
♻️ refactor: 조회수 순위에 연관된 중복 코드 제거
xjfcnfw3 Nov 28, 2024
6606b14
✨ feat: 큐의 요청이 여러 계좌에 적절하게 분배할 수 있도록 구현
xjfcnfw3 Nov 28, 2024
aeb191d
Merge branch 'feature/#280' into feature/#277
xjfcnfw3 Nov 28, 2024
89f3fbc
🐛 fix: 각 계좌마다 1초씩 block되는 문제 해결
xjfcnfw3 Nov 28, 2024
e949bfe
🐛 fix: 변동률 데이터가 누적되는 현상 수정
xjfcnfw3 Nov 28, 2024
c1ca6f9
✨ feat: 변동률 결과를 엔드포인트를 쿼리에 따라서 전송하도록 구현
xjfcnfw3 Nov 28, 2024
257cb06
✨ feat: 채팅에 서브네임 추가
xjfcnfw3 Nov 28, 2024
dcf6933
✨ feat: 유저 로그인 상태 조회 시 subName도 전송
xjfcnfw3 Nov 28, 2024
123cf68
Merge branch 'dev-be' into feature/#277
xjfcnfw3 Nov 28, 2024
bc458f2
✨ feat: 개별 채팅 메시지 타입 수정
xjfcnfw3 Nov 28, 2024
b5ff13d
Feature/#277 - 요청제어 큐 적용 (#286)
baegyeong Nov 28, 2024
745d04b
🐛 fix: 변동률 데이터가 정해진 길이를 받지 않는 버그 수정
xjfcnfw3 Nov 28, 2024
9a8e454
Bug/#287 - 변동률 조회시 정해진 길이를 받지 않는 현상 수정 (#288)
baegyeong Nov 28, 2024
d242f54
Refactor/#284 - 웹소켓 리팩토링, livedata 서빙문제 해결 (#294)
swkim12345 Nov 30, 2024
c4b5432
🐛 fix: subName이 없을 때 유저 검색 결과가 나타나지 않는 현상 수정
xjfcnfw3 Nov 30, 2024
533c981
✨ feat: 더 이상 쓰이지 않는 엔티티 삭제
xjfcnfw3 Nov 30, 2024
fa806fc
✨ feat: 변동률 주식 중복 칼럼 제거
xjfcnfw3 Nov 30, 2024
db85124
🚚 chore: ts mockito 패키지 설치
xjfcnfw3 Nov 30, 2024
6a83c55
🚚 chore: eslint spec 파일 25 제한 해제
xjfcnfw3 Nov 30, 2024
3c20f94
Bug/#298 - 유저 검색 오류 수정 (#303)
xjfcnfw3 Nov 30, 2024
4298d29
✅ test: stock 테스트 mockito 적용
xjfcnfw3 Dec 1, 2024
19f009e
🐛 fix: stockDetail 조회 트랜잭션 내부에 또다른 트랜잭션 제거
xjfcnfw3 Dec 1, 2024
e736514
✅ test: koreaStockInfoService 테스트 비활성화
xjfcnfw3 Dec 1, 2024
46a34ef
✅ test: 좋아요 테스트 mockito 적용
xjfcnfw3 Dec 1, 2024
683096e
🐛 fix: eslint import 에러 수정
xjfcnfw3 Dec 1, 2024
9441fb4
✨ feat: 유저 조회 결과에서 id 값 제거
xjfcnfw3 Dec 1, 2024
ef443a9
✨ feat: 멘션을 닉네임과 서브네임으로 진행하도록 변경
xjfcnfw3 Dec 1, 2024
40bc461
✨ feat: 로그인된 유저가 연결이 끊기면, 사용자 목록에서 제거
xjfcnfw3 Dec 1, 2024
c5240b2
♻️ refactor: 채팅 기능에서 멘션 기능 함수로 분리
xjfcnfw3 Dec 1, 2024
0f7f58f
✨ feat: 테마 조회와 업데이트를 쿠키를 기반으로 동작하도록 변경
xjfcnfw3 Dec 1, 2024
b6c3a81
✨ feat: 유저 테마 방식을 light, dark로 나타내도록 변경
xjfcnfw3 Dec 1, 2024
7a8636d
Feature/#304 - ts-mockito 적용 (#307)
xjfcnfw3 Dec 1, 2024
afaa9df
Feature/#308 - 유저 멘션 결과 변경 및 멘션 입력 변경 (#309)
xjfcnfw3 Dec 1, 2024
a2c4be9
Feature/#12 - 알림 구현 (#313)
swkim12345 Dec 1, 2024
244692d
✨ feat: 기간 별 데이터 큐 적용
xjfcnfw3 Dec 1, 2024
c5132b5
✨ feat: 지수 데이터 큐 적용
xjfcnfw3 Dec 1, 2024
aa1f76d
Feature/#312 - 기간 별 데이터와 지수 데이터 큐 적용 (#316)
xjfcnfw3 Dec 1, 2024
3e2a673
🐛 fix: 달러 데이터가 안받아지는 현상 수정
xjfcnfw3 Dec 2, 2024
efda31e
Bug/#322 - 달러 데이터가 안받아지는 현상 수정 (#323)
xjfcnfw3 Dec 2, 2024
0db1788
✨ feat: 세션 직렬화 방식 변경
xjfcnfw3 Dec 2, 2024
8039fc9
✨ feat: 변경된 직렬화 방식 웹소켓에 적용
xjfcnfw3 Dec 2, 2024
62b499d
🐛 fix: 주가 검색에서 '%'가 포함되어도 검색되는 문제 해결
xjfcnfw3 Dec 2, 2024
068bc2e
🐛 fix: gateway subscribe, unsubscribe 에러 수정 (#328)
swkim12345 Dec 2, 2024
2bf0dc9
Bug/#326 - 세션 직렬화 방식 변경 (#330)
xjfcnfw3 Dec 2, 2024
2a2551d
Feature/#311 - 로컬 캐시 적용 및 채팅 엔드포인트 수정 (#331)
xjfcnfw3 Dec 2, 2024
e1bb6b8
Bug/#315 period 중복데이터 문제, 다중 계좌 priority queue 문제 해결 (#333)
swkim12345 Dec 2, 2024
5344b26
Bug/#315 unsubscribe, subscribe에 queue 적용 (#337)
swkim12345 Dec 3, 2024
d98bf6c
Bug/#315 period 중 주단위 데이터 최신 데이터로 수정하지 못하는 에러 수정, 거래량을 누적거래량으로 변경 (#340)
swkim12345 Dec 3, 2024
930d537
♻️ refactor: plainToInstance 제거
xjfcnfw3 Dec 3, 2024
bbb9b62
♻️ refactor: 분봉 데이터 callback 형태로 바꿔 우선순위 큐 적용, 리팩토링
swkim12345 Dec 3, 2024
fc145a9
♻️ refactor: 분단위 데이터 수집 stock limit 200, 콜백함수로 리팩토링
swkim12345 Dec 3, 2024
fc840c9
🐛 fix: afterUpdate 적용 위한 upsert구문으로 변경
swkim12345 Dec 3, 2024
9ae9f3a
💄 style: 분단위 테스트 이후 테스트 코드 삭제 및 조건 원복
swkim12345 Dec 3, 2024
3ae677c
💄 style: dto 안 쓰이는 속성 삭제
swkim12345 Dec 3, 2024
31d2ef7
💄 style: console.log 삭제
swkim12345 Dec 3, 2024
72edf0d
📝 docs: liveData에 unsubscribe, subscribe 메시지 info로 출력 추가
swkim12345 Dec 3, 2024
65ecaaa
🐛 fix: 알람을 한번만 보내고 삭제처리하게 만듦
swkim12345 Dec 3, 2024
c9d9ff4
✨ feat: 누락된 그래프 데이터를 큐에 요청할 수 있는 메서드 구현
xjfcnfw3 Dec 3, 2024
ec61238
✨ feat: 최신 차트 누락된 데이터 api 데이터와 조합
xjfcnfw3 Dec 3, 2024
798f977
🐛 fix: 차트 업데이트 중 한번에 많은 요청으로 인한 중복키 에러 수정
xjfcnfw3 Dec 3, 2024
333c812
♻️ refactor: 중복된 차트 데이터 클래스 제거
xjfcnfw3 Dec 3, 2024
c74e183
✅ test: 차트데이터 테스트 코드 삭제
xjfcnfw3 Dec 3, 2024
3a6d7ee
Merge branch 'dev-be' into feature/#332
xjfcnfw3 Dec 3, 2024
ee68e30
✨ feat: 9시에 한번 더 종목 갱신
xjfcnfw3 Dec 3, 2024
a4cff5c
✨ feat: 누락된 차트 데이터를 좀 더 높은 우선순위로 진행
xjfcnfw3 Dec 3, 2024
922b34b
🐛 fix: 좋아요 스크롤 시 다른 방 데이터 조회 문제 해결
xjfcnfw3 Dec 3, 2024
3af586c
🐛 fix: 처음 데이터 조회시 예외가 발생하는 버그 수정
xjfcnfw3 Dec 3, 2024
981f190
Bug/#346 - 좋아요 순 스크롤 시 다른 방 데이터 조회 문제 해결 (#347)
xjfcnfw3 Dec 3, 2024
6b4fb8b
✨ feat: 큐에 에러 재요청 횟수 제한 추가
xjfcnfw3 Dec 3, 2024
bde9d72
Feature/#341 분봉 리팩토링 및 장 시간대에 분봉 받아오기, alarm 한번만 작동 (#343)
swkim12345 Dec 3, 2024
d8b4a8d
Feature/#332 - 누락된 최신 차트데이터가 존재하면 API 요청 후 차트데이터 전달 (#344)
xjfcnfw3 Dec 3, 2024
ac48ade
🐛 fix: 유저가 동시에 다른 주식 방에 있는 것을 방지
swkim12345 Dec 4, 2024
c69ebd9
🐛 fix: 유저가 동시에 다른 주식에 접속하는 것을 막음
swkim12345 Dec 4, 2024
d45d2e6
🐛 fix: client leave 추ㅏㄱ
swkim12345 Dec 4, 2024
a4571c1
🐛 fix: leave 코드가 values를 검사하는 로직보다 뒤에 있어 발생되는 문제 해결
swkim12345 Dec 4, 2024
f2ad68b
🐛 fix: delete도 이동
swkim12345 Dec 4, 2024
629b47d
🐛 fix: deadlock 발생 없이 동시성 제어
swkim12345 Dec 4, 2024
c4d1d9e
Bug/#341 유저가 다른 주식에 접근할 때 예전 주식의 실시간 데이터가 보이는 버그 수정 (#350)
xjfcnfw3 Dec 4, 2024
830dcd1
🐛 fix: join column에 user_id 이름 추가 (#351)
swkim12345 Dec 4, 2024
465f2d2
✨ feat: 누락된 차트 데이터 저장 후에 응답하도록 변경
xjfcnfw3 Dec 4, 2024
eb8d1c9
✨ feat: 누락된 차트 수집이 2초 이상이 걸리면, 현재 가지고 있는 데이터 반환
xjfcnfw3 Dec 4, 2024
2a6d07a
Feature/#341 알림 수 200개 제한 해제, join column 이름 다시 롤백 (#356)
swkim12345 Dec 4, 2024
3679517
Merge branch 'dev-be' into bug/#345
xjfcnfw3 Dec 4, 2024
5370d41
Feature/#358 - 요청 큐 횟수 제한 (#359)
xjfcnfw3 Dec 4, 2024
5979d4e
♻️ refactor: 존재하지 않는 종목 예시 제거
xjfcnfw3 Dec 4, 2024
1855588
✨ feat: 우선순위가 같을 때 FIFO 동작
xjfcnfw3 Dec 4, 2024
67c5e21
Bug/#361 알림 서비스 오류 해결 (#362)
swkim12345 Dec 4, 2024
18404dc
♻️ refactor: stock관련 많은 라인 수 swagger 데코레이터 분리
xjfcnfw3 Dec 4, 2024
274e6d6
♻️ refactor: 잘못된 import 정렬 순서 조정
xjfcnfw3 Dec 4, 2024
26d7c00
♻️ refactor: scrollChart 함수 분리
xjfcnfw3 Dec 4, 2024
bcba0ec
✨ feat: 주식 정산 데이터 수집 주기 변경
xjfcnfw3 Dec 4, 2024
f8d459c
✨ feat: 주말에 차트 데이터를 수집하지 않도록 설정
xjfcnfw3 Dec 4, 2024
0ca4bee
♻️ refactor: eslint 에러 수정
xjfcnfw3 Dec 4, 2024
57dd091
Merge branch 'dev-be' into bug/#345
xjfcnfw3 Dec 4, 2024
c035e0e
Bug/#345 - 제약조건 에러 해결 및 각종 버그 수정 (#363)
xjfcnfw3 Dec 4, 2024
b48f975
Feature/#365 알림 response 변경, 알림 검증 로직 추가, 중복 함수 리팩토링 (#366)
swkim12345 Dec 4, 2024
de66fde
✨ feat: 주,월,년 데이터는 1시부터 16시까지 개별 업데이트 제한
xjfcnfw3 Dec 4, 2024
89725df
✨ feat: 웹 소켓 첫 연결 시 rest 요청을 큐로 제어
xjfcnfw3 Dec 4, 2024
cf7e975
Merge branch 'dev-be' into feature/#367
xjfcnfw3 Dec 4, 2024
53dec2b
Feature/#367 - 주, 월, 년 봉 데이터를 새벽 업데이트 이후에서 16시까지 갱신하지 않도록 변경 (#368)
xjfcnfw3 Dec 4, 2024
29cddd4
✨ feat: 차트 데이터는 문자열로 반환하도록 변경
xjfcnfw3 Dec 4, 2024
9add4dc
Feature/#369 eslint, 알림 string 리턴 수정, swagger 성공하게 조건 변경 (#370)
swkim12345 Dec 4, 2024
4a183b8
Bug/#371 - 차트 데이터를 문자열로 변경 (#372)
xjfcnfw3 Dec 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,12 @@ module.exports = {
},
],
},
overrides: [
{
files: ['**/*.spec.ts'],
rules: {
'max-lines-per-function': 'off',
},
},
],
};
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,10 @@ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# vscode setting
.vscode

# remote
.remote

# .zip, .mst
*.zip
*.mst
4 changes: 4 additions & 0 deletions packages/backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,7 @@ pids

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# backup file
.backup
.bak
17 changes: 13 additions & 4 deletions packages/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,21 @@
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
"test:e2e": "jest --config ./test/jest-e2e.json",
"mem": "node ../../dist/main --inspect"
},
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/config": "^3.3.0",
"@nestjs/core": "^10.0.0",
"@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-socket.io": "^10.4.7",
"@nestjs/platform-socket.io": "^10.4.8",
"@nestjs/schedule": "^4.1.1",
"@nestjs/swagger": "^8.0.5",
"@nestjs/typeorm": "^10.0.2",
"@nestjs/websockets": "^10.4.7",
"@nestjs/websockets": "^10.4.8",
"async-mutex": "^0.5.0",
"axios": "^1.7.7",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.1",
Expand All @@ -39,13 +41,16 @@
"nest-winston": "^1.9.7",
"passport": "^0.7.0",
"passport-google-oauth20": "^2.0.0",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.2.0",
"rxjs": "^7.8.1",
"socket.io": "^4.8.1",
"typeorm": "^0.3.20",
"unzipper": "^0.12.3",
"web-push": "^3.6.7",
"winston": "^3.17.0",
"winston-daily-rotate-file": "^5.0.0"
"winston-daily-rotate-file": "^5.0.0",
"ws": "^8.18.0"
},
"devDependencies": {
"@nestjs/cli": "^10.0.0",
Expand All @@ -56,8 +61,11 @@
"@types/jest": "^29.5.2",
"@types/node": "^20.3.1",
"@types/passport-google-oauth20": "^2.0.16",
"@types/passport-local": "^1.0.38",
"@types/supertest": "^6.0.0",
"@types/unzipper": "^0.10.10",
"@types/web-push": "^3.6.4",
"@types/ws": "^8.5.13",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"cz-emoji-conventional": "^1.1.0",
Expand All @@ -68,6 +76,7 @@
"supertest": "^7.0.0",
"ts-jest": "^29.1.0",
"ts-loader": "^9.4.3",
"ts-mockito": "^2.6.1",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3"
Expand Down
174 changes: 174 additions & 0 deletions packages/backend/src/alarm/alarm.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
import {
Controller,
Get,
Post,
Param,
Body,
Put,
Delete,
UseGuards,
} from '@nestjs/common';
import {
ApiBadRequestResponse,
ApiOkResponse,
ApiOperation,
ApiParam,
ApiResponse,
} from '@nestjs/swagger';
import { AlarmService } from './alarm.service';
import { AlarmRequest } from './dto/alarm.request';
import { AlarmResponse, AlarmSuccessResponse } from './dto/alarm.response';
import SessionGuard from '@/auth/session/session.guard';
import { GetUser } from '@/common/decorator/user.decorator';
import { User } from '@/user/domain/user.entity';

@Controller('alarm')
export class AlarmController {
constructor(private readonly alarmService: AlarmService) {}

@Post()
@ApiOperation({
summary: '알림 생성',
description: '각 정보에 맞는 알림을 생성한다.',
})
@ApiResponse({
status: 201,
description: '알림 생성 완료',
type: AlarmResponse,
})
@ApiBadRequestResponse({
description: '유효하지 않은 알람 입력값으로 인해 예외가 발생했습니다.',
schema: {
type: 'object',
properties: {
statusCode: { type: 'number', example: 400 },
message: { type: 'string', example: '알람 조건을 다시 확인해주세요.' },
error: { type: 'string', example: 'Bad Request' },
},
},
})
@UseGuards(SessionGuard)
async create(
@Body() alarmRequest: AlarmRequest,
@GetUser() user: User,
): Promise<AlarmResponse> {
const userId = user.id;

return await this.alarmService.create(alarmRequest, userId);
}

@Get('user')
@ApiOperation({
summary: '사용자별 알림 조회',
description: '사용자 아이디를 기준으로 모든 알림을 조회한다.',
})
@ApiOkResponse({
description: '사용자에게 등록되어 있는 모든 알림 조회',
type: [AlarmResponse],
})
@UseGuards(SessionGuard)
async getByUserId(@GetUser() user: User) {
const userId = user.id;

return await this.alarmService.findByUserId(userId);
}

@Get('stock/:stockId')
@ApiOperation({
summary: '주식별 알림 조회',
description: '주식 아이디를 기준으로 알림을 조회한다.',
})
@ApiOkResponse({
description:
'주식 아이디에 등록되어 있는 알림 중 유저에 해당하는 알림 조회',
type: [AlarmResponse],
})
@ApiParam({
name: 'id',
type: String,
description: '주식 아이디',
example: '005930',
})
@UseGuards(SessionGuard)
async getByStockId(@Param('id') stockId: string, @GetUser() user: User) {
const userId = user.id;

return await this.alarmService.findByStockId(stockId, userId);
}

@Get(':id')
@ApiOperation({
summary: '등록된 알림 확인',
description: '등록된 알림을 알림 아이디를 기준으로 찾을 수 있다.',
})
@ApiOkResponse({
description: '알림 아이디와 동일한 알림 찾음',
type: AlarmResponse,
})
@ApiParam({
name: 'id',
type: Number,
description: '알림 아이디',
example: 1,
})
@UseGuards(SessionGuard)
async findOne(@Param('id') alarmId: number): Promise<AlarmResponse> {
return this.alarmService.findOne(alarmId);
}

@Put(':id')
@ApiOperation({
summary: '등록된 알림 업데이트',
description: '알림 아이디 기준으로 업데이트를 할 수 있다.',
})
@ApiOkResponse({
description: '아이디와 동일한 알림 업데이트',
type: AlarmResponse,
})
@ApiParam({
name: 'id',
type: Number,
description: '알림 아이디',
example: 1,
})
@ApiBadRequestResponse({
description: '유효하지 않은 알람 입력값으로 인해 예외가 발생했습니다.',
schema: {
type: 'object',
properties: {
statusCode: { type: 'number', example: 400 },
message: { type: 'string', example: '알람 조건을 다시 확인해주세요.' },
error: { type: 'string', example: 'Bad Request' },
},
},
})
@UseGuards(SessionGuard)
async update(
@Param('id') alarmId: number,
@Body() updateData: AlarmRequest,
): Promise<AlarmResponse> {
return this.alarmService.update(alarmId, updateData);
}

@Delete(':id')
@ApiParam({
name: 'id',
type: Number,
description: '알림 아이디',
example: 1,
})
@ApiOperation({
summary: '등록된 알림 삭제',
description: '알림 아이디 기준으로 삭제를 할 수 있다.',
})
@ApiOkResponse({
description: '아이디와 동일한 알림 삭제',
type: AlarmSuccessResponse,
})
@UseGuards(SessionGuard)
async delete(@Param('id') alarmId: number) {
await this.alarmService.delete(alarmId);

return new AlarmSuccessResponse('알림 삭제를 성공했습니다.');
}
}
17 changes: 17 additions & 0 deletions packages/backend/src/alarm/alarm.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AlarmController } from './alarm.controller';
import { AlarmService } from './alarm.service';
import { AlarmSubscriber } from './alarm.subscriber';
import { Alarm } from './domain/alarm.entity';
import { PushSubscription } from './domain/subscription.entity';
import { PushController } from './push.controller';
import { PushService } from './push.service';

@Module({
imports: [TypeOrmModule.forFeature([Alarm, PushSubscription])],
controllers: [AlarmController, PushController],
providers: [AlarmService, PushService, AlarmSubscriber],
exports: [AlarmService],
})
export class AlarmModule {}
Loading
Loading