분류 전체보기(363)
-
DBMS - 데이터베이스 락(lock) 종류와 트랜잭션 격리수준(isolation level)
RDBMS에서 데이터를 일관성을 위한 동기화(Lock)을 설정하는 방법은 크게 2가지로 나뉜다. 하나는 비관적 락, 나머지 하나는 낙관적 락이다. 아래는 각각에 대한 개략적인 설명이다. Pessimistic lock(비관적 락)비관적 락이란 트랜잭션이 시작될 때 데이터의 행에 Shared Lock 또는 Exclusive Lock을 걸고 시작하는 방법이다. 즉, write를 하기위해서는 Exclucive Lock을 얻어야하는데 Shared Lock이 다른 트랜잭션에 의해서 걸려 있으면 해당 Lock을 얻지 못해서 업데이트를 할 수 없다 수정을 하기 위해서는 shared lock을 설정한 트랜잭션이 종료(commit or rollback)된 후 exclusive lock을 설정해야한다. shared l..
2025.01.22 -
Spring - lettuce redis mget 동작 방식 설명
https://brunch.co.kr/@springboot/359 레디스 클러스터 Mget 명령은 어떻게 동작하는가?스프링부트, Lettuce 를 사용해서 Mget 동작방식 분석 | 이 글에서는, 레디스 클러스터 환경에서 Mget 명령으로 다수키 조회가 어떻게 동작하는지 검토한다. 스프링부트 및 Lettuce 라이브러리를 사용brunch.co.kr
2025.01.14 -
Java - Virtual thread(가상 쓰레드)
오늘 알아볼 주제는 JDK 21부터 정식으로 도입된 Virtual Thread이다. 불가 얼마전까지만 해도 Webflux나 Kotlin의 Coroutine을 이용해 애플리케이션을 개발하였는데, 최근에 Virtual Thread를 도입하면서 조금더 깊은 이해를 가지고 사용하는 것이 좋다 생각하여 정리해본다. 우선 Virtual Thread를 알아보기전에 Java의 전통적인 Thread 모델에 대해 다시한번 되짚어보자. Thread란? 위 그림과 같이 우선 Thread에는 유저 레벨 쓰레드, 커널 레벨 쓰레드, 혼합형 쓰레드가 있다. 유저 레벨 쓰레드사용자 스레드는 커널 영역의 상위에서 지원되며 일반적으로 사용자 레벨의 라이브러리를 통해 구현되며, 라이브러리는 스레드의 생성 및 스케줄링 등에 관한 관리 기..
2024.11.30 -
Spring - @Transaction propagation&중첩 트랜잭션 롤백
참고https://techblog.woowahan.com/2606/ 응? 이게 왜 롤백되는거지? | 우아한형제들 기술블로그이 글은 얼마 전 에러로그 하나에 대한 호기심과 의문으로 시작해서 스프링의 트랜잭션 내에서 예외가 어떻게 처리되는지를 이해하기 위해 삽질을 해본 경험을 토대로 쓰여졌습니다. 스프링의techblog.woowahan.com
2024.11.29 -
Redis - Redisson을 이용한 분산락(Distributed lock)
참고https://helloworld.kurly.com/blog/distributed-redisson-lock/ 풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson어노테이션 기반으로 분산락을 사용하는 방법에 대해 소개합니다.helloworld.kurly.com
2024.11.29 -
JPA - @JoinColumn 정리
참고블로그https://ksh-coding.tistory.com/105 [JPA] @JoinColumn 파헤치기 (feat. JPA 연관관계별 사용)✌🏻 0. 들어가기 전 JPA 강의 중에 @JoinColumn을 마스터하면 JPA 연관관계를 어느정도는 다 알 수 있다고 들었다. 그래서, 여러 JPA 개념 중에 @JoinColumn에 대해 파헤쳐보면서 JPA 연관관계를 이해해보ksh-coding.tistory.com @JoinColumn의 name 속성name 속성은 연관관계의 주인(@JoinColumn을 가진)의 테이블의 FK 필드명을 뜻한다.* 참조하는 Entity가 존재할 경우: 참조하는 Entity의 필드명 + "_" + 참조된 기본 키 열의 이름public class Station { ... ..
2024.07.18