KoreaDevKNOWLEDGE SHARING

콘텐츠 유형학습하기

AI SOFTWARE DEVELOPMENT · 05 / 10

AI 시대의 데이터베이스

관계형 제약, JSON, vector search와 RAG를 대체 관계가 아닌 서로 다른 질문과 failure path로 배웁니다.

난이도
입문·실무
구성
강의 8개 · 실습 2개 · 평가

CORE UNIT 1 / 1

AI 시대의 데이터베이스

관계형 제약, JSON, vector search와 RAG를 대체 관계가 아닌 서로 다른 질문과 failure path로 배웁니다.

난이도
입문·실무
구성
강의 8개 · 실습 2개 · 평가

도해·표 자료: 각 강의의 공식 1차 출처를 바탕으로 저자 구성. 원문과 검토일은 해당 강의 끝에서 확인합니다.

NEW HIRE ONBOARDING

첫 업무를 받는 순서로 시작합니다

중학교를 졸업하고 처음 IT 업무를 맡은 신입사원도 따라올 수 있도록, 어려운 정의보다 상황·할 일·증거·보고할 경계를 먼저 확인합니다.

  1. 01

    상황을 한 문장으로 읽기

    전 직원 문서를 한 vector index에 넣었고 검색 뒤 application에서 권한 없는 문서를 숨깁니다. Top-k가 권한 없는 문서로 차면 허용 문서가 남지 않습니다.

  2. 02

    오늘 맡은 일

    관계형·문서·vector 검색이 해결하는 질문을 구분합니다.

  3. 03

    완료를 보여 주는 증거

    삭제 전 존재를 확인하고 cache 실패를 주입한 뒤 이전 revision 0건과 최신 revision 보존을 검증합니다.

  4. 04

    멈추고 선임에게 확인할 경계

    Migration, lock, scale topology와 엄격한 modeling 비용이 있습니다.

낯선 용어 먼저 풀기

관계형 모델과 일관성
관계형 모델의 힘은 표 모양보다 논리적 관계와 constraint를 물리 저장 방식에서 분리한 데 있습니다.
NoSQL의 등장과 PostgreSQL 재평가
RDB→NoSQL→RDB의 단순 왕복이 아니라 workload별 분화와 운영 복잡성 재평가가 일어났습니다.
Embedding과 vector search
Vector search는 표현의 가까움을 찾고 metadata filter와 원문 근거가 의미와 권한을 보완합니다.

이 과정의 질문

왜 바뀌었고, 무엇을 검증해야 하는가?

기술의 장점만 외우지 않고 그 장점이 성립하는 조건과 새 실패 경계를 함께 확인합니다.

OBSERVABLE OUTCOMES

학습을 마치면 할 수 있는 일

  1. 관계형·문서·vector 검색이 해결하는 질문을 구분합니다.
  2. Exact search와 HNSW·IVFFlat의 recall·속도·build tradeoff를 비교합니다.
  3. RAG의 ingest부터 citation까지 실패 단계를 분리하고 권한 filter를 적용합니다.

PREREQUISITE CHECK

본문을 읽기 전에 확인할 세 가지

정답을 외우는 시험이 아닙니다. 질문을 먼저 생각한 뒤 해설을 열어 이번 과목에서 사용할 바탕 개념을 확인하십시오.

1Database는 파일과 무엇이 다른가요?

동시 사용자, query, constraint, transaction, recovery와 access control을 일관된 관리 경계로 제공합니다.

2Vector는 문장의 진실을 저장하나요?

Embedding vector는 model이 학습한 표현 공간의 수치 좌표입니다. 가까움은 의미 유사도의 신호이지 사실성이나 권한의 증거가 아닙니다.

3RAG는 model을 다시 학습하나요?

보통 query 때 외부 문서를 검색해 context로 제공하며 model weight를 바꾸지 않습니다.

TEXTBOOK GUIDE

개념의 배경부터 판단 기준까지 읽는 본문

IT를 처음 접하는 독자도 용어를 암기하지 않고 원인과 결과를 연결할 수 있도록 한 절씩 이어서 설명합니다.

CONCEPT FLOW

각 장은 이렇게 연결됩니다

각 장은 따로 외우는 단답이 아닙니다. 왼쪽에서 오른쪽으로 따라가며 앞 장의 개념이 다음 판단에 어떻게 쓰이는지 먼저 살펴보세요.

  1. 1장관계형 모델과 일관성
  2. 2장NoSQL의 등장과 PostgreSQL 재평가
  3. 3장Embedding과 vector search
  4. 4장RAG는 하나의 기능이 아니라 pipeline
  5. 5장Agent의 데이터 접근과 안전
  6. 6장동시에 들어온 예약을 데이터 규칙으로 제한하기
  7. 7장권한 필터 뒤에 줄어든 검색 결과 진단하기
  8. 8장원문 삭제를 vector와 cache까지 추적하기
AI 시대의 데이터베이스의 전체 지도입니다. 아래 장문 해설과 각 장을 읽다가 길을 잃으면 이 순서로 돌아오세요.
그림 5-1. AI 시대의 데이터베이스의 개념 전개앞 장의 선택과 한계가 다음 장의 문제로 어떻게 이어지는지 보여 줍니다.
  1. 1
    관계형 모델과 일관성

    관계형 모델의 힘은 표 모양보다 논리적 관계와 constraint를 물리 저장 방식에서 분리한 데 있습니다.

  2. 2
    NoSQL의 등장과 PostgreSQL 재평가

    RDB→NoSQL→RDB의 단순 왕복이 아니라 workload별 분화와 운영 복잡성 재평가가 일어났습니다.

  3. 3
    Embedding과 vector search

    Vector search는 표현의 가까움을 찾고 metadata filter와 원문 근거가 의미와 권한을 보완합니다.

  4. 4
    RAG는 하나의 기능이 아니라 pipeline

    검색 결과가 나쁘면 model보다 ingest·chunk·embedding·filter·rerank 중 실패한 stage를 먼저 찾습니다.

  5. 5
    Agent의 데이터 접근과 안전

    Agent는 database credential을 받는 것이 아니라 허용된 업무 operation과 row scope를 호출해야 합니다.

  6. 6
    동시에 들어온 예약을 데이터 규칙으로 제한하기

    화면의 중복 확인만으로는 동시에 도착한 두 쓰기의 충돌을 막을 수 없습니다.

  7. 7
    권한 필터 뒤에 줄어든 검색 결과 진단하기

    거리 검색의 후보 수와 권한을 적용한 유효 결과 수는 같지 않을 수 있습니다.

  8. 8
    원문 삭제를 vector와 cache까지 추적하기

    원문을 지운 것과 검색·답변에서 더 이상 사용되지 않는 것은 다른 상태입니다.

