그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Concurrency
Concurrency

공유 락과 배타 락에 대해서 설명해주세요.

실무4/5
설계4/5
인간4/5
기초3/5

면접관의 질문 의도

두 락의 정의를 외워서 답하는지, 충돌이 어떻게 대기와 데드락으로 번지는지를 흐름으로 설명할 수 있는지를 가른다.

큐레이션 답변

학습 자료

공유 락(Shared Lock, S Lock)은 같은 자원에 다른 트랜잭션의 읽기를 함께 허용하고 쓰기는 막는다. 배타 락(Exclusive Lock, X Lock)은 읽기와 쓰기를 모두 차단해 그 자원을 단독 점유한다. S끼리는 공존하지만 X는 누구와도 공존하지 못해, 충돌하면 뒤따라온 트랜잭션은 대기 큐로 밀린다. 락은 정합성을 지키는 도구지만 트랜잭션 길이와 자원 접근 순서를 같이 설계하지 않으면 대기 폭증과 데드락의 원인이 된다.

좋은 답변 구조

  1. 01S 락과 X 락의 정의와 호환성 관계를 먼저 정리한다
  2. 02두 락이 어떻게 획득·해제되고 충돌 시 어떻게 대기하는지 흐름으로 설명한다
  3. 03데드락이 발생하는 전형적 시나리오와 그 원인을 짚는다
  4. 04대기·데드락을 줄이기 위한 트랜잭션 설계 원칙으로 마무리한다

자주 실수하는 포인트

공유 락끼리도 서로를 막는다고 잘못 답한다
락 호환성과 격리 수준을 같은 층위로 섞어서 설명한다
데드락 원인을 락 종류 탓으로만 돌리고 자원 접근 순서 문제로 보지 못한다
S/X 락만 말하고 갭 락·인텐션 락 같은 확장 개념은 빠뜨린다

실무 맥락

  • 같은 행을 동시에 갱신하려는 요청이 자주 몰리는 결제·재고 시스템
  • 야간 배치와 주간 운영 트랜잭션이 같은 테이블을 건드리는 환경
  • 비관적 락으로 잔액·좌석 같은 단일 자원을 직렬화해야 하는 시스템

본인 경험에 녹이는 힌트

배치 작업이 운영 쿼리와 부딪쳐 대기가 폭증했던 경험과 락 획득 순서를 통일한 결정을 연결할 수 있다

데드락 로그를 보고 두 트랜잭션의 접근 순서를 맞춰 문제를 해결한 경험을 풀어낼 수 있다

조회 트랜잭션을 길게 잡아 쓰기가 막혔던 경험과 트랜잭션 범위를 줄인 결정을 엮을 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1FOR SHARE와 FOR UPDATE는 어떤 상황에서 골라 쓰나요
Q2데드락 로그를 보고 원인 트랜잭션을 어떻게 좁히나요
Q3락 타임아웃과 재시도 정책은 어떤 기준으로 정하나요
Q4비관적 락 대신 낙관적 락을 쓰면 무엇이 달라지나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문