결제 서비스를 만들고 테스트하던 중 인덱싱 되지 않은 컬럼을 검색 조건으로 활용한 Update에서, 단건의 요청 처리에 대해 문제가 없었으나 다수의 요청 동시 처리 시 데드락이 발생하는 상황을 경험했다. 1. 데드락 확인 org.springframework.dao.TransientDataAccessResourceException: execute; SQL [UPDATE payment_ordersSET payment_order_status = :status, updated_at = CURRENT_TIMESTAMPWHERE order_id = :orderId]; Deadlock found when trying to get lock; try restarting transaction 스프링을 통해 어떤 로직을..
버전이 올라가며 이전, 이후 버전의 DB 스키마가 크게 바뀌었다. 주요 테이블의 네이밍이 수정되었고 서비스 로직이 변경되며 컬럼의 위치도 일부 수정되었다. 개인 별로 저장되던 스터디 참여자들의 진행 정보가 기획이 수정되며 함께 관리되도록 바뀌었다. 문제: 스키마는 바꼈지만 이전 버전의 데이터도 신버전에서 실시간으로 보고 싶다 스키마의 변경 자체는 크진 않지만 신규 배포를 무중단으로 진행해야 한다는 점이 가장 큰 문제였다. 서비스에는 다음의 세 주요 기능이 존재한다. 1. 스터디 함께 진행하기 2. 혼자 공부하기(다인 스터디를 혼자 진행하는 형태) 3. 자신의 스터디 기록 조회하기 이번 배포에서는 기능이 빈약한 '1. 스터디 함께 진행하기'에 실시간 동기화 기능을 추가하는 것이 가장 큰 변경이었고, 기능이..
- Total
- Today
- Yesterday
- JPA JSON
- 우테코
- Java
- Spring
- 우테코 프리코스
- Jenkins 예약 배포
- MySQL
- JPA
- invokedynamic
- 생성자 주입
- RandomPort
- Spring Boot Monitoring
- java switch case
- 스프링
- logback-spring.xml
- 함수형 인터페이스
- 자바
- Fromtail
- stubbing
- 의존성 주입
- GitHub Discussion Template
- springboottest
- Payload 암호화
- multiplebagsfetchexception
- 람다식
- GitHub Discussion
- 우테코 5기
- MySQL 이벤트 스케줄
- Spring 테스트
- GitHub Discussion 템플릿
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |