Dict

개발하면서 마주친 용어들을 모아둔 공간

갭 락

Database

Gap Lock. InnoDB가 인덱스 레코드 사이의 빈 구간을 잠그는 잠금. 기본 격리 수준(REPEATABLE READ)에서 넥스트키 락의 일부로 팬텀 리드를 막지만, READ COMMITTED에서는 거의 쓰이지 않는다. 의도치 않은 락 충돌·데드락의 원인이 되기도 한다.

검증·테스트 데이터

AI

Validation / Test Set. 학습에 쓰지 않고 따로 떼어 둔 평가용 데이터. 검증 데이터는 학습률이나 모델 구성을 고르는 데 쓰고, 테스트 데이터는 선택을 모두 마친 뒤 최종 성능을 재는 데 남겨 둔다. 테스트 점수를 보며 모델을 계속 고치면 테스트 데이터도 사실상 검증 데이터가 된다.

과적합

AI

Overfitting. 모델이 학습 데이터에 지나치게 맞춰져 처음 보는 데이터에서는 성능이 떨어지는 현상. 기출문제 답만 외운 상태와 비슷하다. 학습 손실은 계속 줄어드는데 검증 손실이 다시 오르기 시작하면 과적합을 의심한다.

교차 엔트로피

AI

Cross-Entropy. 모델이 예측한 확률 분포가 정답과 얼마나 어긋나는지 재는 손실. 다음 토큰 예측에서는 실제 정답 토큰에 준 확률이 낮을수록 값이 커진다. 정답에 90%를 줬으면 손실이 작고, 1%를 줬으면 크게 튄다.

기울기

AI

Gradient. 파라미터 하나를 아주 조금 바꿨을 때 손실이 어느 방향으로, 얼마나 빠르게 변하는지를 파라미터마다 구해 모아 둔 값. 어떤 파라미터의 기울기가 양수면 그 값을 줄여야 손실이 줄어든다. 역전파로 계산하고 옵티마이저가 업데이트에 쓴다.

꼬리 지연

Observability

Tail Latency. 응답 시간 분포에서 가장 느린 쪽 끝(꼬리)에 해당하는 소수 요청의 지연. p99·p99.9로 관측하며 GC 정지, 커넥션 대기, 캐시 미스 등이 원인이 된다. 요청 하나가 내부 서비스 여러 개를 호출하는 구조에서는 각 호출의 꼬리가 겹치면서 사용자 체감 지연으로 증폭된다.

데드락

Database

Deadlock. 두 트랜잭션이 서로가 쥔 잠금이 풀리길 기다리며 둘 다 멈추는 상황. DB는 보통 한쪽 트랜잭션을 강제 종료(rollback)해 교착을 푼다.

데이터 누수

AI

Data Leakage. 실제 사용 시점에는 알 수 없는 정보가 학습이나 평가에 섞여 성능이 부풀려지는 문제. 같은 문서를 조금 바꾼 사본이 학습과 테스트 양쪽에 들어가거나, 미래 매출을 예측하면서 미래 데이터를 학습에 쓰는 경우가 대표적이다.

라운드트립

Backend

Round-trip. 클라이언트와 서버 간 왕복 통신 1회. 횟수가 많을수록 네트워크 지연이 누적되므로 줄이는 것이 성능에 유리하다.

레이어 정규화

AI

Layer Normalization. 층을 지나며 커지거나 작아진 값의 크기를 일정한 범위로 맞추는 기법. 토큰 하나의 벡터 안에서 평균이 0, 표준편차(값이 퍼진 정도)가 1이 되게 맞춘 뒤 학습한 배율로 다시 조정한다. 학습을 안정시키는 용도이며 DB 정규화와는 무관하다.

로짓·소프트맥스

AI

Logit / Softmax. 로짓은 모델이 다음 토큰 후보마다 매긴 원점수로, 음수도 되고 합이 1도 아니다. 소프트맥스는 이 점수들을 0~1 사이이면서 합이 1인 확률로 바꾸는 함수다. 점수 차이가 클수록 1등 후보에 확률이 더 몰린다.

