본문 바로가기
개발자 면접 질문

IT 면접 질문 – 트랜잭션(Transaction)과 ACID 원칙

by 개발자 굳덜이 2025. 2. 6.
반응형

트랜잭션(Transaction)은 데이터베이스에서 아주 중요한 개념이에요.
그래서 IT 면접에서도 자주 나오는 질문 중 하나죠.
오늘은 트랜잭션의 개념과 ACID 원칙을 중심으로 면접 질문을 정리해볼게요!


1. 트랜잭션(Transaction)이란?

트랜잭션은 데이터베이스에서 하나의 논리적인 작업 단위를 의미해요.
여러 개의 작업이 하나의 트랜잭션으로 묶여 실행되죠.
트랜잭션이 정상적으로 끝나면 commit(저장) 되고,
중간에 문제가 생기면 rollback(되돌리기) 돼요.

예제: 온라인 쇼핑몰에서 결제를 진행하는 경우

  1. 상품 재고 차감
  2. 결제 정보 저장
  3. 주문 내역 업데이트

이 과정 중 하나라도 실패하면 전체가 취소돼야 해요!


2. ACID 원칙이란?

트랜잭션이 신뢰할 수 있도록 작동하려면 ACID 원칙을 따라야 해요.

Atomicity (원자성): 트랜잭션은 모두 수행되거나, 전혀 수행되지 않아야 해요.
Consistency (일관성): 트랜잭션 실행 후에도 데이터가 무결성을 유지해야 해요.
Isolation (고립성): 동시에 실행되는 트랜잭션이 서로 영향을 주면 안 돼요.
Durability (지속성): 트랜잭션이 끝난 후에는 데이터가 영구적으로 저장돼야 해요.


3. 면접에서 자주 묻는 질문

면접에서 이런 질문이 나올 수 있어요.

  • 트랜잭션이란 무엇인가요?
  • ACID 원칙을 설명해주세요.
  • 트랜잭션이 실패하면 어떤 일이 발생하나요?
  • 트랜잭션의 고립성 수준에는 어떤 것들이 있나요?
  • 트랜잭션과 롤백을 어떻게 활용할 수 있나요?

이 질문들을 미리 연습해보면 좋아요!


4. 실전 답변 예시

Q: 트랜잭션의 고립성(Isolation) 수준에는 어떤 것들이 있나요?

A: 고립성 수준(Isolation Level)은 트랜잭션 간 간섭을 얼마나 허용하는지를 결정해요.

1️⃣ Read Uncommitted – 커밋되지 않은 데이터를 읽을 수 있음 (Dirty Read 가능)
2️⃣ Read Committed – 커밋된 데이터만 읽을 수 있음 (Dirty Read 방지)
3️⃣ Repeatable Read – 같은 데이터를 여러 번 읽어도 값이 변하지 않음 (Phantom Read 가능)
4️⃣ Serializable – 가장 엄격한 수준, 트랜잭션을 직렬화하여 실행 (동시성 저하 가능)

이런 차이를 이해하고 설명할 수 있어야 해요!


5. 면접 준비 팁

SQL 실습하기 – 트랜잭션을 직접 실행해 보면서 익혀보세요.
Isolation Level 변경 테스트 – 트랜잭션의 영향을 확인해 보세요.
실무 사례 정리하기 – 트랜잭션이 중요한 이유를 정리해 보세요.


다음 포스트 예고

다음 면접 대비 주제는 "데드락(Deadlock)과 해결 방법"이에요!
더 유용한 면접 대비 팁을 기대해주세요 😊


 

반응형

댓글