FastAPI와 SQLAlchemy에서 이해하는 낙관적 락과 비관적 락
2025. 10. 6. 16:53
컴퓨터 과학/데이터베이스
웹 개발이나 API 설계에서 동시성 문제는 피할 수 없는 주제입니다. 특히 시뮬레이션 실행이나 계좌 잔액 수정처럼 동시에 여러 요청이 들어오는 상황에서는 데이터 정합성을 유지하는 것이 중요합니다. 이를 위해 흔히 사용하는 방법이 락(Lock) 전략입니다. 이번 글에서는 **낙관적 락(Optimistic Lock)**과 비관적 락(Pessimistic Lock), 그리고 분산 락(Redis 락) 개념을 정리합니다.1. 비관적 락(Pessimistic Lock)원리:데이터를 조회하거나 수정할 때 즉시 잠금다른 트랜잭션이 해당 데이터를 수정하지 못하도록 차단장점:동시성 충돌 방지데이터 정합성 강력 보장단점:락이 유지되는 동안 다른 트랜잭션은 대기 → 성능 저하데드락 가능DB 적용 예 (PostgreSQL + ..
Redis
2022. 12. 3. 18:48
데이터베이스
들어가며 혼자 간단하게 진행 중인 프로젝트에 Redis 를 사용하게 되었는데, 정확히 알고 쓰기 위해 Redis 에 대해 공부했고 학습한 내용을 다시 한 번 정리하고자 합니다. 여러 블로그 및 공식 문서를 보며 정리한 내용이니 내용에 일부 오류가 있을 수 있습니다. 피드백은 언제나 환영합니다. Redis 란? - Remote Dictionary Server 의 약어로 단어의 이미에서 보면 외부에 key-value 를 저장하는 서버를 말합니다. - 메모리 기반의 "키-값" 구조(Java의 HashMap) 데이터 관리 시스템입니다. - 모든 데이터를 메모리에 저장하고 조회하는 비 관계형(NoSQL) 데이터베이스입니다. Redis 의 특징 1. (인메모리) 모든 데이터를 메모리에 저장하고 조회하기때문에 빠른 ..