메트릭

Observability

Metric. 시스템 상태를 시간에 따라 수치로 측정한 시계열 데이터(요청 수, 응답 시간, CPU 사용률 등). 라벨로 차원을 나눠 집계·필터하며, 카운터·게이지·히스토그램 같은 타입으로 표현한다. 로그·트레이스와 함께 관측성의 세 기둥을 이룬다.

멱등성

Backend

Idempotence. 같은 작업을 한 번 실행하든 여러 번 실행하든 결과(서버 상태)가 동일하게 유지되는 성질. HTTP에서 GET·PUT·DELETE는 멱등하지만 POST·PATCH는 그렇지 않다. 네트워크 재시도나 중복 요청에도 부작용이 없어, 결제·통계 배치·메시지 처리 설계에서 안전한 재실행을 보장하는 핵심 원칙이다.

백분위

Observability

Percentile. 측정값을 빠른 순서로 정렬했을 때 특정 위치에 오는 값. 요청 1,000건의 p99는 990번째 요청의 응답 시간이고, "요청의 99%가 이 값 이내"라는 뜻이다. 평균이 소수의 느린 요청을 희석해 감추는 것과 달리 느림이 얼마나 흔한지를 드러낸다. 표본이 적거나 느린 요청이 경계에 몰려 있으면 한두 건 차이로 크게 튀므로 알람 기준으로 쓸 때 주의가 필요하다.

백프레셔

Backend

Backpressure. 리액티브 스트림에서 구독자(Subscriber)가 감당할 수 있는 만큼만 request(n)로 수요를 신호하고, 발행자(Publisher)는 그 수요를 넘겨 데이터를 밀어내지 않도록 하는 흐름 제어. push가 아닌 수요(demand) 기반으로 동작해, 비동기 경계 사이 큐를 유한하게 유지하고 무한정 버퍼링을 막는다. 생산자가 소비자보다 빠를 때 시스템이 무너지는 것을 방지하는 Reactive Streams 표준(Project Reactor·RxJava·Spring WebFlux 등)의 핵심 개념이다.

벡터 스토어

RAG

Vector Store. 임베딩 벡터를 저장하고 유사도 검색을 지원하는 저장소. PostgreSQL의 pgvector 확장이 대표적이며, Spring AI는 VectorStore 인터페이스로 구현체(인메모리·pgvector 등)를 추상화한다.

분산락

Backend

Distributed Lock. 여러 서버(프로세스)가 공유하는 락. 자바 인메모리 락은 서버 한 대 안에서만 유효하므로, 서버를 여러 대로 스케일아웃하면 Redis 같은 공유 저장소 기반의 락이 필요해진다.

사전학습

AI

Pretraining. 대규모 텍스트로 다음 토큰 예측을 반복하며 언어 패턴과 폭넓은 지식을 익히는 첫 학습 단계. 비용이 가장 많이 드는 단계이고, 결과물인 기본 모델(base model)은 문장을 이어 쓸 줄은 알아도 지시를 따르는 데는 서툴다.

손실 함수

AI

Loss Function. 예측이 정답과 얼마나 다른지를 점수 하나로 만드는 함수. 학습은 이 점수(손실)가 줄어드는 방향으로 파라미터를 바꾸는 과정이다. 오차를 제곱해 평균 낸 MSE(평균 제곱 오차)는 회귀 문제에, 교차 엔트로피는 LLM 같은 분류·생성 문제에 주로 쓴다.

순전파·역전파

AI

Forward / Backward Propagation. 순전파는 입력에서 출력 쪽으로 계산을 진행하는 과정이고, 학습 때는 그 예측으로 손실까지 구한다. 역전파는 반대로 손실에서 입력 쪽으로 거슬러 올라가며 미분의 연쇄법칙으로 각 파라미터의 기울기를 구한다. 역전파는 기울기 계산까지만 하고, 값을 실제로 바꾸는 건 옵티마이저다.

스레드 큐잉

Backend

