프로덕션 백엔드 API 캡스톤 · 데이터 무결성과 재시도 · 퀴즈
퀴즈: PostgreSQL 데이터 경계
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
여러 조직이 같은 멱등 키를 독립적으로 쓸 수 있게 하는 가장 정확한 제약은?
- idempotency_key 열 하나의 전역 UNIQUE 제약
- 애플리케이션 메모리 집합에 키를 보관
- UNIQUE (org_id, idempotency_key) 복합 제약
- 요청마다 임의 키를 서버가 새로 생성
동시에 도착한 두 생성 요청의 중복 경쟁을 막는 가장 강한 위치는?
- 클라이언트 버튼을 잠시 비활성화하는 화면
- 응답을 보낸 뒤 실행하는 비동기 중복 검사
- 로그 수집기가 같은 키를 나중에 탐지하는 단계
- PostgreSQL 트랜잭션 안의 UNIQUE와 ON CONFLICT
마이그레이션 검증 증거로 가장 신뢰할 수 있는 것은?
- SQL 파일 이름이 001로 시작하는지 확인
- CREATE TABLE 문자열이 포함됐는지 검색
- 코드 리뷰어가 문법을 눈으로 한 번 확인
- PostgreSQL 16 격리 스키마에 적용하고 제약 위반을 실행
같은 멱등 키로 온 재시도가 다른 금액을 담고 있을 때 충돌 경로가 해야 할 일은?
- 처음 만들어진 주문을 그대로 돌려준다
- 새 금액으로 기존 주문을 갱신하고 200을 준다
- 충돌이므로 409를 주고 아무것도 돌려주지 않는다
- 두 금액의 평균으로 주문 금액을 다시 계산한다
마이그레이션을 BEGIN 과 COMMIT 사이에서 실행하는 이유는?
- 실행 시간이 짧아져 잠금 대기가 사라진다
- 실패하면 중간 상태가 남지 않고 통째로 되돌아간다
- 인덱스가 자동으로 병렬 생성된다
- 다른 세션이 같은 이름의 테이블을 못 만들게 막는다
데이터베이스 제약 위반을 API 가 다루는 올바른 방식은?
- 제약을 없애고 애플리케이션 조건문으로 옮긴다
- 예외를 그대로 500 으로 흘려보낸다
- 409나 400 같은 의미 있는 상태로 번역하되 제약은 그대로 둔다
- 예외 메시지에 실행한 SQL 과 인자를 담아 돌려준다