CONTROLLED EXPLANATION

Tenant A의 다섯 근거를 찾는 비교

현재 상태: A 질문

Tenant A의 다섯 근거를 찾는 비교

동일 권한 범위에서 exact와 approximate를 비교하고 권한을 완화하는 우회 경로를 차단합니다.

권한 범위 고정같은 질문누락 비교원인 분리동일 workload 재측정1A 질문2Exact 기준선3Approximate 결과4탐색 재검증5독립 승인 조건
  1. A 질문

    동일 vector·거리 함수

  2. Exact 기준선

    허용 근거 5건

  3. Approximate 결과

    필터 뒤 2건

  4. 탐색 재검증

    설정·계획·지연 비교

  5. 독립 승인 조건

    Recall 충족 · 무단 반환 0건

1 → 2
권한 범위 고정
1 → 3
같은 질문
2 → 4
누락 비교
3 → 4
원인 분리
4 → 5
동일 workload 재측정

5건과 2건은 교육용 fixture입니다. 다른 tenant 문서로 개수를 채우지 않습니다.

CONCRETE CASES

과정 전체 선택 기준표

TABLE 5-1

과정 전체 선택 기준표

각 장의 기술을 이름이 아니라 작동 원리, 새 비용과 확인할 증거로 비교합니다.

5-1. AI 시대의 데이터베이스의 설계 판단 기준
중심 메커니즘주의할 비용확인할 증거
1. 관계형 모델과 일관성Declarative query와 constraint, transaction이 data 관계와 일관성을 database에서 enforce합니다.Migration, lock, scale topology와 엄격한 modeling 비용이 있습니다.Constraint를 우회한 invalid row와 동시 transaction을 주입해 거부·rollback을 확인합니다.
2. NoSQL의 등장과 PostgreSQL 재평가다양한 data type과 index를 관계형 transaction·query planner와 결합합니다.범용성만 믿고 특수 workload의 scale과 latency를 측정하지 않으면 병목이 됩니다.Query pattern, consistency, volume, operator skill과 failure domain을 표로 비교합니다.
3. Embedding과 vector searchDistance metric과 index가 query vector에 가까운 후보 ID를 반환합니다.Approximation, model drift, memory, filter 상호작용과 relevance 오판이 생깁니다.정답 집합으로 recall@k, latency와 filter 적용 후 누락을 함께 측정합니다.
4. RAG는 하나의 기능이 아니라 pipelineEvidence identity를 ingest부터 answer citation까지 유지해 실패 stage를 추적합니다.Index freshness, retrieval latency, 권한, token 비용과 평가 운영이 추가됩니다.Known question의 source span을 고정하고 stage별 candidate ID와 citation support를 비교합니다.
5. Agent의 데이터 접근과 안전Domain tool과 database policy가 자연어 의도를 제한된 query·transaction으로 변환합니다.정책 drift, 과도한 query, 민감 data 노출과 중복 변경 위험이 있습니다.금지 table, 다른 tenant, 대량 query와 중복 write가 각 경계에서 거부되는지 확인합니다.
6. 동시에 들어온 예약을 데이터 규칙으로 제한하기업무 식별자의 unique 제약과 관련 변경의 transaction이 동시 쓰기를 일관된 결과로 만듭니다.잘못 고른 unique 범위는 정상 업무를 막으며 충돌 응답과 재시도 정책도 설계해야 합니다.같은 회차 경합과 다른 회차 정상 예약을 함께 실행해 최종 row와 수량을 검증합니다.
7. 권한 필터 뒤에 줄어든 검색 결과 진단하기동일한 권한 범위의 exact 기준선과 approximate 실행 계획을 비교해 누락 원인을 좁힙니다.탐색 확대·partition은 지연과 운영 비용을 바꾸므로 전체 workload에서 재측정합니다.같은 tenant·거리 함수로 recall과 지연을 비교하고 무단 반환이 0건인지 별도로 검사합니다.
8. 원문 삭제를 vector와 cache까지 추적하기Source ID·revision의 파생 관계와 단계별 삭제 상태로 active 경로의 잔존 데이터를 확인합니다.비동기 index와 cache의 부분 실패를 처리해야 하며 전체 개수만으로 완료를 판단할 수 없습니다.삭제 전 존재를 확인하고 cache 실패를 주입한 뒤 이전 revision 0건과 최신 revision 보존을 검증합니다.

CHAPTER 1 / 8

관계형 모델과 일관성

관계형 모델의 힘은 표 모양보다 논리적 관계와 constraint를 물리 저장 방식에서 분리한 데 있습니다.

이 개념이 필요해진 배경

Primary key, foreign key와 constraint는 여러 application이 같은 data 규칙을 공유하게 합니다. Transaction은 관련 변경을 하나의 단위로 commit하거나 rollback해 중간 상태 노출을 통제합니다.

Schema가 변경을 방해하는 것이 아니라 어떤 변경이 기존 계약을 깨는지 드러냅니다. 다만 고정 schema와 join이 모든 접근 패턴에 최적인 것은 아니며 workload와 확장 조건을 측정해야 합니다.

그림 5-2. 관계형 모델과 일관성의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