처리할 스레드가 부족해 작업이나 스레드가 대기열에 줄 서서 기다리는 상태. 스레드 풀의 작업 큐가 쌓이면 응답 지연으로 이어지고, 락을 못 잡은 스레드는 대기 큐에서 차례를 기다린다.

어텐션

AI

Attention. 각 토큰이 문맥 속 토큰들(자기 자신 포함)의 정보를 얼마나 가져올지 계산해 섞는 연산. 토큰마다 Q(Query, 찾는 조건), K(Key, 검색 표식), V(Value, 가져올 정보) 벡터를 만들고, Q와 K를 비교한 점수를 비중 삼아 V를 가중합(비중만큼 곱해 더하는 것)한다. 이 계산을 여러 벌 병렬로 돌려 합치는 것이 멀티헤드 어텐션이다.

역정규화

Database

Denormalization. 읽기 성능을 위해 의도적으로 정규화를 일부 깨고 중복 데이터(미리 계산된 집계·복제 컬럼 등)를 허용하는 기법. 조인을 줄여 조회를 빠르게 하는 대신 저장 공간과 쓰기 비용이 늘고 데이터 정합성 관리 부담이 커진다. 통계·집계 테이블이나 대시보드처럼 읽기가 많은 환경에서 주로 쓰인다.

온도

AI

Temperature. 소프트맥스에 넣기 전에 로짓을 나누는 양수 값. 낮추면 높은 점수 후보에 확률이 몰려 답이 일정해지고, 높이면 분포가 고르게 퍼져 답이 다양해진다. 고르는 방식을 바꿀 뿐이라 높인다고 모델이 똑똑해지지 않고, 낮춘다고 틀린 답이 맞는 답이 되지도 않는다.

옵티마이저

AI

Optimizer. 역전파로 구한 기울기를 써서 파라미터를 실제로 업데이트하는 규칙. 가장 기본은 기울기 반대 방향으로 학습률만큼 옮기는 경사하강법(Gradient Descent)이다. 데이터를 조금씩 무작위로 뽑아 기울기를 구하고 업데이트하는 SGD(확률적 경사하강법), 파라미터마다 이동 폭을 자동으로 조절하는 Adam이 널리 쓰인다.

워치독

Backend

Watchdog. Redisson이 락을 자동 연장해 주는 백그라운드 메커니즘. leaseTime을 지정하지 않고 락을 걸면, 락을 쥔 스레드가 살아있는 동안 내부적으로 TTL을 계속 갱신해 락이 중간에 풀리지 않는다. 스레드가 죽으면 갱신이 멈춰 결국 TTL대로 풀린다.

위치 인코딩

AI

Positional Encoding. 토큰의 순서 정보를 모델에 넣는 방법. 어텐션은 순서 정보 없이는 "개가 사람을 물었다"와 "사람이 개를 물었다"를 제대로 구분하지 못한다. 처음 제안된 트랜스포머는 위치별 벡터를 임베딩에 더했고, 최근 모델은 Q·K 벡터를 위치에 따라 회전시키는 RoPE(Rotary Position Embedding)를 많이 쓴다.

인과적 마스킹

AI

Causal Masking. 어텐션에서 각 토큰이 자기보다 뒤에 오는 토큰을 보지 못하게 가리는 장치. 다음 토큰을 예측하는 모델이 학습 중에 정답(미래 토큰)을 미리 보는 것을 막는다. GPT 계열 같은 디코더형 생성 모델이 이 방식을 쓴다.

인제스트

RAG

Ingestion. 원문서를 읽어(Extract) → 청킹·메타데이터 강화(Transform) → 임베딩 후 벡터 스토어에 적재(Load)하는 ETL 파이프라인. RAG의 "검색 재료"를 만드는 단계.

임베딩

RAG

Embedding. 텍스트를 의미가 가까울수록 벡터 공간에서 가깝게 배치되도록 변환한 고정 차원 실수 벡터(차원 수는 모델마다 다르며 흔히 768·1536 등). 의미 기반 유사도 검색의 토대.

자기지도학습

AI

