![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/on9c5/btsJeSLdqbk/vrrJMbHhe6XmdEUcKcWqk1/img.png)
📊 동시성 제어 방식 비교SeriesJava Concurrency ControlDatabase Concurrency ControlRedis Concurrency ControlKafka Concurrency ControlCompare Concurrency Control⚠️ 로컬에서 테스트한 결과이고,서버 환경과 여러 요인들에 의해 결과가 달라질 수 있고, 정확하지 않을 수 있습니다.Case 01한정수량 : 50,000Total User : 296Processes : 8Threads : 37(DB Named 방식은 제외).시간 내에 모든 트래픽을 성공적으로 처리한 방식DB PessimisticRedis IncrKafka + Redis.일부 성공을 하긴 하였지만, 트래픽을 버티지 못하고 성능 문제가 발생한 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Ecj01/btsI5smckWX/qg6k7bivVPA0sO8j1mXi71/img.png)
🎯 DataBase Concurrency ControllRace Condition경쟁상태는 두 개 이상의 스레드가 공유 데이터에 액세스 할 수 있고, 동시에 변경을 하려고 할 때 발생하는 문제Race Condition 으로 동시에 들어오는 요청들이 갱신 전 값을 읽고, 수정하면서실제 갱신이 누락되는 현상이 발생SeriesJava Concurrency ControlDatabase Concurrency ControlRedis Concurrency ControlKafka Concurrency ControlCompare Concurrency ControlDatabase Lock데이터베이스 락의 종류데이터베이스 락(Lock)의 종류와 역할공유 락(Shared Lock, Read Lock)데이터를 변경하지 않는 ..
| JPQL(Java Persistence Query Language) - 테이블이 아닌 엔티티 객체를 대상으로 검색하는 객체지향 쿼리- SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않음- JPA는 JPQL을 분석한 후 적절한 SQL을 만들어 데이터베이스를 조회- 방언(Dialect)만 변경하면 JPQL을 수정하지 않고 자연스럽게 DB 변경 가능 > 회원 엔티티1234567@Entity(name = "Member")public class Member { @Column(name = "name") private String username; // ...}cs > JPQL- 엔티티 이름과 엔티티 객체의 필드 명으로 작성12String jpql = "select m from Member as m wh..