관계형 모델의 힘은 표 모양보다 논리적 관계와 constraint를 물리 저장 방식에서 분리한 데 있습니다.

작동 원리

Declarative query와 constraint, transaction이 data 관계와 일관성을 database에서 enforce합니다.

검증 증거

Constraint를 우회한 invalid row와 동시 transaction을 주입해 거부·rollback을 확인합니다.

구체적인 시스템에서 따라가기

주문 시스템에서 `orders.customer_id`가 존재하지 않는 고객을 가리키지 못하게 하는 foreign key는 화면 한 곳의 validation보다 강한 공유 규칙입니다. 관리자 도구, batch job과 새 mobile API가 모두 같은 database를 사용해도 제약은 동일하게 적용됩니다. Unique constraint는 같은 결제 식별자의 중복 저장을 막고, check constraint는 수량이나 상태 값의 허용 범위를 data 가까이에서 지킵니다.

Transaction의 의미는 query 여러 개를 빠르게 묶는 것이 아니라 외부에 보일 상태 전환을 정의하는 데 있습니다. 재고를 줄인 뒤 주문 생성이 실패하면 두 변경을 rollback해야 하고, 동시에 두 사용자가 마지막 재고를 주문할 때는 isolation 수준과 lock 방식이 어떤 결과를 허용하는지 알아야 합니다. 단순히 transaction을 사용했다는 사실만으로 모든 동시성 문제가 사라지지는 않습니다.

Schema migration도 “컬럼을 추가했다”에서 끝나지 않습니다. 구 version과 신 version application이 함께 실행되는 rolling deployment에서는 먼저 호환 가능한 column을 추가하고 data를 backfill한 뒤 읽기 경로를 전환하고 마지막에 제약을 강화하는 단계가 필요합니다. 큰 table의 validation과 index build는 lock과 I/O를 만들 수 있으므로 실제 data 규모에서 소요 시간과 차단 범위를 측정해야 합니다.

관계형 모델을 선택하지 말아야 할 조건도 있습니다. 관계와 transaction보다 하나의 aggregate를 통째로 읽고 쓰는 접근이 대부분이고 schema가 매우 빠르게 달라지거나 지역 간 가용성이 강한 우선순위라면 다른 저장 모델이 더 단순할 수 있습니다. 다만 “join이 느리다”는 추측만으로 분리하기보다 query plan, cardinality, consistency 요구와 장애 복구 방식을 같은 workload에서 비교해야 합니다.

선택 기준과 실패 경계

Migration, lock, scale topology와 엄격한 modeling 비용이 있습니다.

피해야 할 오해: RDB는 단순한 spreadsheet이고 확장할 수 없다는 생각은 틀립니다.

직접 검증하기

Constraint를 우회한 invalid row와 동시 transaction을 주입해 거부·rollback을 확인합니다.

판정할 핵심Declarative query와 constraint, transaction이 data 관계와 일관성을 database에서 enforce합니다.

이 장을 정리하면

관계형 모델의 힘은 표 모양보다 논리적 관계와 constraint를 물리 저장 방식에서 분리한 데 있습니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. IBM Research, 「A Relational Model of Data for Large Shared Data Banks검토일 2026-08-28 · 적용 범위 1970년 원 논문
  2. PostgreSQL Global Development Group, 「Constraints검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current
  3. PostgreSQL Global Development Group, 「Concurrency Control: Introduction검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current

CHAPTER 2 / 8

NoSQL의 등장과 PostgreSQL 재평가

RDB→NoSQL→RDB의 단순 왕복이 아니라 workload별 분화와 운영 복잡성 재평가가 일어났습니다.

이 개념이 필요해진 배경

대규모 분산 key-value 접근, 유연한 문서와 특정 latency 요구는 document, wide-column, key-value database를 성장시켰습니다. 이 선택은 join과 transaction 일부를 application으로 옮기는 tradeoff를 포함합니다.

PostgreSQL은 JSON 연산, index와 확장 생태계를 더해 관계형 data와 일부 문서 요구를 한 transaction 경계에서 처리합니다. 모든 전용 database를 대체한다는 뜻이 아니라 서비스 수와 일관성 비용을 줄일 수 있는 조건이 넓어진 것입니다.

그림 5-3. NoSQL의 등장과 PostgreSQL 재평가의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

RDB→NoSQL→RDB의 단순 왕복이 아니라 workload별 분화와 운영 복잡성 재평가가 일어났습니다.

작동 원리

다양한 data type과 index를 관계형 transaction·query planner와 결합합니다.

검증 증거

Query pattern, consistency, volume, operator skill과 failure domain을 표로 비교합니다.

구체적인 시스템에서 따라가기

문서 database는 객체 구조를 한 record에 함께 저장해 application model과 읽기 단위를 맞추기 쉽습니다. 대규모 key-value access와 수평 분산이 중요한 서비스에서는 관계형 join을 줄이고 partition key로 요청 위치를 예측하는 장점이 있습니다. 대신 여러 document에 걸친 규칙, 중복 data의 갱신과 새로운 query pattern은 application 책임이 될 수 있습니다.

PostgreSQL이 JSON type과 indexing, partitioning과 extension을 제공하면서 관계형 제약이 필요한 core data와 유연한 attribute를 한 운영 경계에서 다루는 선택지가 생겼습니다. 그렇다고 모든 workload를 한 database에 넣어야 하는 것은 아닙니다. 장애 domain, 독립 확장, backup과 팀 ownership 비용까지 포함해 polyglot persistence와 통합 운영을 비교해야 합니다.

선택 기준과 실패 경계

범용성만 믿고 특수 workload의 scale과 latency를 측정하지 않으면 병목이 됩니다.

피해야 할 오해: NoSQL 시대가 끝나 PostgreSQL만 쓰면 된다는 생각은 틀립니다.

직접 검증하기

Query pattern, consistency, volume, operator skill과 failure domain을 표로 비교합니다.