Self-Supervised Learning. 사람이 정답을 따로 달지 않고 데이터 자체에서 학습 문제를 만들어 배우는 방식. LLM 사전학습에서는 문장의 다음 토큰이 곧 정답이라 대량의 텍스트를 그대로 학습 재료로 쓸 수 있다. 이미지 등 다른 데이터에도 쓰인다.

자기회귀 생성

AI

Autoregressive Generation. 다음 토큰 하나를 예측해 고르고, 그 토큰을 문맥 뒤에 붙인 뒤 다시 다음 토큰을 예측하는 반복으로 문장을 만드는 방식. LLM 응답이 조금씩 흘러나오는 스트리밍이 이 구조에서 나온다.

잔차 연결

AI

Residual Connection. 층의 입력을 층의 출력에 그대로 더해 주는 우회 경로. 층은 원래 값을 통째로 다시 만들 필요 없이 바뀔 부분만 학습하면 되고, 층이 깊어져도 역전파 기울기가 앞쪽까지 잘 전달된다. 스킵 연결(skip connection)이라고도 한다.

재진입(락)

Backend

Reentrant Lock. 같은 스레드가 이미 잡고 있는 락을 다시 요청해도 즉시 성공하는 성질. Redisson의 RLock은 재진입을 지원해 같은 락을 두 번 lock()해도 통과하지만, hold count가 2가 되므로 unlock()도 정확히 두 번 해야 완전히 풀린다.

청킹

RAG

Chunking. 긴 문서를 임베딩·검색에 적합한 작은 조각(청크)으로 분할하는 과정. 청크가 작으면 검색은 정확하나 맥락이 부족하고, 크면 그 반대라 크기·오버랩 조정이 품질을 좌우한다.

추론(Inference)

AI

학습을 마친 모델에 새 입력을 넣어 결과만 계산하는 단계로, 가중치는 바뀌지 않는다. LLM과 대화하는 것도 추론이라 대화 중 지시를 따르는 건 입력 문맥이 달라져서지 모델이 새로 학습해서가 아니다. 모델이 단계를 밟아 생각하는 reasoning도 한국어로 추론이라 부르지만 다른 개념이다.

카디널리티

Observability

Cardinality. 메트릭이 만들어내는 고유 시계열의 수, 즉 메트릭 이름과 라벨 값들의 고유 조합 수. 사용자 ID·요청 경로처럼 값 종류가 많은(라벨 자체의 카디널리티가 높은) 라벨을 붙이면 조합이 곱셈으로 불어나 시계열이 폭증(cardinality explosion)하고, Prometheus 같은 시계열 DB의 메모리·저장 부하가 급증한다.

캡드 리스트

Backend

Capped List. LTRIM으로 항상 최근 N개만 남도록 잘라내는 Redis List 활용 패턴. 알림 목록처럼 전체 이력이 아니라 최근 것 몇 개만 보여주면 되는 데이터에 쓴다.

컨텍스트 윈도우

AI

Context Window. 모델이 한 번에 참고할 수 있는 최대 토큰 수. 시스템 지시, 이전 대화, 검색해 넣은 문서, 지금 생성 중인 답변이 모두 이 한도를 나눠 쓴다. 한도 안에 들어가더라도 긴 문맥의 정보를 고르게 잘 활용한다는 보장은 없다.

코사인 유사도

RAG

Cosine Similarity. 두 벡터가 이루는 각도의 코사인으로 방향 유사도를 재는 척도. 값 범위는 −1~1이다(1=같은 방향, 0=직교/무관, −1=정반대). 임베딩 검색에서는 보통 양수 영역에 분포하며, 코사인 거리(=1−유사도)의 보수로 쓰인다.

클러스터드 인덱스

Database

Clustered Index. 테이블 데이터 자체가 기본 키 순서로 정렬·저장되는 구조. MySQL InnoDB에서는 기본 키가 곧 클러스터드 인덱스이며, 보조 인덱스는 이를 거쳐 실제 행을 찾는다.

탐욕적 디코딩

AI

