🙂개요 - 나의 시나리오에서 수행하는 쿼리들을 수집해보고, 필요하다고 판단되는 인덱스를 추가하고 쿼리의 성능개선 정도를 작성하여 제출자주 조회하는 쿼리, 복잡한 쿼리 파악Index 추가 전후 Explain, 실행시간 등 비교 🚩 콘서트 예약시스템 사용자 플로우사용자 첫 접근 시 토큰을 발급, -> 대기열에서 기다림 ->차례가 오면 활성화 토큰콘서트 예약 가능 날짜를 조회한다.콘서트 예약 가능 좌석을 조회한다.콘서트 좌석을 예약한다.좌석을 결제한다. 사용자는 크게 5개의 플로우를 타게된다. 그 중에 1번에 해당하는 토큰은 Redis에서 관리되며, 쿼리를 사용하지 않게 끔 진행하려한다.2,3,4,5번의 플로우에서는 쿼리가 사용 된다. ▶️ 예약 가능 날짜 조회 select cs1_0.c..
앞서 우리가 학습한 Transaction, Lock, Index, Cache 등은 모두 비즈니스 로직을 처리하는 데에 있어 중요한 Database의 부하를 줄이고, 속도 및 성능을 향상시키기 위함이었습니다. 그런데 Lock의 범위 뿐 아니라 무분별한 비즈니스 로직과 트랜잭션의 규모 또한 우리가 예측하지 못한 문제를 발생시킬 수 있습니다. 어떤 문제로 이어질 수 있을까? - 다수의 SlowRead 작업으로 인해 요청 처리에 영향을 줄 수 있음- Transaction 범위 내에서 Lock을 사용하고 있을 경우, 해당 자원에 접근하는 다른 요청의 대기 혹은 데드락 상황을 유발할 수 있음- 긴 생명 주기의 Transaction의 경우, 오랜 시간은 소요되나 후속 작업에 의해 전체 트랜잭션이 실패할 수 있음 ..
- 쿼리에 대한 부하를 줄일 수 있는 훈련- 비즈니스 로직 별 트랙잰션 범위를 파악하고 사이드 이펙트에 대해 고려해 본다. > 사이드이펙트란? 의도치 않은 결과로 예로 고혈압약을 먹었는데 머리가 풍성하게 자라나는 것같은 의도하지 않았지만 나타나는 결과들이다.- 비즈니스를 적절하게 핸들링 할 수 있도록 선후관계를 파악하고, 애플리케이션 이벤트를 활용해 관심사를 분리하도록 개선해 본다. ---- 인덱스란? 서비스 개발자의 중요한 역량 중 가장 중요한 것은 데이터베이스를 핸들할 수 있는 역량이다. 그 중 중요한 것이 index이다. - 인덱스는 조회 성능을 높일 수 있지만 아래 사항들을 고려하여 설계해야 함 - 한번에 찾을 수 있는 값 - 인덱스 재정렬 최소화 - 데이터 삽입, 수정이 적은 컬럼 - 인..
- Total
- Today
- Yesterday
- HTTP
- 향해플러스
- 스프링부트
- 인터셉터
- Java
- 리터럴
- 항해플러스
- react실행
- hypertexttransferprotocol
- reject
- filter
- 항해99
- rejectValue
- 예외처리
- ArgumentResolver
- jpa api
- 컨트
- SpringBoot
- Intercepter
- React
- 백엔드 개발자 공부
- thymleaf
- 향해99
- BindingResult
- exception
- 스프링공부
- 로그인
- 향해플러스백엔드
- JPA
- 백엔드 개발자 역량
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |