2026/01/06 3

RAG(검색 증강 생성) 입문 튜토리얼

RAG(Retrieval-Augmented Generation, “검색 증강 생성”)은 외부 지식의 검색을 통해 대형 언어 모델(LLM)의 응답 생성을 향상시키는 기술이다. LLM 단독으로는 훈련 데이터에 없는 최신 정보나 세부사항을 모를 수 있고, 존재하지 않는 답변을 그럴듯하게 만들어내는 환각(hallucination) 문제가 있다.RAG는 이러한 한계를 해결하기 위해 신뢰할 수 있는 데이터 소스의 정보를 미리 찾아서 LLM에 제공함으로써, 응답의 정확성과 신뢰성을 높이는 역할을 수행한다RAG 파이프라인 개념도문서를 사전 처리하여 임베딩(벡터 표현)을 생성하고 벡터 DB에 저장해 둔 뒤, 사용자 질문(query)에 따라 관련 임베딩을 검색한다. 검색된 문서 내용들을 LLM 프롬프트에 추가(증강)하여,..

Kotlin 문법 - Java와의 차이점

코틀린을 사용하면서, 자바랑 확연히 달라 적응하기 어려웠던 부분들을 기록해둔다.read-only vs mutable 관리read-only vs mutable: 객체 내부 프로퍼티 접근제어코틀린에서 val/var 차이와, 프로퍼티의 getter/setter를 정의하는 방식(특히 private set)을 정리한다.1. val vs varval: 재할당 불가(읽기 전용 참조). 프로퍼티 관점에서는 setter가 없음.var: 재할당 가능. 프로퍼티 관점에서는 getter + setter가 있음.val a = 10// a = 20 // 컴파일 에러var b = 10b = 20 // 가능2. 기본 getter/setter코틀린 프로퍼티는 기본적으로 접근자(accessor)가 자동 생성된다.class User { ..

동시성 vs 병렬성

오랜만에 용어를 다시보니 헷갈려서 정리한다.동시성 vs 병렬성핵심 정의동시성(Concurrency): 여러 작업이 같은 시간 구간에 진행되며, 실행이 교차(interleave) 될 수 있는 성질.단일 코어에서도 가능(스케줄링/컨텍스트 스위치).병렬성(Parallelism): 여러 작업이 같은 시각에 실제로 실행되는 성질.멀티코어/멀티프로세서에서 물리적 동시 실행.따라서, 병렬 실행은 “같은 시간 구간에 진행”을 만족하므로 동시성도 만족한다.하지만 동시성은 단일 코어에서도 성립하므로 병렬성이 없어도 동시성은 성립한다.이 관계를 집합으로 보면Concurrency ⊇ Parallelism 상호 배타적이 아니라, 병렬성은 동시성 안에 포함된다(포함 관계).예시로 구분동시성 O, 병렬성 X단일 코어에서 스레드 A..