Greedy Decoding. 매 단계 확률이 가장 높은 토큰 하나만 고르는 생성 방식. 이론상 같은 입력에 늘 같은 답이 나오지만 같은 구절을 되풀이하는 문제가 생기기 쉽다. 확률에 따라 무작위로 뽑는 샘플링(sampling)과 대비되며, 온도를 0에 가깝게 낮추면 이 방식에 가까워진다.

토크나이저

AI

Tokenizer. 텍스트를 토큰으로 쪼개고 각 토큰에 ID를 붙이는 도구. ID는 어휘 목록(vocabulary)의 항목 번호일 뿐이라 숫자가 가깝다고 의미가 가깝지 않다. 같은 문장도 모델마다 토크나이저가 달라 토큰 수가 다르게 나온다.

토큰

AI

Token. LLM이 텍스트를 처리하는 단위. 단어 전체일 수도, 단어 일부나 문장부호일 수도 있다. 한국어 한 글자가 항상 한 토큰은 아니라서 글자 수와 토큰 수는 다르다. API 요금과 컨텍스트 윈도우 한도가 모두 토큰 수 기준이다.

트랜스포머

AI

Transformer. 현재 LLM 대부분이 쓰는 신경망 구조. 토큰 사이 정보를 섞는 어텐션과, 토큰 위치마다 표현을 변환하는 피드포워드 신경망(FFN)을 한 블록으로 묶고, 잔차 연결과 레이어 정규화를 더해 이 블록을 여러 층 쌓는다. 순서 정보는 위치 인코딩으로 넣는다. 2017년 논문 "Attention Is All You Need"에서 처음 제안됐다.

파라미터

AI

Parameter. 모델이 학습하면서 스스로 조정하는 숫자. 입력에 곱하는 가중치(weight)와 계산 결과에 더하는 편향(bias)이 대표적이다. 가중치는 음수도 될 수 있어서 입력을 얼마나, 어느 방향으로 반영할지를 함께 정한다. LLM 이름에 붙는 "7B"는 이 숫자가 70억 개라는 뜻이다.

파인튜닝

AI

Fine-tuning. 사전학습된 모델을 특정 작업이나 도메인 데이터로 추가 학습해 파라미터를 조정하는 것. 문의 분류나 정해진 출력 형식처럼 동작 방식을 맞추는 데 적합하고, 자주 바뀌는 정보를 정확히 꺼내 쓰는 용도로는 RAG가 더 맞다. 문서를 프롬프트에 넣는 것은 파라미터가 바뀌지 않으므로 파인튜닝이 아니다.

폐쇄 테이블 모델

Database

Closure Table. 트리의 모든 조상-자손 경로(자기 자신 포함)를 별도 테이블에 미리 저장해 두는 계층 구조 모델. parent_id 방식과 달리 서브트리·조상 조회를 조인 한 번으로 처리해 읽기 성능이 뛰어나지만, 관계 행 수가 늘어 저장 공간을 더 쓴다. Bill Karwin의 『SQL Antipatterns』에서 소개된 대표적 계층 설계 기법이다.

하이퍼파라미터

AI

Hyperparameter. 학습으로 정해지는 파라미터와 달리 사람이 학습 전에 정하는 설정값. 학습률, 배치 크기, 층 수처럼 학습 방식이나 모델 구조를 결정한다. 보통 검증 데이터에서 성능을 비교해 고른다.

학습률

AI

Learning Rate. 기울기를 보고 파라미터를 한 번에 얼마나 크게 바꿀지 정하는 계수. 너무 작으면 학습이 느리고, 너무 크면 손실이 가장 작은 지점을 지나쳐 손실이 오히려 커지며 발산할 수 있다. 대표적인 하이퍼파라미터다.

환각

AI

Hallucination. 모델이 사실과 다르거나 근거 없는 내용을 사실처럼 그럴듯하게 생성하는 현상. 다음 토큰 예측은 자연스러운 문장을 고르는 과정이지 사실을 검증하는 과정이 아니라서 생긴다. RAG로 근거를 넣어도 근거를 잘못 읽거나 없는 내용을 덧붙일 수 있다.

