synchronized 메커니즘과 자바 동기화 최적화 기법
사용자 모드와 커널 모드
JVM에서 스레드 동기화는 초기에는 운영체제의 커널 레벨 리소스를 사용하는 시스템 콜을 필요로 했습니다. 이 방식은 무거운 잠금(heavyweight lock)으로 알려져 있으며, 컨텍스트 스위칭 비용이 크기 때문에 성능에 부담을 줍니다. 현대 JVM은 이러한 문제를 해결하기 위해 다양한 사용자 모드 내 최적화 기법을 도입했습니다.
CAS (Compare-an ...
6월 25일 19:39에 게시됨
Apache Shiro를 이용한 웹 애플리케이션 보안 구성
Apache Shiro는 인증, 권한 부여, 암호화, 세션 관리 등의 기능을 제공하는 강력하면서도 통합이 용이한 오픈소스 보안 프레임워크입니다. 인증과 권한 부여는 보안의 핵심 요소로, 간단히 말해 '인증'은 사용자가 누구인지 증명하는 과정이며, 웹 애플리케이션에서는 일반적으로 폼을 통해 사용자 이름과 비밀번호를 제출하여 인증을 수행합니다. '권한 부여'는 인증된 사 ...
6월 12일 01:29에 게시됨
Java의 Synchronized와 CAS: 비관적 잠금과 낙관적 잠금 이해하기
Java에서 Synchronized는 비관적 잠금의 대표적인 예로, 어떤 데이터 접근이든 무조건 잠금을 걸어야 한다는 원칙을 따릅니다. 이는 사용자 모드와 커널 모드 간 전환, 잠금 카운터 관리 및 차단된 스레드 검사 등을 포함하는 복잡한 과정을 필요로 합니다.
하지만 하드웨어 명령어 집합의 발전으로 인해 충돌 감지 기반의 낙관적 동시성 제어가 가능해졌습니다. 먼저 작업 ...
6월 6일 02:21에 게시됨