개발 일지16 DB Connection 점유 줄이기: OSIV와 단계적 CQRS 그리고 트랜잭션 설계 들어가기 전…문제와 개선 방향을 다음과 같이 정리하였습니다.RAG(Retrieval-Augmented Generation) 방식을 사용하는 챗봇 프로젝트에서 데이터 서버 요청 시간 지연으로 인해 리소스 점유 시간이 길어지는 문제가 발생하고 있습니다.RAG 서버에 요청한 후, 해당 답변을 저장하는 로직이 실행되면서 트랜잭션 지속 시간이 길어지고, 이로 인해 DB 커넥션 리소스 낭비가 초래되고 있습니다.이러한 문제는 특히 입시철에 예상되는 약 3만 명의 지원생 중 수백에서 수천 명에 이르는 사용자 트래픽을 처리하는 데 DB Connection 부족(대표적인 오류: CannotCreateTransactionException)으로 이어질 가능성이 있습니다.Connection Pool 수 증가, Timeout 설.. 2024. 11. 23. saveAll() vs Batch Insert(with JPA, 쓰기 지연) 성능 비교: 영속성 context 관리와 트랜잭션 관리 관점에서 들어가기 전…JPA를 사용해 프로젝트를 진행하던 중 데이터를 한번에 여러개 저장해야하는 경우는 많이 경험했기에 save 를 통해 데이터를 반복적으로 저장하는 것보다 saveAll 이 성능이 좋다는 것을 경험적으로 알 수 있었습니다. 오늘은 save와 saveAll의 코드를 분석하고 성능차이의 이유를 알아보려고 합니다. (쓰기 지연에 대하여) 또한, saveAll에 hibernate 설정으로 어떻게 JPA로 쉽게 Batch Insert를 적용하는지 알아보고자합니다. 아래는 해당 블로그 글을 적용한 프로젝트입니다.https://github.com/Findy-org/FINDY_BE GitHub - Findy-org/FINDY_BE: Findy, 순간을 찾아 연결하다Findy, 순간을 찾아 연결하다. Contr.. 2024. 10. 31. Spring Boot에서 Access Token으로 인증 구현하기: Filter, SecurityContext와 @AuthenticationPrincipal활용 들어가기 전@AuthenticationPrincipal을 통해 UserDetails를 받아 실제 DB에 저장된 User를 받아오는 방식을 @LoginUser라는 어노테이션을 통해 쉽게 접근한 경험이 있었습니다access Token을 Filter를 SecurityContext에 저장하고 저장된 유저를 쉽게 얻어오는 방식을 정리해보고자 합니다. 해당 작업을 포함한 프로젝트 주소입니다.https://github.com/Findy-org/FINDY_BE GitHub - Findy-org/FINDY_BEContribute to Findy-org/FINDY_BE development by creating an account on GitHub.github.com Spring Security에서 Access Token.. 2024. 10. 6. Spring, BE | Apache Tomcat 바로 알기 + 웹서버(Nginx와 Apache 비교)를 두는 이유 들어가기 전..프로젝트를 배포하면서 nginx라는 단어가 많이 보였고, github 프로젝트를 염탐(?) 했을 때도 심심치 않게 보였던 단어라 한번 찾아보고 공부하는 시간을 가졌습니다.결론을 먼저 말하자면, 일전의 프로젝트인 Fingoo에서 적용했던 ALB와 같이 트래픽을 관리하는 로드 밸런서의 역할을 하게 됩니다.그러나 ALB와의 여러 차이가 존재하며, 이번 Maru-egg라는 프로젝트에서는 비용 절감에 힘써야했기 때문에 ALB 대신 Nginx로 결정했습니다.nginx가 뭐지?간단히 nginx는 Apache와 같은 웹서버 정도로 알고 있었는데, 어떤 기능을 가지고 있고 어떤 차이점을 가지고 있는지 자세히 알아보고자 합니다.먼저 공식 문서(https://nginx.org/en/) 참고했습니다. 공식 문서.. 2024. 8. 13. Java & Spring | Swagger 커스텀 ApiResponse 어노테이션 사용기(+ Reflection을 통한 문제 해결) 💎 작성된 글의 프로젝트https://github.com/MARU-EGG/MARU_EGG_BE GitHub - MARU-EGG/MARU_EGG_BE: 명지대학교 RAG기반 AI 입학 문의 챗봇 - 백엔드명지대학교 RAG기반 AI 입학 문의 챗봇 - 백엔드. Contribute to MARU-EGG/MARU_EGG_BE development by creating an account on GitHub.github.com 💎 작성된 글의 Pull Requesthttps://github.com/MARU-EGG/MARU_EGG_BE/pull/42 [feat] Swagger 커스텀 ApiResponse 어노테이션 적용 by Hoya324 · Pull Request #42 · MARU-EGG/MARU_EGG_BE.. 2024. 7. 17. 프로젝트 & BDP | Java(Spring)에서 TF-IDF와 Cosine Similarity를 활용한 문장간 유사도 측정 방법 💎 작성된 글의 프로젝트https://github.com/MARU-EGG/MARU_EGG_BE GitHub - MARU-EGG/MARU_EGG_BEContribute to MARU-EGG/MARU_EGG_BE development by creating an account on GitHub.github.com 🚪 들어가기 전에..지난 번에는 Elasticsearch를 사용하지 않게 된 이유와 이를 해결하기 위해 Full-Text Index를 사용한 이유, 앞으로 개선점에 대해 다뤘습니다. 🎈 저번 블로그 보기https://hoya324.tistory.com/56 프로젝트 | 텍스트 유사도 검색 어떻게 구현할까?(1) - Elasticsearch를 안 쓴 이유와 MySQL Full Text Index?.. 2024. 7. 7. 이전 1 2 3 다음