활성화 함수

AI

Activation Function. 뉴런의 계산 결과에 비선형 변환을 거는 함수. 곱하고 더하는 계산(선형 변환)만 여러 층 쌓으면 결국 선형 변환 하나로 합쳐지기 때문에, 층을 깊게 쌓아 복잡한 관계를 표현하려면 이 비선형성이 필요하다. 음수는 0으로, 양수는 그대로 내보내는 ReLU가 대표적이다.

ACID

Database

트랜잭션이 보장해야 할 네 가지 성질: 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability).

APM

Observability

Application Performance Monitoring. 애플리케이션의 응답 시간, 처리량, 오류율, 트랜잭션 흐름 등을 추적해 성능 문제와 병목을 진단하는 모니터링. 코드 레벨까지 들여다봐 느린 쿼리·외부 호출 등을 짚어낸다.

CGLIB 프록시

Backend

Code Generation Library Proxy. 스프링이 @Cacheable 같은 AOP 기능을 적용하기 위해 대상 클래스를 상속해서 만드는 대리 객체. Objenesis로 생성자를 거치지 않고 만들어지므로, 이 프록시의 필드에 직접 접근하면 초기화되지 않은 값(null)을 읽게 된다. AOP가 걸린 빈은 상태를 항상 getter로 노출해야 하는 이유다.

Count-Min Sketch

Backend

HyperLogLog와 같은 확률적 자료구조 계열이지만, 카디널리티가 아니라 원소별 등장 빈도를 근사하는 데 쓰인다. Redis 코어에는 없고 RedisBloom 모듈의 CMS.INCRBY 등으로 제공된다.

CTE

Database

Common Table Expression. WITH 절로 정의하는, 한 쿼리 안에서만 존재하는 임시 결과 집합. 복잡한 쿼리를 이름 붙인 단계로 쪼개 가독성을 높이고, WITH RECURSIVE로 트리·그래프 같은 계층 구조를 한 번에 조회한다. 재귀 CTE는 문법상 재귀지만 내부적으로는 반복(iterative)으로 평가된다.

EAV

Database

Entity-Attribute-Value. 속성을 컬럼이 아닌 행(Row)에 (엔티티, 속성, 값) 형태로 저장하는 동적 설계 패턴. 스키마 변경 없이 속성을 자유롭게 추가할 수 있어 상품 스펙·설문처럼 속성이 가변적이고 희소한 데이터에 쓰이지만, 조회 시 조인·피벗이 많아 성능과 무결성 관리가 어렵다.

EVALSHA

Backend

Redis에 미리 캐싱된 Lua 스크립트를 SHA1 해시로 실행하는 명령어. 스크립트를 한 번 EVAL로 실행하면 Redis가 스크립트 본문을 해시로 캐싱해 두고, 이후 호출부터는 본문 재전송 없이 이 해시만으로 실행을 요청한다.

Fixed Window Counter

Backend

정해진 시간 창(윈도우) 안에서 요청 횟수를 세는 레이트리밋 방식. INCR로 카운트를 올리고 그 카운트가 1이 되는 순간(윈도우의 첫 요청)에만 TTL을 걸어 구현한다. INCR와 EXPIRE가 원자적으로 묶여 있지 않으면, 그 사이 프로세스가 죽었을 때 TTL 없는 카운터가 영영 안 풀릴 수 있다.

HNSW

RAG

Hierarchical Navigable Small World. 고차원 벡터의 근사 최근접 이웃(ANN)을 빠르게 찾는 그래프 기반 인덱스. 다층 그래프 위에서 탐욕 탐색으로 후보를 좁히며, pgvector가 지원하고 정확도·속도 균형이 좋다.

HyDE

RAG

Hypothetical Document Embeddings. 질문을 그대로 임베딩하지 않고 LLM이 가상의 답변을 먼저 생성한 뒤 그 답변을 임베딩해 검색하는 기법. 질문과 문서가 임베딩 공간에서 잘 정렬되지 않는 형식 불일치(query-document 비대칭)를 완화한다.