판정할 핵심다양한 data type과 index를 관계형 transaction·query planner와 결합합니다.

이 장을 정리하면

RDB→NoSQL→RDB의 단순 왕복이 아니라 workload별 분화와 운영 복잡성 재평가가 일어났습니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. IBM Research, 「A Relational Model of Data for Large Shared Data Banks검토일 2026-08-28 · 적용 범위 1970년 원 논문
  2. PostgreSQL Global Development Group, 「JSON Functions and Operators검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current

CHAPTER 3 / 8

Embedding과 vector search

Vector search는 표현의 가까움을 찾고 metadata filter와 원문 근거가 의미와 권한을 보완합니다.

이 개념이 필요해진 배경

Embedding model은 text나 image를 고정 길이 숫자 배열로 변환합니다. 같은 model과 preprocessing을 쓴 vector 사이의 거리로 후보를 찾지만 model revision이 바뀌면 공간도 달라져 재생성과 version 관리가 필요합니다.

Exact search는 모든 vector를 비교해 정확한 nearest neighbor를 찾고, HNSW와 IVFFlat 같은 approximate index는 더 빠른 검색을 위해 일부 recall과 build memory·시간을 교환합니다. Dataset 크기와 latency 목표 없이 index 이름만 고를 수 없습니다.

그림 5-4. Embedding과 vector search의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Vector search는 표현의 가까움을 찾고 metadata filter와 원문 근거가 의미와 권한을 보완합니다.

작동 원리

Distance metric과 index가 query vector에 가까운 후보 ID를 반환합니다.

검증 증거

정답 집합으로 recall@k, latency와 filter 적용 후 누락을 함께 측정합니다.

구체적인 시스템에서 따라가기

Embedding은 문장이나 이미지의 의미를 완벽히 저장하는 정답표가 아니라 model이 학습한 표현을 고정 차원의 숫자로 바꾼 결과입니다. 같은 의미의 표현이 가까워질 가능성이 있지만 숫자, 부정, 최신 사실과 domain 용어는 기대와 다르게 배치될 수 있습니다. Model과 전처리가 바뀌면 기존 vector와 같은 공간에서 직접 비교할 수 없는 경우도 생깁니다.

Exact search는 모든 vector와 거리를 계산해 현재 metric에서 가장 가까운 결과를 찾지만 data가 커지면 비용이 증가합니다. HNSW와 IVFFlat 같은 approximate index는 일부 후보만 탐색해 속도를 얻는 대신 recall, memory, build와 update 비용을 교환합니다. 대표 query와 정답 set으로 recall@k, tail latency와 index build 시간을 함께 측정해야 index 선택이 근거를 가집니다.

선택 기준과 실패 경계

Approximation, model drift, memory, filter 상호작용과 relevance 오판이 생깁니다.

피해야 할 오해: 높은 cosine similarity가 정답이나 사실성을 증명한다는 생각은 틀립니다.

직접 검증하기

정답 집합으로 recall@k, latency와 filter 적용 후 누락을 함께 측정합니다.

판정할 핵심Distance metric과 index가 query vector에 가까운 후보 ID를 반환합니다.

이 장을 정리하면

Vector search는 표현의 가까움을 찾고 metadata filter와 원문 근거가 의미와 권한을 보완합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. pgvector, 「Exact and Approximate Nearest Neighbor Search검토일 2026-08-28 · 적용 범위 공식 저장소 README

CHAPTER 4 / 8

RAG는 하나의 기능이 아니라 pipeline

검색 결과가 나쁘면 model보다 ingest·chunk·embedding·filter·rerank 중 실패한 stage를 먼저 찾습니다.

이 개념이 필요해진 배경

문서는 source ID와 revision, owner, 권한을 가진 채 parse·chunk되고 embedding index와 연결됩니다. Query는 filter와 retrieval, rerank를 거쳐 제한된 source span을 model context로 전달합니다.

답변은 어떤 span이 어떤 주장을 지지하는지 citation으로 연결해야 합니다. 검색되지 않은 정보, 오래된 revision, context에서 왜곡된 답과 model의 근거 없는 결론은 서로 다른 실패이므로 stage별 지표가 필요합니다.

그림 5-5. RAG는 하나의 기능이 아니라 pipeline의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

검색 결과가 나쁘면 model보다 ingest·chunk·embedding·filter·rerank 중 실패한 stage를 먼저 찾습니다.

작동 원리

Evidence identity를 ingest부터 answer citation까지 유지해 실패 stage를 추적합니다.

검증 증거

Known question의 source span을 고정하고 stage별 candidate ID와 citation support를 비교합니다.

구체적인 시스템에서 따라가기

RAG는 문서를 vector database에 넣고 model을 호출하는 한 단계가 아닙니다. Source 수집, parsing, 정제, chunk, embedding, index, query 변환, candidate 검색, 권한 filter, rerank, context packing, generation과 citation이 이어집니다. 답이 틀렸을 때 각 stage의 입력과 revision을 보존하지 않으면 prompt 문제인지 누락된 source인지 구분할 수 없습니다.

예를 들어 최신 인사 규정이 답에 나오지 않았다면 ingest가 이전 revision을 읽었는지, table parser가 핵심 행을 잃었는지, chunk가 질문과 다른 표현을 썼는지, ACL filter가 허용 문서를 제거했는지 차례로 확인합니다. Citation도 URL 문자열만 붙이는 것이 아니라 실제 답 문장을 지지하는 span과 source revision을 가리켜야 합니다.

선택 기준과 실패 경계

Index freshness, retrieval latency, 권한, token 비용과 평가 운영이 추가됩니다.

피해야 할 오해: 문서를 vector DB에 넣으면 자동으로 근거 있는 답이 된다는 생각은 틀립니다.

직접 검증하기

Known question의 source span을 고정하고 stage별 candidate ID와 citation support를 비교합니다.

판정할 핵심Evidence identity를 ingest부터 answer citation까지 유지해 실패 stage를 추적합니다.

