핵심정의에서 판단축까지
‘같은 요청을 반복해도 중복 처리하지 않는다’는 문장을 알고 있다고 하자. 이것만으로 연결이 끊기는 신청 서비스를 설계할 수 있을까? 요청의 동일성을 무엇으로 구별하고, 서버가 저장한 뒤 응답만 사라졌으면 어떻게 확인하며, 외부 통지는 어떻게 처리하는지까지 설명해야 한다.
핵심정의에서 판단축까지
25점 답안은 10점 답안을 두 번 쓰는 것인가
‘같은 요청을 반복해도 중복 처리하지 않는다’는 문장을 알고 있다고 하자. 이것만으로 연결이 끊기는 신청 서비스를 설계할 수 있을까? 요청의 동일성을 무엇으로 구별하고, 서버가 저장한 뒤 응답만 사라졌으면 어떻게 확인하며, 외부 통지는 어떻게 처리하는지까지 설명해야 한다.
짧은 답안은 핵심을 정확히 구별하는 능력을, 긴 설계 답안은 그 원리를 조건·경계·대안·검증에 사용하는 능력을 연습한다. 실제 점수는 글자 수와 비례하지 않는다. 이 절의 10점·25점은 자체 문제의 학습 배점이며 공식 답안 분량이나 채점 공식을 정한 것이 아니다.
읽는 순서: 같은 기간과 겹치는 기간에서 조건을 확인하고 10점 원리를 25점 판단으로 확장하는 방법을 따라간다. 자체 문제는 먼저 답한 뒤 풀이를 펼친다. 조건 변경에서는 결과와 유지되는 원리를 함께 적고 오답 교정으로 돌아간다.
요구어, 신청·배정의 정합성, 모바일의 연결·동기화, 회복성 목표를 적용한다. 처음 읽을 때는 답안의 근거를 앞 본문과 대조하고, 다시 읽을 때는 문제를 먼저 풀어 같은 논리를 자신의 말로 작성한다.
1. 핵심정의에서 다섯 질문을 꺼낸다
10점에서 25점 확장은 핵심정의와 불변조건을 유지하면서 문제의 요구범위에 맞게 구조·원리·비교·적용·통제·검증·결론의 판단층을 더하는 방법이다.
출발점은 새 암기문장이 아니라 앞에서 배운 경계다. 멱등하게 처리하려는 목적은 같은 업무 요청의 반복이 추가 효과를 만들지 않도록 하는 것이다. 네트워크에서 응답을 받지 못했다는 사실만으로 서버의 처리 실패를 확정할 수는 없다.
| 질문 | 요청 재시도에 대입한 내용 | 확장 답안의 위치 |
|---|---|---|
| 대상은 무엇인가 | 메시지·요청·사람·배정·통지는 서로 다름 | 정의와 범위 |
| 지킬 조건은 무엇인가 | 자원의 겹치는 배정과 같은 요청의 중복 효과 방지 | 불변조건·기준 원장 |
| 어떻게 지키는가 | 요청 고유성·결과 저장·조건 재검사·대사 | 구조·절차 |
| 언제 깨지는가 | 동시 요청·응답 소실·새 ID 중복·다른 내용 재사용·외부 효과 | 실패·한계 |
| 무엇으로 확인하는가 | 같은 요청·다른 요청·겹치는 기간·취소·복구의 결과 | 시험·운영·중단 |
이 다섯 질문은 모든 답안에 같은 소제목을 기계적으로 붙이라는 양식이 아니다. 주제의 정의를 실제 판단으로 연결하는 사고 도구다. 문제에서 비교를 요구하면 대안 축을, 정책효과를 요구하면 대상·변화경로·평가를 추가한다.
2. AX-1: 연결이 끊기는 장비 대여 신청
가상의 교육센터가 장비 대여 신청을 받는다. 사용 가능한 장비는 정해져 있고, 같은 장비의 이용 시간이 겹치는 두 대여를 함께 확정해서는 안 된다. 모바일 앱은 연결이 끊기거나 다시 시작될 수 있다. 서버의 대여 원장이 확정 기준이고, 휴대전화에 표시된 마지막 가용 상태는 참고값이다.
| 주어진 조건 | 답안이 지켜야 할 의미 |
|---|---|
| 서버 원장이 확정 기준 | 단말의 오래된 가용 정보만으로 대여 확정 금지 |
| 오프라인 입력 허용 | 단말 저장·전송 대기와 서버 접수를 구별 |
| 같은 요청 재전송 가능 | 한 업무 요청의 반복 효과 방지 |
| 응답 소실 가능 | 실제 실패와 결과 미확인을 분리 |
| 외부 안내 별도 | 대여 확정과 메시지 전달을 나누어 관리 |
| 개인정보·권한 필요 | 자기 요청·직원 보조·관리의 권한과 근거 확인 |
이 예제는 대여 규칙과 장비 상태가 업무적으로 정해져 있다고 가정한다. 법정 자격·신청 우선순위·보유기간을 임의로 만들지 않는다. 실제 구현의 저장·동시성·인증은 선택한 제품과 코드의 검증이 필요하며 이 원고가 실행한 것은 아니다.
같은 기간과 겹치는 기간은 다르다
장비 A의 기존 대여가 10:00~11:00이고 새 신청이 10:30~11:30이라면 시작·끝의 조합은 다르지만 30분이 겹친다. (장비, 시작, 끝) 값이 완전히 같은 행만 금지하는 고유 제약으로는 이 충돌을 막을 수 없다. 사람·요청 ID의 중복과 자원의 시간 겹침은 다른 불변조건이다.
이 예의 시간 구간은 시작을 포함하고 끝은 포함하지 않는 [시작, 끝)으로 정한다. 따라서 10:00~11:00과 11:00~12:00은 겹치지 않는다. 모든 시각은 같은 날·시간 기준이고, 시작은 끝보다 이르며, 별도의 반납 점검·정리 시간은 없다는 계산 조건이다. 정리 시간이 필요하면 그 점유 시간까지 포함하도록 업무 규칙을 바꿔야 한다. 구간의 경계 포함 여부는 데이터 표현에서도 일치시킨다.1
기존 구간을 [a,b), 새 구간을 [c,d)라고 쓰면 겹침 조건은 a < d와 c < b가 둘 다 참인 경우다. 한 구간이 끝난 다음 다른 구간이 시작하거나, 그 반대라면 겹치지 않는다는 관계를 뒤집은 식이다. 10:00~11:00과 10:30~11:30에는 두 조건이 모두 성립하지만, 11:00에 시작하는 다음 대여에는 11:00 < 11:00이 거짓이다.
구간의 검사를 한 트랜잭션에 넣었다는 말만으로도 충분하지 않다. 두 요청이 모두 기존 대여가 없음을 읽은 뒤 각각 삽입할 수 있기 때문이다. AX-G1은 한 장비의 배정을 바꾸는 모든 경로가 항상 존재하는 그 장비의 기준 행을 먼저 잠그고, 대기 후 현재 확정 구간을 다시 조회·판단한 다음 기록하도록 순서를 통일하는 안을 선택한다. 잠금은 거래가 끝날 때까지 유지하며 사람 응답이나 외부 발송을 기다리는 동안 잡아 두지 않는다.2
이미 존재하는 대여 행만 잠그는 방식은 아직 대여가 하나도 없을 때 무엇을 잠글지 설명하지 못한다. 선택한 장비 기준 행의 직렬화가 실제 격리수준·조회 시점에서 작동하고 모든 변경 경로에 적용되는지 확인해야 한다. 데이터베이스가 지원하면 같은 자원의 겹치는 범위를 금지하는 배타 제약도 검토할 수 있다. PostgreSQL의 범위 제약 설명은 단순 UNIQUE와 ‘구간이 겹치지 않음’의 차이를 구별한다.1 이 원고는 특정 SQL의 실행 결과나 모든 DBMS에서의 자동 보장을 주장하지 않는다.
3. 10점 문제: 실패와 미확인을 구별하는 핵심 답안
AX-1에서 요청 재시도의 중복 효과를 막는 원리와 응답 소실 시 처리 방법을 설명하시오.
10점 문제의 작성 과정과 완성 답안 보기
작성 전 골격
목차: 요청 동일성 → 원자적 확정 → 결과 미확인 → 외부 효과의 한계.
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
요청 ID는 같은 내용과 함께 확인하고, 서버가 고유성과 중복 효과 방지를 실제로 집행해야 한다. 같은 ID의 다른 내용은 충돌이다. 응답 소실·재시도에서는 기록된 결과와 현재 상태를 조회하며, 외부 통지는 별도 근거로 대사한다. 통지 결과가 이미 확정된 대여를 다시 결정하지 않는다.
첫 문장에서 반복 요청과 업무 효과를 구별한다. 다음으로 요청 ID·결과 저장·원자적 확정과 동시성 통제의 연결을 설명한다. 마지막에는 실제 상태 조회와 외부 효과의 한계를 적는다. 오프라인 저장 장치의 모든 종류나 모바일 OS의 역사는 이 요구에 직접 답하지 않는다.
완성 답안
요청 재시도는 전달 실패 가능성에 대응하지만 같은 대여를 여러 번 확정해서는 안 된다. AX-1은 요청자·업무 범위에 묶은 요청 ID와 내용을 저장하고, 같은 요청에는 기록된 결과를 확인해 반환한다. 같은 ID의 동시 처리는 사전 조회만이 아니라 DB의 고유성·충돌 처리로 통제한다. 같은 ID에 다른 내용을 넣으면 충돌로 처리하고 새 ID의 같은 업무는 별도의 업무 규칙으로 판단한다.
서버는 장비의 현재 상태와 겹치는 대여 구간을 확인하여 대여·요청 결과·알릴 작업을 같은 트랜잭션으로 확정한다. 모든 관련 변경 경로가 장비 기준 행의 잠금과 현재 구간 재검사를 사용하도록 하며, 정확히 같은 기간만 금지하는 조건으로 부분 겹침을 대신하지 않는다. 오류 시 부분 확정이 남지 않게 한다. 단말의 오래된 가용 정보는 서버의 확정 근거가 아니다.
응답이 소실되면 서버가 이미 처리했을 수 있으므로 같은 요청 ID로 상태를 조회하거나 재요청한다. 기록된 과거 요청 결과와 현재 대여 상태는 구별하며 이미 취소한 대여를 재전송으로 부활시키지 않는다. 외부 안내의 실제 전달은 DB 확정과 다른 경계이므로 통지 ID·결정판본·공급자 결과·정정을 따로 대사한다. 단순한 ID 생성만으로 전체 설계가 완성되지는 않는다.
4. 25점으로 확장할 때 추가되는 것은 판단의 층이다
10점 답안에서 쓴 원리를 버리지 않는다. 그것을 이용자가 보는 상태, 책임이 있는 자료, 선택한 구조, 실패 경로, 검증과 운영까지 확장한다. 같은 정의를 다섯 번 반복하는 대신 정의의 각 조건이 어디에서 지켜지는지 보여 준다.
| 유지할 핵심 | 확장할 판단 | AX-1에서 실제로 정한 것 |
|---|---|---|
| 요청의 동일성 | 식별·내용·사용자·수명·동시 처리 | 요청 ID와 내용·업무 범위를 고유한 서버 결과에 연결 |
| 원자적 확정 | 장비·시간 구간·상태·배정 금지 조건 | 장비별 현재 구간을 잠금과 함께 확인하고 관련 결과를 한 거래로 확정 |
| 결과 미확인 | 단말 상태·복구·표시 | 로컬 저장·전송 중·미확인·서버 접수·확정을 구별 |
| 외부 효과 | 알림·중복·최신 결정·역전 | 통지 ID·결정판본·실제 전달과 정정을 대사 |
| 검증 | 정상·중복·기간 겹침·취소·권한·중단 | 기대 상태·실제 결과·미완료를 담당자에게 연결 |
대안은 두 개 이상 이름만 쓰는 것이 아니다. ‘오프라인 즉시 확정’은 이 사례에서 현재 원장을 확인할 수 없고 별도 할당 근거도 없으므로 기각한다. ‘오프라인 입력 후 서버에서 확정’은 기다림을 늘리지만 중복 배정의 위험을 줄이는 선택이다. 기다림의 대가를 숨기지 않고 상태 조회·지원·연결 복구를 설계한다.
일부 오프라인 서비스는 사전에 할당한 자원이나 별도 허용 규칙으로 제한된 확정을 할 수 있다. 그러나 AX-1에는 그런 전제가 없다. 문제에 없는 사전 할당이 존재한다고 가정해 항상 즉시 확정 가능하다고 답하지 않는다.
5. 25점 문제와 완성 설계 답안
AX-1의 모바일 대여 서비스를 설계하시오. 오프라인 상태, 동시 대여·중복·취소, 외부 통지, 권한, 검증·운영을 포함하시오.
25점 문제의 도식·선택 이유·완성 답안 보기
도식과 목차
목차: 범위·원장 → 오프라인·거래 → 통지·권한 → 시험·운영 → 선택의 한계.
새 배정은 장비 순서 통제 뒤 한 거래로 확정한다 · 상태 따라가기
단말은 ID·내용을 로컬에 저장하고 전송을 기다린다. 모든 단계에서 단말 요청·인증·장비·거래 원장의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
새 요청의 정상 배정 경로다. 거래 밖의 조회와 거래 안의 요청 고유성 집행을 구별한다. 동시 중복은 DB 제약·충돌 처리로 집행하고 충돌 시 부분 변경을 롤백한다. 같은 ID·같은 내용의 재시도는 기존 결과와 현재 상태로 돌아가며, 같은 ID의 다른 내용은 충돌이다. ID가 달라도 시간 구간은 겹칠 수 있다. 모든 장비 변경 경로가 기존 장비 기준 행을 먼저 잠그고, 기다린 뒤 현재 구간을 다시 검사해야 한다. 실제 DB 제품·격리 수준·배타 제약의 작동은 별도 검증 대상이다.
이 예의 조건
- 새 요청의 정상 배정 경로다. 거래 밖의 조회와 거래 안의 요청 고유성 집행을 구별한다. 동시 중복은 DB 제약·충돌 처리로 집행하고 충돌 시 부분 변경을 롤백한다. 같은 ID·같은 내용의 재시도는 기존 결과와 현재 상태로 돌아가며, 같은 ID의 다른 내용은 충돌이다. ID가 달라도 시간 구간은 겹칠 수 있다. 모든 장비 변경 경로가 기존 장비 기준 행을 먼저 잠그고, 기다린 뒤 현재 구간을 다시 검사해야 한다. 실제 DB 제품·격리 수준·배타 제약의 작동은 별도 검증 대상이다.
- 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.
관계도의 보충 설명
| 대상 | 원 설명 |
|---|---|
| 단말 입력·임시 요청 ID·내용 | 입력은 서버의 접수·확정과 다름 |
| 로컬 저장·전송 대기 | 공통 자원은 오프라인에서 미확정 |
| 연결·현재 인증 확인 | 미확인·실패에서는 대기·보류 |
| 요청 내용·기존 결과 조회 | 조회에서 없음은 동시 고유성의 증거가 아님 |
| 요청 고유성 확보·장비 잠금 | 모든 배정·취소 경로가 같은 장비 기준 |
| 현재 점유 구간 재검사 | 잠금 대기 뒤 현재 확정 구간을 확인 |
| 대여·요청 결과·알릴 작업 확정 | 같은 DB 거래로 함께 기록 |
| 연결 | 원 라벨·방향 |
|---|---|
| 단말 입력·임시 요청 ID·내용 → 로컬 저장·전송 대기 | 저장 / 정방향 / 실선 |
| 로컬 저장·전송 대기 → 연결·현재 인증 확인 | 확인 / 정방향 / 실선 |
| 연결·현재 인증 확인 → 요청 내용·기존 결과 조회 | 연결 후 / 정방향 / 실선 |
| 요청 내용·기존 결과 조회 → 요청 고유성 확보·장비 잠금 | 새 배정 / 정방향 / 실선 |
| 요청 고유성 확보·장비 잠금 → 현재 점유 구간 재검사 | 잠금 후 / 정방향 / 실선 |
| 현재 점유 구간 재검사 → 대여·요청 결과·알릴 작업 확정 | 충돌 없음 / 정방향 / 실선 |
| 경계 | 포함 대상 |
|---|---|
| DB 거래 · 고유성·장비 순서·확정 | 요청 고유성 확보·장비 잠금, 현재 점유 구간 재검사, 대여·요청 결과·알릴 작업 확정 |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 오프라인 보존 단말은 ID·내용을 로컬에 저장하고 전송을 기다린다. |
|
|
| 연결·현재 확인 연결 후 현재 인증과 같은 요청 내용·기존 결과를 대조한다. |
|
|
| 고유성·장비 잠금 새 배정은 요청 고유성과 장비 기준 행 잠금을 확보한다. |
|
|
| 현재 구간 재검사 잠금 뒤 현재 확정 점유와 [시작,끝) 겹침을 검사한다. |
|
|
| 원자 확정 허용되면 대여·요청 결과·알릴 작업을 함께 확정한다. |
|
|
새 배정은 장비 순서 통제 뒤 한 거래로 확정한다 · 상태 따라가기
단말은 ID·내용을 로컬에 저장하고 전송을 기다린다. 모든 단계에서 단말 요청·인증·장비·거래 원장의 위치를 유지하며 값과 허용 조건을 함께 확인합니다.
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
새 요청의 정상 배정 경로다. 거래 밖의 조회와 거래 안의 요청 고유성 집행을 구별한다. 동시 중복은 DB 제약·충돌 처리로 집행하고 충돌 시 부분 변경을 롤백한다. 같은 ID·같은 내용의 재시도는 기존 결과와 현재 상태로 돌아가며, 같은 ID의 다른 내용은 충돌이다. ID가 달라도 시간 구간은 겹칠 수 있다. 모든 장비 변경 경로가 기존 장비 기준 행을 먼저 잠그고, 기다린 뒤 현재 구간을 다시 검사해야 한다. 실제 DB 제품·격리 수준·배타 제약의 작동은 별도 검증 대상이다.
이 예의 조건
- 새 요청의 정상 배정 경로다. 거래 밖의 조회와 거래 안의 요청 고유성 집행을 구별한다. 동시 중복은 DB 제약·충돌 처리로 집행하고 충돌 시 부분 변경을 롤백한다. 같은 ID·같은 내용의 재시도는 기존 결과와 현재 상태로 돌아가며, 같은 ID의 다른 내용은 충돌이다. ID가 달라도 시간 구간은 겹칠 수 있다. 모든 장비 변경 경로가 기존 장비 기준 행을 먼저 잠그고, 기다린 뒤 현재 구간을 다시 검사해야 한다. 실제 DB 제품·격리 수준·배타 제약의 작동은 별도 검증 대상이다.
- 이 원문의 교육용 사례·조건 안에서 상태를 대조합니다. 실제 구축·실험 결과나 원문에 없는 성능 보장을 추가하지 않습니다.
관계도의 보충 설명
| 대상 | 원 설명 |
|---|---|
| 단말 입력·임시 요청 ID·내용 | 입력은 서버의 접수·확정과 다름 |
| 로컬 저장·전송 대기 | 공통 자원은 오프라인에서 미확정 |
| 연결·현재 인증 확인 | 미확인·실패에서는 대기·보류 |
| 요청 내용·기존 결과 조회 | 조회에서 없음은 동시 고유성의 증거가 아님 |
| 요청 고유성 확보·장비 잠금 | 모든 배정·취소 경로가 같은 장비 기준 |
| 현재 점유 구간 재검사 | 잠금 대기 뒤 현재 확정 구간을 확인 |
| 대여·요청 결과·알릴 작업 확정 | 같은 DB 거래로 함께 기록 |
| 연결 | 원 라벨·방향 |
|---|---|
| 단말 입력·임시 요청 ID·내용 → 로컬 저장·전송 대기 | 저장 / 정방향 / 실선 |
| 로컬 저장·전송 대기 → 연결·현재 인증 확인 | 확인 / 정방향 / 실선 |
| 연결·현재 인증 확인 → 요청 내용·기존 결과 조회 | 연결 후 / 정방향 / 실선 |
| 요청 내용·기존 결과 조회 → 요청 고유성 확보·장비 잠금 | 새 배정 / 정방향 / 실선 |
| 요청 고유성 확보·장비 잠금 → 현재 점유 구간 재검사 | 잠금 후 / 정방향 / 실선 |
| 현재 점유 구간 재검사 → 대여·요청 결과·알릴 작업 확정 | 충돌 없음 / 정방향 / 실선 |
| 경계 | 포함 대상 |
|---|---|
| DB 거래 · 고유성·장비 순서·확정 | 요청 고유성 확보·장비 잠금, 현재 점유 구간 재검사, 대여·요청 결과·알릴 작업 확정 |
| 관찰·상황 | 값·보충 정보 | 변화·이유 |
|---|---|---|
| 오프라인 보존 단말은 ID·내용을 로컬에 저장하고 전송을 기다린다. |
|
|
| 연결·현재 확인 연결 후 현재 인증과 같은 요청 내용·기존 결과를 대조한다. |
|
|
| 고유성·장비 잠금 새 배정은 요청 고유성과 장비 기준 행 잠금을 확보한다. |
|
|
| 현재 구간 재검사 잠금 뒤 현재 확정 점유와 [시작,끝) 겹침을 검사한다. |
|
|
| 원자 확정 허용되면 대여·요청 결과·알릴 작업을 함께 확정한다. |
|
|
상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.
두 경로의 출발 근거는 앞 그림의 같은 거래로 확정된 기록이다. 왼쪽은 권위 있는 서버 대여 상태, 오른쪽은 외부 통지 결과다. 취소는 한 번만 반영하고 현재 판본을 조회한다. 발송 전 판본 확인만으로 늦은 옛 통지를 영구 차단하거나 외부 전달을 정확히 한 번 보장하지 않으며, 미확인·정정 이력을 별도로 대사한다.
원래 가로 그림의 왼쪽 서버 원장 경로는 모바일의 위쪽 경계에, 오른쪽 외부 통지 경로는 아래쪽 경계에 배치했습니다. 두 경로는 독립하며 통지가 원장 확정을 다시 결정하지 않습니다.
화살표는 자료·상태 전달이다. 외부 통지의 성공이 서버의 대여 확정을 다시 결정하는 화살표를 그리지 않는다. 목차는 범위·원장 → 오프라인·거래 → 통지·권한 → 시험·운영 → 선택의 한계다.
완성 설계 답안
AX-G1은 장비의 겹치는 시간 배정을 방지하면서 모바일 입력과 확정 상태를 추적하는 서비스다. 서버 원장을 기준으로 두고 오프라인에서는 입력·요청 ID·내용을 로컬에 저장하되 서버 접수나 대여 확정으로 표시하지 않는다. 사전에 분리 할당한 장비가 없는 이 사례에서 단말의 마지막 가용 정보만으로 즉시 확정하는 안은 기각한다. 대기·미확인 상태와 연결 후 확인 방법을 사용자에게 제공한다.
서버는 요청자·업무 범위·요청 ID와 내용을 대조하며 고유성 제약으로 동시에 같은 요청을 확정하는 경로를 통제한다. 완료한 요청의 기록과 현재 대여 상태를 구별하고 같은 ID의 다른 내용은 거부한다. 새 ID의 같은 대여에는 업무 고유조건을 적용한다. 자원 충돌은 정확히 같은 기간만이 아니라 [시작, 끝) 구간의 겹침으로 판단한다.
같은 장비를 변경하는 모든 경로는 장비 기준 행의 잠금을 확보한 뒤 현재 확정 구간·상태를 다시 확인한다. 기존 대여가 없어도 잠글 수 있는 기준 행을 사용하고, 해당 DB의 격리·조회·잠금 동작을 확인한다. 대여·요청 결과·알릴 작업을 같은 트랜잭션으로 확정하고 오류나 충돌 때 부분 효과를 남기지 않는다. 잠금을 보유한 채 사람 확인이나 외부 발송을 기다리지 않는다.
단말은 작성 중·전송 대기·전송 중·결과 미확인·접수·확정·대기/거절을 구분한다. 서버가 저장한 뒤 응답만 소실되면 같은 요청의 상태를 조회한다. 취소는 허용된 상태에서 실제 한 번의 전이가 일어날 때만 점유 구간·이력을 변경한다. 이미 취소한 요청의 재전송으로 자원을 두 번 반환하거나 과거 확정을 다시 살리지 않는다. 구간형 자원의 가용성은 현재 점유 기록으로 판단하며 정원을 가진 강좌의 단순 잔여 수를 그대로 복사하지 않는다.
외부 안내는 저장된 작업을 처리하며 통지 ID·결정판본·공급자 결과를 연결한다. 이미 낡은 작업은 전송 전에 걸러내되 그 확인 직후에도 취소가 일어날 수 있음을 인정한다. 과거 확정 안내가 늦게 도착하면 현재 원장·실제 발송 이력·취소 또는 정정 안내·최신 조회로 해소한다. 외부 결과를 모르면 미확인으로 관리하고 공급자가 보장하지 않는 전달 순서·중복 방지를 가정하지 않는다.
사용자는 자기 요청만, 직원은 승인된 보조업무만 처리하도록 서버 권한을 확인하고 단말·로그에 필요한 최소 정보를 보존한다. 업무 책임자는 자원·대여·취소 규칙, 개발·데이터 담당은 원장·구간·거래, 운영 담당은 전송·장애·통지, 지원 담당은 미확인·이의를 맡는다. 실제 처리근거·기간은 해당 업무와 법규로 확인한다.
시험은 첫 대여가 없는 상태의 동시 신청, 부분적으로 겹치는 기간과 인접한 기간, 같은 ID의 동시 재전송·내용 충돌, 새 ID 중복, 앱 재시작, 취소 재전송, 권한 없는 조회, 통지 응답 소실·취소 후 역전을 포함한다. 산출물은 상태·거래·권한·대사표와 실제 시험 결과, 오류와 중단·복구 책임이다. 한 장비의 확정 변경을 직렬화하는 대가도 측정하고 제한된 대상에서 동작을 확인한 뒤 확대한다.
6. ‘길어졌다’ 대신 무엇이 추가됐는지 확인한다
25점 답안에는 10점의 원리가 그대로 있다. 달라진 것은 상태·대안·역할·시험·종료의 구체성이다. 다음 자체 확인표는 원고를 고치기 위한 기준이지 공식 채점표나 예상 점수 변환표가 아니다.
| 확인 질문 | 충족의 실제 증거 | 미충족 예 |
|---|---|---|
| 문제 조건을 지켰는가 | 오프라인의 미확정 상태와 서버 원장 | 편의를 위해 단말이 임의 확정 |
| 원리와 구조가 연결됐는가 | 요청·자원 구간·거래·외부 통지의 경계 | 멱등성 정의 뒤 관련 없는 기술 목록 |
| 예외가 구현 가능한가 | 동시 요청·부분 겹침·취소 재시도·통지 역전의 결과 | ‘예외를 처리한다’만 적음 |
| 선택·대가를 설명했는가 | 기다림·장비별 경합을 인정하고 정합성을 지키는 안 | 모든 요구를 비용 없이 충족한다고 선언 |
| 확인·책임이 있는가 | 시나리오·예상 상태·담당·보류 | ‘테스트한다’로 끝냄 |
글을 줄일 때는 장점의 반복과 문제에 없는 배경부터 줄인다. 수식의 분모·시간 기산점·판단을 바꾸는 가정은 남긴다. 결과만 적고 왜 그 값인지 지우면 조건이 바뀌었을 때 다시 풀기 어렵다.
7. 시간 배분도 스스로 확인할 대상으로 둔다
처음에는 제한시간 없이 설명의 정확성을 확보한다. 그다음 본문을 덮고 요구별 골격·도식·핵심 판단을 쓴다. 마지막에 시간을 정해 작성하고 실제로 어디서 오래 걸렸는지 기록한다. 처음부터 속도만 높이면 모르는 원리가 생략된 짧은 답을 반복할 수 있다.
자체 25분 연습의 한 배분은 요구 해석·가정 3분, 골격·도식 4분, 본문 15분, 계산·누락 점검 3분이다. 합계 25분이다. 이 숫자는 교육용 시작안이며 실제 시험의 문항별 공식 제한시간이 아니다. 손글씨 속도·그림·계산의 특성에 맞춰 자신의 기록을 보고 조정한다.
해석에 이미 3분을 쓰고, 이어 도식 작성에 8분을 썼다면 누적 시간은 11분이며 남은 시간은 25−3−8=14분이다. 도식의 8분만 빼서 17분이라고 계산하면 앞선 해석 시간을 빠뜨린다. 남은 14분을 본문 11분·점검 3분으로 다시 나누는 식으로 현재 상태에 맞게 조정한다. 처음 계획의 본문 15분과 점검 3분을 유지하면 총 29분이 된다.
반면 ‘시작 후 지금까지 8분이 지났다’는 관찰이라면 해석 시간도 그 8분 안에 있으므로 남은 시간은 17분이다. 구간 소요시간과 누적 경과시간을 구별해야 한다. 실제 기록 없이 배분이 모두에게 적합하다고 보증하지 않으며 후속 연습에서는 도식의 불필요한 장식을 줄인다.
8. 자체 30점 소형 모의: 세 문제를 모두 풀어 본다
다음 세 문제는 각 10점의 자체 학습문제다. 처음에는 시간 제한 없이 풀고, 재연습에서는 전체 40분을 예시로 사용할 수 있다. 실제 국가시험의 한 교시를 복제한 것이 아니다. 문제별 준비·작성·점검 시간과 막힌 이유를 기록한다.
문제 A — 복구의 두 시간축
서비스가 14:00 중단됐다. 마지막 일관된 복구점은 13:56이다. 서버는 14:20에 켜졌지만 필요한 업무가 검증·승인된 시각은 14:35다. 목표 RPO 5분·RTO 30분이며 RTO는 중단부터 승인된 업무 재개까지로 정의한다. 목표 충족과 알 수 없는 것을 설명하시오.
소형 모의 A의 시간축 풀이 보기
완성 답안 A
자료 복구점과 중단 사이의 차이는 4분이므로 주어진 RPO 5분 안에 든다. 서버 기동은 20분이지만 정한 업무 재개는 35분으로 RTO 30분을 5분 초과한다. 관찰된 자료 공백 4분을 복구 작업시간에 더하지 않으며 서버 기동을 업무 재개로 바꾸지 않는다.
4분 사이에 실제로 몇 건의 변경이 있었는지는 주어지지 않아 손실 건수를 확정할 수 없다. 원장·요청·외부 결과를 대사하고, 복구자료가 일관되고 필요한 거래·권한이 확인됐다는 근거를 남겨야 한다. 이 결과는 예제의 목표 판정이지 실제 복구능력의 증명이 아니다.
문제 B — 같은 요청과 같은 업무
모바일 사용자가 같은 대여에 대해 요청 ID X를 재전송하고, 이어서 새 ID Y로도 요청한다. X에 다른 내용을 붙인 경우도 있다. 세 경우의 판단과 지켜야 할 경계를 설명하시오.
소형 모의 B의 요청·업무·구간 풀이 보기
완성 답안 B
같은 요청자·업무 범위의 X가 같은 내용으로 재전송되면 저장한 처리상태와 결과를 확인해 반복 효과를 막는다. 동시 재전송도 같은 요청을 둘이 새로 확정하지 못하게 고유성·충돌 처리를 적용한다. 응답 소실로 결과만 모를 수 있으므로 단순 실패로 보고 새 배정을 만들지 않는다. X에 다른 내용이 붙으면 기존 요청의 의미가 달라지므로 충돌로 처리한다.
Y는 새 요청 ID이지만 같은 대여의 중복일 수 있다. 요청 ID 중복 방지만으로는 막을 수 없으므로 사람의 업무 고유조건과 해당 장비의 겹치는 확정 구간을 함께 판단한다. 장비 기준 행의 잠금 뒤 현재 상태를 재확인하고 대여·요청 결과가 부분만 남지 않도록 같은 거래 경계를 관리한다. 이미 취소된 대여를 옛 요청의 재전송으로 되살리지 않으며 외부 통지의 실제 전달·판본·정정은 별도로 대사한다.
문제 C — 전체 정확도와 권한
후보 A는 100개 질문 중 정답 80개, 후보 B는 85개를 생성했다. 별도 권한시험 20개에서 A의 위반은 0개, B는 2개다. 권한 위반은 필수 불허조건이라고 정한다. 확대 선택과 추가 평가를 설명하시오.
소형 모의 C의 성능·권한 판단 보기
완성 답안 C
B의 정답 생성이 5개 많다는 사실과 권한시험 2개 위반은 다른 평가축이다. 이 문제는 권한 위반을 필수 불허조건으로 정했으므로 평균 정확성의 이점으로 상쇄하지 않고 B의 확대를 보류한다. 자료·검색·문맥·도구·로그에서 어떤 경로로 금지 범위를 사용했는지 확인한다.
A의 0/20 관측도 모든 미래 요청에서 안전하다는 보증은 아니다. 시험의 대표성·권한 종류·변경·오류와 운영 부담을 추가 확인한 뒤 제한된 범위로 판단한다. 100개 정확도 집단과 20개 권한시험을 같은 질문집단이라고 가정해 임의 합산하지 않는다. 수정 후에는 기존 결과가 새 자료·모델·권한 조합에도 유효한지 별도로 확인한다.
소형 모의의 자기점검
A에서 RPO와 RTO의 시작·끝을, B에서 요청 동일성과 업무·자원 구간을, C에서 성능과 필수 조건을 구별했는지 확인한다. 숫자만 맞고 경계를 틀렸으면 해당 원리를 복습한다. 자신의 답에서 생략된 문장을 표시하고 위 완성 답안과 같은 의미를 자신의 표현으로 다시 써 본다.
9. 오답 교정과 조건 변경
| 오답·습관 | 이유 | 수정 예 | 복습 |
|---|---|---|---|
| 25점은 10점 답안을 길게 반복하면 된다 | 적용·대안·검증이 추가되지 않음 | 원리를 상태·역할·실패로 확장 | 확장 |
| 요청 ID 또는 장비·시작·끝의 고유값만 있으면 된다 | 같은 요청의 경쟁과 부분적으로 겹치는 시간은 다른 조건 | 요청 고유성과 구간 겹침을 실제 동시성 통제로 집행 | 시간 구간 |
| 단말에 사용 가능으로 보이면 오프라인 확정한다 | 다른 단말·현재 원장 상태 미확인 | 전송 대기·서버 확정을 구별 | 사례 |
| 취소 응답이 없으면 자원을 다시 반환한다 | 이전 취소가 반영됐을 수 있음 | 실제 상태 전이와 기존 결과 조회 | 25점 |
| 발송 직전에 확인했으니 낡은 안내는 절대 도착하지 않는다 | 확인과 외부 전달 사이의 취소·지연 가능성 | 결정판본·실제 결과·정정과 최신 조회를 연결 | 25점 |
| 해석 3분 뒤 도식 8분이면 25분 중 17분이 남는다 | 이미 쓴 해석 시간을 누락 | 누적 11분, 잔여 14분으로 재배분 | 시간 |
| RPO 4분이면 실제 손실도 4건이다 | 기간과 건수는 다른 단위 | 거래량·일관성·외부 결과 대사 | 모의 A |
| 권한시험 0건이면 영구 안전이다 | 제한된 관찰을 전수 보장으로 확대 | 범위·대표성·변경을 계속 확인 | 모의 C |
조건 1 — 단말마다 사전 배정한 서로 겹치지 않는 장비가 있다면: 추가 전제를 표시하고 오프라인 확정 대안의 회수·충돌 조건을 설명한다.
조건 1의 풀이와 판단 이유 보기
그 분리·수명·회수·충돌·권한 조건을 확인한 범위에서 오프라인 확정 대안을 검토할 수 있다. 원래 AX-1에는 없는 추가 조건이므로 답안에 명시해야 한다.
조건 2 — 모의 A의 업무 재개가 14:28로 바뀌면: RTO·RPO를 각각 판정하고 원래 조건에서 유지된 값을 적는다.
조건 2의 풀이와 판단 이유 보기
실제 업무 재개까지 28분이 걸려 RTO 30분을 충족한다. 복구점은 13:56 그대로라 자료시점 공백 4분도 같으며 두 목표는 각각 판정한다.
조건 3 — 모의 C에서 B의 권한 위반이 수정됐다고 보고되면: 수정 보고와 실제 검증의 차이 및 새 조합에서 확인할 영향을 설명한다.
조건 3의 풀이와 판단 이유 보기
보고만으로 즉시 확대하지 않는다. 변경된 자료·코드·권한 조합에서 해당 실패와 관련 영향을 실제로 대조한다. 기존 판본의 통과 결과를 자동으로 새 판본의 승인으로 합산하지 않는다. 이 문장은 서비스 검증의 학습 내용이지 교재의 프로젝트 회귀를 실행했다는 기록이 아니다.
추가 구간 연습: 기존 대여 10:00~11:00 뒤 10분의 정리 시간이 필요하면 자원이 점유되는 끝은 11:10이다. 11:00에 시작하는 다음 신청은 이 조건에서 겹치고 11:10 시작은 인접한다. 업무의 이용 종료와 다음 사람이 사용할 수 있는 시각을 같은 말로 취급하지 않는다.
면접: 60초 핵심과 후속 판단
질문: “멱등성이 있으면 장애도 해결됩니까?”
면접 응답 예와 근거 보기
핵심 응답 예: “같은 요청의 반복 효과를 줄이는 성질과 장애 복구 전체는 다릅니다. 서버 결과의 지속성, 기준 원장, 권한과 외부 통지 상태가 남아야 합니다. 같은 요청의 동시 처리와 새 ID의 같은 업무를 구별하고 장비의 겹치는 이용 구간도 통제해야 합니다. 응답이 없을 때 기존 요청을 조회하며 복구 후 누락·취소·외부 결과를 대사하겠습니다.”
후속 질문: “단말에서 무조건 즉시 확정하라는 요구라면요?”
면접 응답 예와 근거 보기
대응 예: “연결이 끊기고 공통 자원을 확인할 수 없는데 사전 할당도 없다면 전역 중복 방지와 모든 요청의 즉시 확정을 함께 약속하지 않겠습니다. 입력 접수와 확정을 구별하거나 자원을 분리 할당하는 대안을 제시하고 각 대가와 변경된 업무 조건을 확인하겠습니다.”
근거·연습의 성격
이 절은 문제의 요구어, 트랜잭션의 보장, 모바일 서비스, 분야 간 통합 사례를 학습 활동으로 재구성했다. 새 구간 예는 시작·끝의 의미를 먼저 설명한 자체 계산이며 새 선수 정의의 담당 절을 만들지 않았다.
AX-1/G1·구간 예·30점 소형 모의·시간 25/40분·답안·자기점검·면접은 자체 교육용이다. 배점은 학습 구성이지 공식 부분점수·합격점 예측이 아니며 실제 제한시간 손글씨·독립 시험 검토·독자 실험을 수행하지 않았다. 모든 장비를 위한 실제 예약 시스템이나 외부 통지 기능도 구현·시험하지 않았다.
현재 시험의 종목·운영 확인은 공식 Q-Net 정보관리기술사 취득정보에서 해야 한다. https://www.q-net.or.kr/crf005.do?id=crf00505&jmCd=0601&tabGbn=2 . 기존 2026-09-20 열람 기록은 종목·시행기관과 탭까지 확인한 범위이며 동적 세부내용이 반환되지 않아 이 절의 연습시간을 공식 시험시간으로 표시하지 않는다.
회독의 핵심
짧은 답은 핵심 경계를 보존하고 긴 답은 그 경계를 실제 조건·대안·상태·검증으로 확장한다. 요청이 같음과 시간이 겹침, 과거 요청 결과와 현재 상태, 발송 확인과 실제 전달을 구별한다. 글의 길이보다 판단이 얼마나 완성됐는지 확인하고 시간 배분도 실제 누적 기록으로 고친다.
보강 연습 1: 자정을 넘는 대여는 시각 문자열만 비교하면 되는가
같은 시간대에서 장비 A의 기존 이용은 2027-01-01 23:40부터 2027-01-02 00:20까지이며, 끝난 뒤 15분 정리 동안도 점유한다. 새 신청 X는 01-02 00:25~01:00, Y는 01-02 00:35~01:00이다. 모든 구간은 [시작,끝)이고 시작은 끝보다 빨라야 한다. X·Y의 충돌 여부와 겹치는 시간을 구하라. 날짜를 버리고 23:40 < 00:20만 비교하는 방법도 평가하라.
날짜·정리 시간·경계 포함을 유지하는 완결 풀이
기존 점유 끝은 01-02 00:35다. X는 00:25~00:35의 10분이 겹친다. Y는 점유 끝과 시작이 같아서 겹침 0분, 인접한 구간이다. 단, 이 결과는 다른 점유·장비 상태·권한이 모두 충족됐다는 뜻은 아니다.
자정을 넘으므로 완전한 날짜와 같은 시간 기준을 유지해야 한다. 23:40과 00:20만 비교하면 실제로 40분간 이용한 정상 구간을 잘못 해석한다. 시작과 끝이 같은 신청은 이번 문제에서 허용되지 않는 빈 구간이며, 역전된 구간도 충돌 없음으로 통과시키지 않는다.
from datetime import datetime, timedelta
start = datetime.fromisoformat("2027-01-01T23:40:00")
occupied_end = datetime.fromisoformat("2027-01-02T00:20:00") + timedelta(minutes=15)
for name, stamp in [("X", "2027-01-02T00:25:00"), ("Y", "2027-01-02T00:35:00")]:
requested_start = datetime.fromisoformat(stamp)
requested_end = datetime.fromisoformat("2027-01-02T01:00:00")
assert start < occupied_end and requested_start < requested_end
overlap = max(timedelta(0), min(occupied_end, requested_end) - max(start, requested_start))
print(f"{name}: 겹침={int(overlap.total_seconds() / 60)}분")Python 3 출력은 X: 겹침=10분, Y: 겹침=0분이다. 날짜를 포함한 같은 시간 기준의 교육용 구간 산술만 실행한다. 입력 시간대가 달라지면 먼저 같은 기준으로 변환하고, 불명확한 시각을 임의로 보충하지 않는다.
점유 구간을 DB에 표현할 때도 이용 끝과 정리 끝, 경계 포함을 일치시킨다. PostgreSQL 범위 설명의 범위·겹침 제약과 연결할 수 있지만, 이 Python 계산은 실제 DB 제약이나 동시 배정 방지를 입증하지 않는다. 배정은 원문의 장비 기준 잠금·현재 상태 재검사·원자적 확정 경계에서 판단한다.
보강 연습 2: 두 장비를 변경할 때 잠금 순서가 다르면
장비 A·B를 함께 변경하는 T1·T2가 있다. T1은 A를 잠근 뒤 B를 기다리고, T2는 B를 잠근 뒤 A를 기다린다. 별도 변경 요청 M은 현재 대여 A를 취소하고 B로 옮기려 한다. B에 충돌이 있으면 기존 A 대여를 유지해야 한다는 업무 조건이다.
경합 상태의 원인, 모든 변경 경로가 사용할 잠금 순서, M에서 확정할 거래의 경계를 설명하라. “A 취소를 먼저 커밋하고 B가 실패하면 나중에 A를 다시 잡는다”는 대안도 평가하라.
대기 고리와 부분 변경을 함께 통제하는 완결 풀이
T1→T2의 B 해제 대기와 T2→T1의 A 해제 대기가 고리를 만든다. A·B의 공통 정렬 순서처럼 모든 관련 경로가 같은 기준 행 잠금 순서를 사용하고, 필요한 잠금을 확보한 뒤 현재 대여·장비 상태를 다시 검사한다. PostgreSQL 잠금 설명은 여러 객체의 일관된 잠금 순서와 교착 시 거래 중단·재시도를 설명한다. 이 설계 원칙만으로 선택한 DB·격리 수준의 실제 동작까지 검증한 것은 아니다.
M은 현재 사용자의 변경 권한·기존 A 대여의 현재 판본·B의 점유 충돌을 확인한다. A 취소·B 새 대여·M 요청 결과·알릴 작업을 같은 거래에서 결정한다. B가 충돌이면 변경을 확정하지 않고 A를 유지하며 요청 결과를 명시한다. 성공하면 이전·새 상태와 판본을 함께 기록하고 외부 안내는 거래 밖에서 처리한다.
A 취소만 먼저 커밋하면 B 실패 뒤 A를 다른 요청이 가져갈 수 있어 기존 대여 유지 조건을 보장하지 못한다. 이 문제의 조건에서는 그런 부분 커밋안을 기각한다. 서로 다른 저장소 때문에 한 거래가 불가능하다면 예약·보상과 그 사이의 상태를 별도 업무 조건으로 설계해야 하며, 보상 재시도가 원래 A를 반드시 되찾는다고 가정하지 않는다.
잠금 순서를 통일해도 다른 객체·제약·코드가 추가되면 전체 교착이 사라졌다고 확정하지 않는다. 교착·시간 초과·충돌에서 부분 변경을 롤백하고 같은 업무 요청의 재시도·현재 상태 확인을 설계한다. 사용자 응답과 외부 발송을 기다리는 동안 잠금을 유지하지 않는다. 검증 시나리오는 역순 변경 경쟁, B 충돌, 처리 후 응답 소실, 취소와 이동의 동시 요청을 포함하고 기대되는 A·B·요청·통지 상태를 각각 적는다.
보강 연습 3: 멱등 결과 캐시가 현재 권한 검사를 생략해도 되는가
같은 조직에서 사용자 P의 요청 X가 처리되어 개인 대여 결과를 저장했다. 사용자 Q도 우연히 같은 문자열 X를 보냈고 내용도 같다고 주장한다. 또 직원 S는 과거에 보조 조회가 허용됐지만 지금은 그 권한이 회수됐다. 서버는 “기존 X의 결과가 있으므로 인증·권한 검사 없이 캐시를 반환한다”고 구현하려 한다.
요청 동일성의 범위, 현재 조회 권한, 과거 처리 결과와 현재 대여 상태를 각각 설명하라. 권한 검사에 실패했을 때 기존 대여를 자동 취소해도 되는지도 판단하라.
중복 효과 방지와 결과 접근을 구별하는 완결 풀이
요청 ID는 문자열만이 아니라 확인된 조직·요청자·업무 범위와 연결한다. Q가 클라이언트 필드에 P라고 썼다는 이유로 그 범위를 신뢰하지 않는다. 같은 X라는 사실만으로 P의 개인 결과를 Q에게 반환하지 않는다. 같은 범위 안에서도 ID와 정규화한 업무 내용이 다르면 충돌로 처리하고 추가 효과를 만들지 않는다.
결과 재조회·재전송 경로에서도 현재 인증과 해당 대상·행위의 권한을 확인한다. S의 이전 허용 결과를 현재 권한으로 대신하지 않는다. OWASP 권한 지침은 매 요청의 대상 권한 검사를 요구한다. 캐시 접근·결과 식별자·로그·오류 응답에서도 필요한 개인정보가 우회 노출되지 않는지 확인한다.
허용된 요청에는 저장된 X의 과거 처리 결과와 현재 대여 상태·판본을 구별해 응답한다. 이후 취소된 대여가 과거의 확정 결과 재생으로 다시 활성화되면 안 된다. 현재 조회 권한 실패는 그 조회를 허용하지 않는 판단이며, 기존 대여 자동 취소 명령이 아니다. 취소는 별도의 업무 상태·권한·요청·거래 조건을 충족해야 한다.
시험에는 다른 사용자·조직의 같은 ID, 동일 범위의 내용 충돌, 직원 권한 회수 뒤 결과 재조회, 대여 취소 뒤 원요청 재시도를 넣는다. 기대 결과는 정보 노출 없음·새 대여 없음·현재 상태 보존·필요한 감사 기록이다. 이 풀이가 권한시험을 실제 실행하거나 서비스의 완전한 보안을 증명한 것은 아니다. 구현 시 서버 권한·고유성·캐시 범위·현재 상태를 연결한 실제 확인이 필요하다.
Footnotes
-
PostgreSQL 18, §8.17.3 Inclusive and Exclusive Bounds 및 §8.17.10 Constraints on Ranges. https://www.postgresql.org/docs/18/rangetypes.html . 2026-09-20 경계 포함과 범위 겹침, UNIQUE와 배타 제약의 차이를 대조했다. 원문의 회의실 데이터나 SQL 예제를 복제하지 않았고 실제 DB 실행을 수행하지 않았다. ↩ ↩2
-
PostgreSQL 18, §13.3.2 Row-Level Locks 및 §13.3.4 Deadlocks. https://www.postgresql.org/docs/18/explicit-locking.html . 행 잠금의 대기·거래 종료, 일관된 잠금 순서와 긴 거래의 한계를 확인했다. AX-G1은 모든 장비 변경 경로가 같은 잠금 규칙과 현재 상태 재검사를 지켜야 하는 자체 설계이며 임의의 격리수준·코드에 동일한 보장을 주장하지 않는다. ↩