HyperLogLog

Backend

개별 원소를 저장하지 않고 서로 다른 원소의 개수(카디널리티)만 아주 작은 고정 메모리(약 12KB)로 근사 추정하는 확률적 자료구조. 해시값 비트 패턴에서 선행 0이 연속된 길이를 여러 그룹(레지스터)에 나눠 기록해 두고, 그 값들을 조합해 개수를 역산한다. Redis에서는 PFADD/PFCOUNT/PFMERGE 명령어로 쓴다.

InnoDB

Database

MySQL의 기본 스토리지 엔진. 행 단위 잠금, 트랜잭션(ACID), 외래 키, 클러스터드 인덱스를 지원한다.

Lettuce

Backend

Spring Data Redis가 기본으로 쓰는 Redis 클라이언트. Netty 기반이라 커넥션 하나로 여러 요청을 동시에 처리(멀티플렉싱)할 수 있어, JDBC처럼 요청마다 커넥션을 물고 있을 필요가 없다.

LoRA

AI

Low-Rank Adaptation. 기존 가중치는 고정해 두고, 가중치 변화량을 작은 행렬 두 개의 곱으로 표현해 그 두 행렬만 학습하는 파인튜닝 기법. 두 행렬 사이의 차원인 랭크(r)가 작을수록 학습할 숫자가 줄어든다. 숫자 100만 개가 든 1,000×1,000 행렬의 변화량을 랭크 8이면 1만 6천 개 숫자로 학습한다. 학습 후에는 기존 가중치에 합쳐서 추론할 수 있다.

OSIV

Backend

Open Session In View. HTTP 요청이 시작될 때 연 영속성 컨텍스트를, 트랜잭션이 끝난 뒤에도 응답이 완료될 때까지(REST는 응답 반환, MVC는 뷰 렌더링까지) 유지하는 설정. 덕분에 트랜잭션 밖에서도 지연 로딩이 가능해 LazyInitializationException을 피하지만, DB 커넥션을 요청 내내 붙잡고 있어 트래픽이 몰리면 커넥션 풀 고갈로 이어진다. Spring Boot 기본값은 켜짐(spring.jpa.open-in-view=true)이라 시작 시 경고 로그를 남기며, 끄면(false) 커넥션은 @Transactional 메서드가 끝나는 즉시 반환된다.

PFADD

Backend

HyperLogLog에 원소를 추가하는 Redis 명령어. 원소를 해시해 어느 레지스터에 속하는지 계산하고, 그 레지스터에 이미 기록된 값보다 클 때만 갱신한다. 같은 원소를 몇 번을 추가해도 항상 같은 레지스터의 같은 값이 나올 뿐이라 카운트가 늘지 않는 멱등적 명령이다.

PFCOUNT

Backend

HyperLogLog가 추정한 카디널리티를 조회하는 Redis 명령어. 개별 원소를 저장하지 않고 근사 추정하는 구조라 정확한 값이 아니며, Redis 구현 기준 표준 오차는 약 0.81%다.

PFMERGE

Backend

여러 HyperLogLog 키를 하나로 합치는 Redis 명령어. 합친 결과의 PFCOUNT는 원본 키들의 개수를 단순히 더한 값이 아니라, 겹치는 원소를 한 번만 세는 합집합 기준 유니크 개수를 근사한다.

RAG

RAG

Retrieval-Augmented Generation. LLM이 답하기 전, 외부 지식베이스에서 관련 문서를 검색해 프롬프트에 함께 넣어 생성하는 기법. 모델 재학습 없이 최신·사내 정보를 반영하고 환각을 줄인다.

RDB/AOF

Backend

Redis Database / Append Only File. Redis가 메모리 데이터를 디스크에 남기는 두 가지 영속성 방식. RDB는 특정 시점의 스냅숏을 통째로 저장하고, AOF는 실행된 쓰기 명령을 순서대로 기록해 재실행한다. 둘 다 켜지 않으면 재시작 시 데이터가 전부 유실된다.

READ COMMITTED

Database