이 장을 정리하면

검색 결과가 나쁘면 model보다 ingest·chunk·embedding·filter·rerank 중 실패한 stage를 먼저 찾습니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. pgvector, 「Exact and Approximate Nearest Neighbor Search검토일 2026-08-28 · 적용 범위 공식 저장소 README

CHAPTER 5 / 8

Agent의 데이터 접근과 안전

Agent는 database credential을 받는 것이 아니라 허용된 업무 operation과 row scope를 호출해야 합니다.

이 개념이 필요해진 배경

자연어를 SQL로 바꾸는 기능은 편리하지만 prompt injection, full table scan과 권한 우회 위험이 있습니다. Read replica, allowlisted view, parameterized query, row-level policy와 query budget으로 capability를 제한합니다.

쓰기 작업은 preview, domain validation, transaction, idempotency와 승인 정책이 필요합니다. Audit에는 사용자의 identity, agent와 tool revision, 영향 row와 결과를 남기되 원문 개인정보와 secret은 최소화합니다.

그림 5-6. Agent의 데이터 접근과 안전의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

Agent는 database credential을 받는 것이 아니라 허용된 업무 operation과 row scope를 호출해야 합니다.

작동 원리

Domain tool과 database policy가 자연어 의도를 제한된 query·transaction으로 변환합니다.

검증 증거

금지 table, 다른 tenant, 대량 query와 중복 write가 각 경계에서 거부되는지 확인합니다.

구체적인 시스템에서 따라가기

Agent가 자연어로 database를 검색할 때 model에게 raw SQL과 관리자 credential을 주면 query 실수와 prompt injection이 곧 data 노출이나 변경으로 이어질 수 있습니다. 허용된 view, row-level policy와 parameterized query를 제한된 tool 뒤에 두고 결과 수와 민감 field를 server에서 통제해야 합니다.

권한 filter는 검색 뒤 결과를 숨기는 후처리가 아니라 candidate를 만들기 전에 적용해야 합니다. 권한 없는 vector가 rerank나 model context에 들어간 뒤 화면에서만 가리면 이미 정보가 처리 경계를 넘었습니다. Tenant, subject, source revision과 policy decision을 retrieval trace에 남기고 권한 변경 뒤 cache와 index에서도 제거되는 시간을 검증해야 합니다.

선택 기준과 실패 경계

정책 drift, 과도한 query, 민감 data 노출과 중복 변경 위험이 있습니다.

피해야 할 오해: Agent가 SQL을 생성할 수 있으면 database administrator 권한을 줘도 된다는 생각은 틀립니다.

직접 검증하기

금지 table, 다른 tenant, 대량 query와 중복 write가 각 경계에서 거부되는지 확인합니다.

판정할 핵심Domain tool과 database policy가 자연어 의도를 제한된 query·transaction으로 변환합니다.

이 장을 정리하면

Agent는 database credential을 받는 것이 아니라 허용된 업무 operation과 row scope를 호출해야 합니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. PostgreSQL Global Development Group, 「Constraints검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current
  2. PostgreSQL Global Development Group, 「Concurrency Control: Introduction검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current
  3. pgvector, 「Exact and Approximate Nearest Neighbor Search검토일 2026-08-28 · 적용 범위 공식 저장소 README

CHAPTER 6 / 8

동시에 들어온 예약을 데이터 규칙으로 제한하기

화면의 중복 확인만으로는 동시에 도착한 두 쓰기의 충돌을 막을 수 없습니다.

이 개념이 필요해진 배경

예약 화면 두 개가 같은 좌석을 조회하면 둘 다 아직 비어 있다는 결과를 받을 수 있습니다. 조회 뒤 저장 사이에 다른 요청이 끼어들므로 “없으면 생성”을 application의 두 단계로만 구현하면 중복 예약이 생길 수 있습니다.

좌석과 회차처럼 중복되면 안 되는 업무 식별자를 database의 unique 제약으로 표현합니다. 사용자 화면의 사전 확인은 안내를 빠르게 하지만 최종 일관성은 모든 writer가 통과하는 저장 경계에서 지켜야 합니다.

관련된 예약과 잔여 수량 변경은 하나의 transaction 계약으로 묶습니다. 어느 검사가 실패했을 때 무엇이 rollback되는지 정의하지 않으면 예약은 없는데 수량만 줄어드는 중간 상태를 남길 수 있습니다.

제약 위반을 정상 성공으로 숨기지 않고 이미 예약됨 같은 명시적 업무 결과로 변환합니다. Database 오류 원문을 사용자에게 노출할 필요는 없지만 충돌과 일시 장애를 같은 재시도 정책으로 처리하지 않습니다.

그림 5-7. 동시에 들어온 예약을 데이터 규칙으로 제한하기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

화면의 중복 확인만으로는 동시에 도착한 두 쓰기의 충돌을 막을 수 없습니다.

작동 원리

업무 식별자의 unique 제약과 관련 변경의 transaction이 동시 쓰기를 일관된 결과로 만듭니다.

검증 증거

같은 회차 경합과 다른 회차 정상 예약을 함께 실행해 최종 row와 수량을 검증합니다.

구체적인 시스템에서 따라가기

교육용 fixture는 회차 S1의 좌석 A3에 두 요청을 동시에 보냅니다. 각 요청이 사전 조회를 마친 뒤 쓰기를 시작하도록 동기화해 순차 테스트에서 드러나지 않는 경합을 만듭니다. 요청을 순서대로 실행한 뒤 우연히 하나만 성공한 결과와 구분합니다. 동시성 fixture는 두 사전 조회가 모두 빈 상태를 보았다는 증거를 남겨 경합 조건이 실제로 만들어졌는지 확인합니다.

