본문 바로가기 메뉴 바로가기

공부노트

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

공부노트

검색하기 폼
  • 분류 전체보기 (42)
    • Java (14)
    • DB (2)
    • JPA (2)
    • 네트워크 (1)
    • Git & GitHub (2)
    • 기타 (2)
    • Web (2)
      • Spring (9)
    • 하루스터디 (7)
  • 방명록

MySQL (2)
[InnoDB] 인덱싱되지 않은 컬럼으로 UPDATE 시 데드락이 발생한다

결제 서비스를 만들고 테스트하던 중 인덱싱 되지 않은 컬럼을 검색 조건으로 활용한 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 2024. 7. 8. 00:58
정적 파일, 웹 서버, DB 스키마까지 무중단 배포 시도하기(2) - Trigger로 무중단 DB 마이그레이션 진행하기

버전이 올라가며 이전, 이후 버전의 DB 스키마가 크게 바뀌었다. 주요 테이블의 네이밍이 수정되었고 서비스 로직이 변경되며 컬럼의 위치도 일부 수정되었다. 개인 별로 저장되던 스터디 참여자들의 진행 정보가 기획이 수정되며 함께 관리되도록 바뀌었다. 문제: 스키마는 바꼈지만 이전 버전의 데이터도 신버전에서 실시간으로 보고 싶다 스키마의 변경 자체는 크진 않지만 신규 배포를 무중단으로 진행해야 한다는 점이 가장 큰 문제였다. 서비스에는 다음의 세 주요 기능이 존재한다. 1. 스터디 함께 진행하기 2. 혼자 공부하기(다인 스터디를 혼자 진행하는 형태) 3. 자신의 스터디 기록 조회하기 이번 배포에서는 기능이 빈약한 '1. 스터디 함께 진행하기'에 실시간 동기화 기능을 추가하는 것이 가장 큰 변경이었고, 기능이..

하루스터디 2023. 10. 29. 17:58
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • Payload 암호화
  • MySQL 이벤트 스케줄
  • multiplebagsfetchexception
  • Java
  • 스프링
  • 우테코 5기
  • invokedynamic
  • GitHub Discussion Template
  • 자바
  • GitHub Discussion
  • JPA
  • MySQL
  • RandomPort
  • 람다식
  • 생성자 주입
  • 우테코 프리코스
  • JPA JSON
  • logback-spring.xml
  • Fromtail
  • 우테코
  • Spring Boot Monitoring
  • Jenkins 예약 배포
  • stubbing
  • 함수형 인터페이스
  • Spring
  • springboottest
  • java switch case
  • GitHub Discussion 템플릿
  • 의존성 주입
  • Spring 테스트
more
«   2025/08   »
일 월 화 수 목 금 토
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
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바