일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 디버깅
- 트랜잭샨
- 몽고 인덱스
- 검색어 추천
- gRPC
- BFS
- 쿠키
- spring event
- 카카오
- 주식
- 백준
- 깊게 생각해보기
- JPA
- 완전탐색
- 구현
- 셀러리
- 객체지향패러다임
- 누적합
- 이분탐색
- AWS
- docker
- next-stock
- 프로그래머스
- 결제서비스
- 레디스 동시성
- piplining
- 아키텍쳐 개선
- 추천 검색 기능
- jwt 표준
- 크롤링
- Today
- Total
코딩관계론
커넥션이 없어서 불이나다(요가 파이어~ ) 본문
아래의 빨간색 버튼은 사용자가 특정 주식 정보를 갱신하기 위한 버튼입니다. 해당 버튼을 클릭하면 뉴스 업데이트가 진행되며, 서버에 정보 갱신 요청이 전달됩니다. 서버는 요청을 비동기적으로 처리하기 때문에 즉시 응답을 프론트엔드에 전송하고, 프론트엔드는 폴링(polling) 방식을 통해 갱신 완료 여부를 지속적으로 확인합니다.
단순한 API임에도 불구하고, 실행 시간이 점차 증가하면서 DB 커넥션 문제(아래 이미지 참조)가 발생했습니다. 요약하면, 주식 정보 조회 시 DB 커넥션을 획득하는 과정에서 문제가 발생한 것으로 보입니다.
그러나 DB 커넥션에 문제가 있다면 다른 요청들도 영향을 받아야 하는데, 실제로는 정상적으로 조회되고 있어 의문이 생겼습니다.
이 동작방식의 간단한 요약도를 보면 주식의 정보 조회를 할 때 DB connection을 받아오는 과정이 있는데 이 과정에서 문제가 생긴것이다. 여기서 한가지 의문점은 DB커넥션이 문제라면, 다른 요청들도 조회가 안되어야 하는데 정상적으로 조회가 되는 사실이 이해가 안되기 시작했다.
문제 원인을 보다 명확히 파악하기 위해 Spring에서 제공하는 커넥션 관련 로깅 기능을 확인해 보았습니다. 아래와 같이 설정하면, 어떤 코드 경로에서 커넥션이 반환되지 않고 있는지 확인할 수 있습니다. 이 정보를 바탕으로 해당 부분의 트랜잭션 범위를 축소하거나, 커넥션 반환을 보장하는 코드를 추가할 수 있습니다.
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/yourdb");
config.setUsername("username");
config.setPassword("password");
config.setLeakDetectionThreshold(2000); // 2초
이 코드를 추가한 후, 문제가 발생하는 지점을 확인하여 추가적인 해결 방안을 마련할 예정입니다.
'개발 > Hot-Stock' 카테고리의 다른 글
엘라스틱 서치 (0) | 2025.03.06 |
---|---|
뉴스 fetching이 진행중인데 끝났습니다... (1) | 2025.03.05 |
수익화를 위한 쇼 - (에드센스) (0) | 2025.02.24 |
사담 (0) | 2025.02.22 |
대규모 배치 이후, 느려진 검색 성능 (0) | 2025.02.10 |