검증은 성공 응답 하나와 충돌 응답 하나뿐 아니라 최종 예약 row 하나와 잔여 수량의 한 번 감소를 확인합니다. 응답 status만 맞아도 내부 중복 변경이 남을 수 있습니다. Transaction 실패 직후 잔여 수량을 다시 조회합니다. 화면의 숫자가 cache되어 있으면 저장된 오류를 가릴 수 있으므로 검증은 권한 있는 원본 데이터 조회와 연결합니다.

다른 회차 S2의 A3 예약은 허용되는지도 함께 확인합니다. 단순 좌석 번호만 unique로 만들면 서로 다른 회차의 정상 예약까지 차단하므로 제약 key는 업무 범위를 정확히 반영해야 합니다. 예약 취소 뒤 같은 좌석을 다시 예약할 수 있는지도 정책에 맞게 확인합니다. Active 예약만 제한할지 과거 이력까지 제한할지는 서로 다른 데이터 모델이므로 먼저 업무 규칙을 고정합니다.

Agent의 tool도 같은 저장 계약을 사용하게 하고 우회 쓰기 경로를 별도로 점검합니다. 자연어로 중복을 금지하는 지시보다 실제 제약과 transaction 결과가 충돌 방지의 근거입니다. Batch import와 관리 도구도 같은 제약을 통과하는지 목록으로 확인합니다. 일반 API 하나만 안전해도 다른 writer가 규칙을 우회하면 최종 데이터 일관성은 보장되지 않습니다.

선택 기준과 실패 경계

잘못 고른 unique 범위는 정상 업무를 막으며 충돌 응답과 재시도 정책도 설계해야 합니다.

피해야 할 오해: 저장 전에 중복을 조회했으므로 동시 요청에도 안전하다는 생각은 틀립니다.

직접 검증하기

같은 회차 경합과 다른 회차 정상 예약을 함께 실행해 최종 row와 수량을 검증합니다.

판정할 핵심업무 식별자의 unique 제약과 관련 변경의 transaction이 동시 쓰기를 일관된 결과로 만듭니다.

이 장을 정리하면

화면의 중복 확인만으로는 동시에 도착한 두 쓰기의 충돌을 막을 수 없습니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. PostgreSQL Global Development Group, 「Constraints검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current
  2. PostgreSQL Global Development Group, 「Concurrency Control: Introduction검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current

CHAPTER 7 / 8

권한 필터 뒤에 줄어든 검색 결과 진단하기

거리 검색의 후보 수와 권한을 적용한 유효 결과 수는 같지 않을 수 있습니다.

이 개념이 필요해진 배경

전체 vector에서 가까운 항목을 찾은 뒤 tenant 조건을 적용하면 요청한 개수보다 적은 결과가 남을 수 있습니다. 이것을 바로 문서 부재나 embedding 실패로 단정하지 말고 index 탐색과 filter가 적용되는 위치를 확인합니다.

pgvector의 approximate index에서는 filtering과 탐색 범위의 상호작용을 확인해야 합니다. 실제 version이 지원하는 iterative scan과 탐색 한도를 검토하되 더 많이 찾는 설정이 권한 경계를 완화하는 이유가 되어서는 안 됩니다.

정확도 기준선은 같은 tenant 조건과 같은 거리 함수로 만든 exact search 결과입니다. 권한 없는 전체 집합의 상위 결과를 정답으로 삼으면 필터가 올바르게 제외한 항목을 검색 실패로 잘못 평가합니다.

검색 설정을 바꿀 때 recall, 반환 개수와 지연을 함께 기록합니다. 필요한 결과를 채우기 위해 탐색을 늘리면 비용도 증가하므로 업무가 요구한 하한을 충족하는지 같은 workload로 판단합니다.

그림 5-8. 권한 필터 뒤에 줄어든 검색 결과 진단하기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

거리 검색의 후보 수와 권한을 적용한 유효 결과 수는 같지 않을 수 있습니다.

작동 원리

동일한 권한 범위의 exact 기준선과 approximate 실행 계획을 비교해 누락 원인을 좁힙니다.

검증 증거

같은 tenant·거리 함수로 recall과 지연을 비교하고 무단 반환이 0건인지 별도로 검사합니다.

구체적인 시스템에서 따라가기

가상 문서 집합은 tenant A와 B를 함께 저장하고 A 사용자가 다섯 문서를 요청합니다. 먼저 A의 허용 문서만 대상으로 exact 기준선을 만들어 실제로 다섯 관련 문서가 존재하는지 확인합니다. 정답 문서의 ID와 revision을 보관해 삭제되거나 바뀐 문서를 계속 기대하지 않게 합니다. 기준선이 오래되면 index 수정이 아니라 평가 자료 갱신이 필요한 상황일 수 있습니다.

Approximate 경로가 두 건만 반환하면 후보 탐색량, 필터 조건과 실제 실행 계획을 기록합니다. 이 상태에서 tenant 조건을 제거해 다섯 건을 채우는 것은 성능 복구가 아니라 권한 위반입니다. Query plan에서 실제 approximate index를 사용했는지도 확인합니다. 설정을 바꿨지만 다른 실행 계획이 선택됐다면 지연 변화의 원인을 탐색 한도 하나로 설명할 수 없습니다.

탐색 설정이나 partition 구성을 바꾸면 동일 질문의 recall과 지연을 다시 비교합니다. 특정 tenant만 좋아지고 다른 tenant의 대기 시간이 늘 수 있으므로 공유 index의 영향을 분리해 관찰합니다. 질문 순서와 cache 조건을 고정한 반복을 사용합니다. 한 후보만 warm cache에서 실행하면 index 설계 차이와 캐시 효과가 섞여 잘못된 속도 결론이 나옵니다.

평가 결과에는 권한 없는 반환 0건을 독립 조건으로 둡니다. Recall이 좋아졌다는 이유로 한 건의 다른 tenant 문서를 허용하지 않아야 검색 품질과 접근 제어가 동시에 성립합니다. 권한 검사에서 제외된 문서 ID는 공개 답변이나 검색 제안에 남기지 않습니다. 본문을 숨겨도 제목이나 존재 여부가 노출될 수 있으므로 반환 형식 전체를 확인합니다.