트랜잭션 격리 수준의 하나로, 커밋된 데이터만 읽는다. MySQL 기본값(REPEATABLE READ)보다 락을 덜 잡아 동시성이 높지만, 같은 쿼리가 매번 다른 결과를 볼 수 있다(비반복 읽기).

Reranker

RAG

1차 검색으로 넓게 가져온 후보를 "이 청크가 질문에 실제로 답할 수 있는가" 기준으로 LLM(또는 cross-encoder 전용 모델)이 다시 채점해 재정렬하는 후처리. 벡터 유사도만으로 놓치는 정답을 상위로 끌어올린다.

RLock

Backend

Redisson이 제공하는 분산락 객체. lock()/unlock()으로 락을 잡고 풀며, 재진입과 워치독 자동 연장을 함께 지원한다.

RRF

RAG

Reciprocal Rank Fusion. 점수 스케일이 다른 여러 검색 결과를 절대 점수 대신 순위만으로 1/(k+rank) 합산해 병합하는 알고리즘(rank는 1부터). Hybrid Search 결과 결합에 표준적으로 쓰이며 보통 k=60.

RSS

Web

Really Simple Syndication. 사이트의 새 글 목록을 XML 기반 피드로 제공해, 독자가 피드 리더로 구독할 수 있게 하는 형식. RSS는 0.9x·1.0·2.0 등 여러 버전이 있고, IETF가 표준화한 Atom(RFC 4287)과 함께 대표적인 웹 피드 포맷으로 쓰인다.

Semantic Cache

RAG

과거 질문의 임베딩과 비교해 유사도가 임계값(예: 0.95) 이상이면 캐시된 답변을 재사용하는 캐시. 표현만 다른 반복 질문에 LLM 호출 0회로 응답한다. 임계값이 낮으면 의미가 다른 질문에 잘못 응답하는 false hit가, 높으면 캐시 미스가 늘어 임계값 튜닝이 관건이다.

Shadow Mode

Backend

섀도 모드. 새 시스템을 실제 트래픽에 결과는 반영하지 않고 병렬로만 실행해, 기존 시스템과 결과를 비교·검증하는 배포 기법.

SKIP LOCKED

Database

SELECT ... FOR UPDATE SKIP LOCKED. 다른 트랜잭션이 잠가 둔 행은 건너뛰고 잠기지 않은 행만 가져오는 잠금 옵션(MySQL 8.0+, PostgreSQL 등 지원). 같은 자원을 두고 대기(블로킹)하지 않아 작업을 여러 워커에 나눠 처리할 때 유리하다.

SLO

Observability

Service Level Objective. 서비스가 지키기로 정한 목표치(예: "p95 응답 시간 300ms 이내"). 목표를 재는 데 쓰는 실측 지표는 SLI(Service Level Indicator)라 부르고, 목표에서 허용되는 실패분은 에러 버짓이라 한다. 고객과 맺는 계약인 SLA와 달리 내부 기준이라 더 엄격하게 잡는 것이 보통이다.

Thundering Herd

Backend

천둥 떼 현상. 한 자원·이벤트를 대기하던 다수의 요청·프로세스가 동시에 깨어나 몰려들지만 실제로는 하나(소수)만 자원을 차지하고 나머지는 헛되이 깨어났다 다시 대기하며 자원을 낭비해 백엔드가 폭주하는 문제. 캐시가 동시에 만료돼 여러 요청이 한꺼번에 원본을 다시 조회하는 캐시 스탬피드(cache stampede)가 대표 사례다.

Top-K

RAG

검색 시 유사도 상위 K개 청크만 반환하는 파라미터(topK). 보통 임계값(similarityThreshold) 미만 점수는 버린다. 1차로 넓게 검색한 뒤 Reranker로 좁히는 2단계 전략에 쓰인다.

TTL

Backend

Time To Live. 키가 자동으로 삭제되기까지 남은 시간(초)을 뜻한다. Redis에서 TTL이 지나면 값이 사라지고, TTL이 없는 키를 조회하면 -1, 키 자체가 없으면 -2가 반환된다.