Releases: boostcampwm-2024/refactor-web40-juchumjuchum
Releases · boostcampwm-2024/refactor-web40-juchumjuchum
0.1.1 (2025년 2월 6일)
📝 릴리즈 노트: 주식 뉴스 요약 기능 v0.1.1
AI 서비스 기획안
🚀 신규 기능
-
뉴스 자동 수집 시스템 구현 (#42)
- 크롤링 기능 개발일지
- 국내 시가총액 기준 상위 10개 회사 대상 실시간 뉴스 수집
- Naver News API 연동으로 신뢰성 있는 뉴스 소스 확보
-
AI 기반 뉴스 요약 기능(#41)
- 클로바 API 연동 개발일지
- 클로바 요약 성능 확인 개발일지
- CLOVA Studio API 활용한 뉴스 컨텐츠 자동 요약
- 긍정/부정 요소 자동 분석 및 분류
- 핵심 키워드 중심의 제목 생성
-
종목별 뉴스 저장/조회 기능(#40)
- AI 요약결과 저장 개발일지
stock_news
테이블 신규 생성stock
테이블과 1:N 관계 설정- 종목상세 페이지에 뉴스보기 버튼 추가
🔧 신규 기술 스택
- CLOVA Studio API
- Naver News API
🔍 주요 API
POST /api/stock/news/test
GET /api/stock/news/{stockId}
🎯 기대 효과
- 투자자의 정보 접근성 향상
- 의사결정 시간 단축
- 객관적인 투자 판단 근거 제공
⚠️ 알려진 이슈
- Clova 응답시 field명, filed type을 임의로 응답해주는 이슈
0.1.0 (2025년 1월 16일)
0.1.0 (2025년 1월 16일)
성능 개선
- 배치처리를 통한 서버초기화 성능개선
- 서버 초기화 시 주식데이터를 업데이트 하는 과정에서 수천 개의 쿼리가 실행되는 문제 발생,
배치 처리로 최적화
하여 서버 시작 시간을 90% 단축.
- 쿼리 튜닝
- 주식 조회수 기반 상위 N개 조회 쿼리 발생시 Full Table Scan을 하는 문제 발생,
- order by 기준인 views 컬럼에 인덱스를 추가하여
index full scan으로 개선
- 추가 개선 예정
- 동시성점검
- 주식 조회수 증가 로직에서 manager.increment에 동시성 이슈가 있는지 test
- UPDATE stock SET views = views + 1 WHERE id = ? 문은
원자적
으로 실행되므로 동시성 문제가 발생하지 않음
코드 품질 개선
- ocp 원칙 적용
- 기존 주식 정렬 알고리즘에 동일한 코드가 반복되는 문제 발생,
- 주식 정렬 로직에 전략 패턴 적용
- OCP 준수: 새로운 정렬 방식 추가 시 기존 코드 수정 없이 새로운 전략 클래스만 추가
- request logger
- 개발시 어떤 요청이 들어오고 문제가 생겼는지 알기 힘들었던 문제발생,
- 모든 요청 정보를 로깅함으로써 로직파악에 도움, 디버깅 시간 절약
- orm logger query plan
- 실행계획을 보려면 워크벤치등의 SQL 툴을 사용해야하는 불편함발생,
- TypeORM 쿼리 실행 시 SQL 쿼리와
실행 계획을 가독성 있게 로깅
하는 CustomQueryLogger 구현
- nGrinder 메인페이지 API 부하테스트 스크립트 추가
- nGrinder를 사용해 부하테스트를 진행해보았습니다. 기존 프로젝트에서는 제한된 시간내에 프로젝트의 완성이 목표였다보니 부하테스트를 진행한 흔적이 없어, 부하테스를 진행해 현재 서버가 어느정도의 부하까지를 견딜 수 있는지 확인해 보았습니다.
- 메인페이지 입장에서 사용되는 API인 주식 정보, 코스닥, 코스피 정보, 유저 정보들로만 테스트를 진행해보았습니다.
- 가상 유저 99명으로 설정 후 3분동안 요청을 보냈을때 안정적으로 요청을 처리하는것을 확인할 수 있었습니다. 총
64,376
번의 테스트 에서1
번의 에러만 발생했습니다.
배포 개선
- main 브랜치에 대한 CI/CD 추가
- 기존에 사용하던 github workflow는 dev-be, dev-fe 브랜치에 대한 CI/CD 작업이었습니다.
- 현재 리팩토링 팀에서는 dev 브랜치를 개발 통합용 브랜치로 활용하고 있고, 배포의 경우 main 브랜치를 기준으로 이루어지기 때문에 main 브랜치에 대한 CI/CD workflow를 추가했습니다.
오류 수정
- 배포 환경에서 웹 소캣 연결 실패 문제 해결
- 기존 웹 소캣 연결의 경우 URL이 하드코딩 되어 있던 문제가 있었습니다.
- URL을 설정 파일로 분리하여(VITE_WS_URL) 로컬 환경 및 배포 환경 모두에서 동작할 수 있도록 수정했습니다.
- URL을 변경했음에도 배포 환경에서 웹 소캣 연결이 실패하는 현상이 발생했습니다.
- 배포 환경에서 프론트엔드 코드를 서빙하던 nginx 서버의 설정 파일에 웹 소캣 경로에 대한 설정을 추가하여 연결 실패 문제를 해결했습니다.
- 에러발생시 서버가 죽는 현상 수정
- 로깅용 인터셉터에서 error를 재발행해서 발생하는 문제
- error를 조회, 출력만하도록 수정
- FE에서도 Error router 추가하여
에러발생시 error페이지 렌더링
하도록 수정
- 구글 로그인 오류 해결
- 기존 구글 로그인의 경우 로컬 개발 환경에서는 제대로 동작하지 않는 문제가 있었습니다.
- 하드코딩 되어 있던 URL을 설정 파일로 분리(VITE_BASE_URL)하여 로컬 환경 및 배포 환경 모두에서 제대로 동작할 수 있게 수정했습니다.