선택 기준과 실패 경계

탐색 확대·partition은 지연과 운영 비용을 바꾸므로 전체 workload에서 재측정합니다.

피해야 할 오해: 요청한 k개보다 적게 왔으므로 권한 필터를 빼도 된다는 생각은 틀립니다.

직접 검증하기

같은 tenant·거리 함수로 recall과 지연을 비교하고 무단 반환이 0건인지 별도로 검사합니다.

판정할 핵심동일한 권한 범위의 exact 기준선과 approximate 실행 계획을 비교해 누락 원인을 좁힙니다.

이 장을 정리하면

거리 검색의 후보 수와 권한을 적용한 유효 결과 수는 같지 않을 수 있습니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. pgvector, 「Exact and Approximate Nearest Neighbor Search검토일 2026-08-28 · 적용 범위 공식 저장소 README
  2. PostgreSQL Global Development Group, 「CREATE INDEX검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current

CHAPTER 8 / 8

원문 삭제를 vector와 cache까지 추적하기

원문을 지운 것과 검색·답변에서 더 이상 사용되지 않는 것은 다른 상태입니다.

이 개념이 필요해진 배경

문서 하나에서 여러 chunk와 vector, 요약 cache가 파생되면 원본 파일만 지워도 검색 결과에 과거 내용이 남을 수 있습니다. 원문 ID와 revision을 파생 데이터마다 보존해야 삭제 대상의 범위를 찾을 수 있습니다.

문서 제목을 식별자로 쓰면 같은 제목의 개정본이 섞일 수 있습니다. 내용 hash와 revision, chunk ID를 연결하고 현재 사용 가능한 generation을 명시해 어떤 결과가 새 원문을 근거로 하는지 확인합니다.

삭제 작업은 원문, active index와 cache의 각 처리 상태를 기록합니다. 일부가 실패하면 완료라고 표시하지 않고 남은 대상을 재처리하며, 재시작 뒤에도 같은 삭제 요청의 진행 상황을 이어갈 수 있어야 합니다.

사용 중인 결과와 보존 정책도 별도 조건입니다. 되돌리기용 artifact가 있더라도 철회된 내용을 새 사용자 응답에 재노출하지 않도록 active 경로와 제한된 보관 경로를 구분합니다.

그림 5-9. 원문 삭제를 vector와 cache까지 추적하기의 판단 흐름문제 조건에서 작동 원리와 검증 증거까지 이어지는 관계입니다.
문제와 선택 조건

원문을 지운 것과 검색·답변에서 더 이상 사용되지 않는 것은 다른 상태입니다.

작동 원리

Source ID·revision의 파생 관계와 단계별 삭제 상태로 active 경로의 잔존 데이터를 확인합니다.

검증 증거

삭제 전 존재를 확인하고 cache 실패를 주입한 뒤 이전 revision 0건과 최신 revision 보존을 검증합니다.

구체적인 시스템에서 따라가기

가상 규정 문서 D7 revision 2를 삭제 fixture로 정하고 파생 chunk ID 목록을 고정합니다. 삭제 전에는 해당 질문에서 D7이 검색되는지 확인해 원래부터 없던 자료로 거짓 통과하지 않게 합니다. 삭제 대상의 내용과 같은 문장을 가진 다른 유효 문서도 함께 둡니다. 문장 문자열을 일괄 삭제하는 방식이 아니라 원문 신원에 따른 삭제인지 확인하는 반례입니다.

Index 삭제는 성공하고 cache 무효화는 실패하도록 주입합니다. 상태 화면이 부분 실패를 보이며 같은 질문에 오래된 답이 남는 경로를 찾는지 확인합니다. 재시작 뒤 남은 cache 삭제 작업이 사라지지 않는지도 시험합니다. 메모리의 완료 목록만 사용하면 과정 중단 후 실패 대상이 잊혀져 오래된 자료가 계속 서비스될 수 있습니다.

재처리 뒤 active index, 결과 cache와 replica를 각각 조회해 D7 revision 2가 0건인지 검사합니다. 전체 문서 수가 하나 줄었다는 집계만으로 특정 파생 데이터의 제거를 증명할 수 없습니다. 조회 결과의 revision을 함께 저장해 0건 판정이 어느 세대를 대상으로 했는지 남깁니다. 서로 다른 시점의 replica 결과를 하나의 완료 상태처럼 합치지 않습니다.

새 revision 3은 별도 fixture로 유지해 삭제 범위가 지나치게 넓지 않은지도 봅니다. 정확한 삭제는 옛 근거를 제거하면서 유효한 최신 문서의 검색과 출처 연결을 보존해야 합니다. 복구용 이전 generation으로 전환하는 시험에서도 철회 목록을 적용합니다. Rollback이 과거 문서 전체를 다시 활성화하면 장애는 복구해도 삭제 약속은 위반할 수 있습니다.

선택 기준과 실패 경계

비동기 index와 cache의 부분 실패를 처리해야 하며 전체 개수만으로 완료를 판단할 수 없습니다.

피해야 할 오해: 원본 파일을 삭제하면 모든 vector와 cache도 자동으로 사라진다는 생각은 틀립니다.

직접 검증하기

삭제 전 존재를 확인하고 cache 실패를 주입한 뒤 이전 revision 0건과 최신 revision 보존을 검증합니다.

판정할 핵심Source ID·revision의 파생 관계와 단계별 삭제 상태로 active 경로의 잔존 데이터를 확인합니다.

이 장을 정리하면

원문을 지운 것과 검색·답변에서 더 이상 사용되지 않는 것은 다른 상태입니다.

이 장의 공식 출처

본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.

  1. PostgreSQL Global Development Group, 「Constraints검토일 2026-08-28 · 적용 범위 PostgreSQL 18 / current
  2. pgvector, 「Exact and Approximate Nearest Neighbor Search검토일 2026-08-28 · 적용 범위 공식 저장소 README

