반응형 전체 글449 위상 정렬 순서는 하나일까? 모든 순서를 만들지 않고 유일성 검사 DAG의 위상 정렬이 유일한지는 매 단계의 진입 차수 0인 준비 노드 수로 판단할 수 있습니다. 전체 처리에 성공했고 매 단계 선택지가 하나였다면 유일합니다. 어느 단계든 둘 이상을 고를 수 있었다면 여러 위상 순서가 있습니다. 다만 순환 때문에 끝까지 처리하지 못했다면 먼저 DAG가 아니라고 반환해야 합니다.작업 순서 한 개를 만드는 것과 가능한 순서가 한 개인지 확인하는 것은 다른 질문입니다. 자료를 사전순으로 정렬해 항상 같은 결과를 출력하더라도 원래 의존 관계가 순서를 하나로 강제하는 것은 아닐 수 있습니다.처음 준비 노드가 하나여도 중간에 선택지가 생깁니다A→B, A→C에서는 처음에는 A만 가능합니다. A를 처리한 뒤에는 B와 C가 동시에 준비됩니다. A,B,C와 A,C,B가 모두 간선을 지키므.. 2026. 10. 26. RAG 답변 캐시가 적중해도 다시 검사할 것: 인용 문서의 권한 회수 같은 사용자가 같은 질문을 해도, 인용 문서의 열람 권한이 회수됐다면 예전 RAG 답변을 그대로 돌려주면 안 됩니다. 답변 캐시가 적중했다는 사실은 저장된 결과를 찾았다는 뜻입니다. 지금 그 내용을 보여줘도 된다는 허가는 별도로 확인해야 합니다.예를 들어 직원이 부서를 옮긴 뒤에도 이전 부서 규정에서 만든 답변이 캐시에 남을 수 있습니다. 인용 링크만 숨겨도 답변 문장에 제한된 내용이 들어 있으면 문제가 남습니다. 이번 실습은 반환 직전에 현재 문서 존재 여부와 모든 인용의 열람 권한을 검사하는 작은 경계를 만듭니다.검색을 생략한 경로에도 권한 검사가 필요합니다검색 결과를 대상으로만 권한 필터를 적용하고 캐시 hit에서는 검색을 건너뛰면, 그 필터도 건너뛸 수 있습니다. 사용자 ID를 키에 넣어 다른 사.. 2026. 10. 26. 두 사람이 수정한 내용이 덮일 때: HTTP ETag·If-Match와 412 실습 두 사람이 같은 문서를 수정할 때 뒤늦은 저장이 앞선 변경을 덮는다면, 저장 요청에 읽었던 ETag를 If-Match로 보내고 서버에서 현재 값과 비교해야 합니다. 조건이 맞지 않으면 412로 거부하고 원래 본문을 보존합니다. 헤더를 보내는 것과 서버가 비교·갱신을 원자적으로 수행하는 것은 함께 구현해야 합니다.A와 B가 모두 v1을 읽었다고 가정합니다. A가 먼저 저장해 v2가 된 뒤 B가 v1 기준 본문을 보내면, 그 본문은 현재 상태를 반영하지 않습니다. 단순히 마지막 요청을 저장하는 서비스에서는 A의 변경이 사라질 수 있습니다.304 조회와 412 저장은 검사 목적이 다릅니다GET의 If-None-Match는 저장한 응답을 재사용할 수 있는지 확인하는 데 쓰입니다. 이번 PUT의 If-Match는.. 2026. 10. 26. pandas 조건식의 pd.NA는 False일까? 미확정 행을 따로 남기는 방법 pandas의 nullable boolean 조건에 pd.NA가 섞이면, 그 행은 기본 boolean 인덱싱 결과에서 빠집니다. 그렇다고 pd.NA 자체가 False가 되는 것은 아닙니다. 판정이 미확정인 행도 남겨야 한다면 최종 조건을 True·False·NA 세 집합으로 나누어 보존하세요.데이터 검수 보고서에서 “조건을 통과하지 않은 행”을 전부 실패로 세면 미확정 행까지 실패로 합칠 수 있습니다. 이 글은 ready와 checked라는 합성 점검 상태 6행으로 행 선택 정책을 재현합니다. Python 3.12.14·pandas 2.2.3에서 실행했으며 실제 승인·접근 권한을 판정하는 예제는 아닙니다.1. boolean 자료형과 최종 조건을 확인합니다소문자 boolean은 결측을 표현할 수 있는 pa.. 2026. 10. 25. Python json.loads에서 중복 키가 사라질 때: object_pairs_hook으로 입력 거부 json.loads가 같은 JSON 객체 안의 중복 키를 조용히 덮어썼다면 object_pairs_hook으로 키·값 쌍을 받아 dict로 합치기 전에 검사하세요. Python 기본 동작에서는 같은 이름이 반복될 때 마지막 값만 남습니다. 파싱을 끝낸 dict만 검사하면 이미 사라진 앞쪽 값을 복구할 수 없습니다.설정 파일에 mode가 두 번 쓰이거나 API 원문에 같은 필드가 반복되면, 작성자가 기대한 값과 실제 적용값이 달라질 수 있습니다. 이 글에서는 표준 라이브러리 json을 Python 3.12.14에서 실행해 기본 덮어쓰기와 명시적 거부를 비교합니다.1. 마지막 값만 남는 작은 반례import jsontext = '{"mode":"preview","mode":"apply"}'print(json.. 2026. 10. 25. AI 도구 호출 JSON의 approved=true를 믿어도 될까? 실행 권한을 따로 검사하기 AI가 만든 도구 호출 JSON에 approved: true가 있어도 그 값으로 실행을 승인하면 안 됩니다. 모델이 제안한 요청과 서버가 확인한 실행 권한은 다른 입력입니다. 도구 이름·대상 범위를 검사하고, 쓰기 작업에 필요한 승인 기록은 모델 요청 밖의 신뢰된 문맥에서 대조해야 합니다.예를 들어 읽기·삭제를 모두 제안할 수 있는 에이전트라도, 삭제 요청에 스스로 true를 붙였다는 이유로 실행해서는 안 됩니다. 아래 실습은 JSON 요청을 받아 허용·거부 문자열만 반환합니다. 실제 모델·MCP 서버·외부 API를 호출하지 않으며 파일이나 레코드를 삭제하지 않습니다. Python 3.12.14에서 실행했습니다.1. 형식 검사와 실행 정책을 분리합니다필수 필드와 자료형이 맞는지는 형식 검사입니다. 요청한.. 2026. 10. 25. 이전 1 2 3 4 ··· 75 다음 반응형