
[개발 일기] 2025.01.05 - 자바 객체 락 (synchronized)
·
개발 일기
개요 우리가 보통 동기화 환경을 구축할 때, 아래의 예제 코드와 같이 동기화 환경이 설정된 메서드에 진입하기 위해선 락을 획득해야 한다고 한다. public OrderService { ... public synchronized void createOrder(OrderCreateRequest request) { // 주문 생성 & 재고 차감 로직 } ... } 그렇다면 이 락이 뭐고, 도대체 어디에 있는지에 대해 알아보자 락 락(Lock)은 동기화를 구현하기 위한 기술로, 여러 스레드(사용자)가 공유 리소스에 접근할 때 데이터의 무결성을 보장하기 위해 사용된다. 락은 동시에 하나의 스레드만 특정 리소스에 접근할 수 있도록 제어하는 역할을 한다. 쉽게 설명하면 데이..