INTERACTIVE LAB 1 / 2

실습 1 · 고객지원 검색의 index와 권한 진단

전 직원 문서를 한 vector index에 넣었고 검색 뒤 application에서 권한 없는 문서를 숨깁니다. Top-k가 권한 없는 문서로 차면 허용 문서가 남지 않습니다.

Recall과 보안을 함께 개선할 방법을 고르세요.

답 선택

정답 A

A. 검색 후보 생성 전에 tenant·ACL filter를 적용하고 허용 slice의 recall@k와 citation을 평가합니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

B. Top-k를 무한히 키우고 마지막 화면에서만 숨깁니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

C. Cosine similarity가 높으면 권한 검사를 생략합니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

D. 모든 문서를 public으로 바꿉니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

INTERACTIVE LAB 2 / 2

실습 2 · 필터 뒤 두 건만 남은 vector 검색 복구

Tenant A의 허용 문서에는 관련 결과 다섯 건이 있습니다. 같은 질문의 approximate 검색은 두 건만 반환했고 다른 tenant 문서를 섞으면 다섯 건이 됩니다.

권한과 검색 품질을 함께 지키는 다음 검증을 고르십시오.

답 선택

정답 C

A. 다섯 건을 채우도록 tenant 필터를 제거합니다.반환 개수를 맞추기 위해 접근 권한을 위반합니다.

B. 두 건도 자연스럽게 요약되므로 검색은 통과입니다.답변의 자연스러움은 필요한 근거의 누락을 확인하지 못합니다.

C. 같은 tenant의 exact 기준선과 비교하고 탐색 설정별 recall·지연·무단 반환 0건을 검사합니다.검색 범위의 결손을 권한 완화 없이 분리해 검증합니다.

D. Embedding model만 교체하고 이전 결과는 버립니다.원인 비교 기준을 잃으며 filter·index 탐색 문제인지 알 수 없습니다.

KEY TERMS

이번 단원 핵심 용어

관계형 모델과 일관성
Declarative query와 constraint, transaction이 data 관계와 일관성을 database에서 enforce합니다.
NoSQL의 등장과 PostgreSQL 재평가
다양한 data type과 index를 관계형 transaction·query planner와 결합합니다.
Embedding과 vector search
Distance metric과 index가 query vector에 가까운 후보 ID를 반환합니다.
RAG는 하나의 기능이 아니라 pipeline
Evidence identity를 ingest부터 answer citation까지 유지해 실패 stage를 추적합니다.
Agent의 데이터 접근과 안전
Domain tool과 database policy가 자연어 의도를 제한된 query·transaction으로 변환합니다.
동시에 들어온 예약을 데이터 규칙으로 제한하기
업무 식별자의 unique 제약과 관련 변경의 transaction이 동시 쓰기를 일관된 결과로 만듭니다.
권한 필터 뒤에 줄어든 검색 결과 진단하기
동일한 권한 범위의 exact 기준선과 approximate 실행 계획을 비교해 누락 원인을 좁힙니다.
원문 삭제를 vector와 cache까지 추적하기
Source ID·revision의 파생 관계와 단계별 삭제 상태로 active 경로의 잔존 데이터를 확인합니다.

UNIT WORKBOOK

개념을 새로운 상황에 적용하는 문제와 기록지

기본 원리 확인에서 시작해 실제 업무 판단으로 확장합니다. 답을 제출하면 정답만이 아니라 모든 선택지가 맞거나 틀린 이유를 확인할 수 있습니다.

THREE-LEVEL ASSESSMENT

기본 원리에서 운영 판단까지

답을 제출하면 정답만이 아니라 모든 선택지가 맞거나 틀린 이유를 확인할 수 있습니다.

기본 문제 1

Vector similarity가 직접 말하는 것은 무엇인가요?

답 선택

정답 A

A. 선택한 embedding과 distance 기준에서 두 표현이 얼마나 가까운지입니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

B. 문장이 법적으로 참이라는 사실입니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

C. 사용자가 문서를 볼 권한입니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

D. Database transaction의 성공입니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

적용 문제 2

HNSW 같은 approximate index를 선택할 때 함께 측정할 것은 무엇인가요?

답 선택

정답 B

A. Model 답변 길이만 봅니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

B. 정답 집합의 recall@k, filter 조건, latency, memory와 build 비용입니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

C. Index 이름의 인기도입니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

D. Table 색상입니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

종합 문제 3

RAG 답이 틀렸을 때 첫 진단 방법은 무엇인가요?

답 선택

정답 C

A. 모든 권한 filter를 제거합니다.서로 다른 계층의 책임을 하나로 간주해 실제 검증 지점을 놓칩니다.

B. 답변 prompt만 길게 만듭니다.기술 이름이나 유행을 근거로 삼았지만 현재 요구의 관찰 가능한 증거가 없습니다.

C. Source revision부터 chunk·candidate·filter·rerank·citation을 stage별 evidence로 분리합니다.조건과 작동 원리, 실패 경계까지 함께 반영한 판단입니다.

D. 무조건 더 큰 model로 바꿉니다.일부 장점만 보고 전제 조건이나 새로 생기는 실패 경계를 빠뜨렸습니다.

PRIMARY SOURCES

과정 참고문헌

장별 출처를 다시 모은 목록입니다. 본문의 설명과 저자 도해는 아래 원문을 직접 검토해 작성했습니다.

PERSONAL WORKSHEET

내 환경에 옮겨 적는 학습 기록지

입력 내용은 현재 브라우저 화면에만 머물며 저장하거나 외부로 전송하지 않습니다. 민감한 실제 정보 대신 범주와 가명을 사용하십시오.

OFFICIAL SOURCES

공식 자료에서 다시 확인하기

기술·호환성·모델 정보 검토 연월: 2026년 8월

LEARNING RECORD

본문·판단 활동·모든 해설을 확인했나요?

완료 기록은 이 브라우저에만 저장됩니다.