분류 전체보기 (12) 썸네일형 리스트형 [RAG 기초] 코사인 유사도 — 질문과 문서의 관련성을 숫자로 비교하는 방법 들어가며지난 글에서는 Token, Embedding, Context Window를 살펴봤습니다.임베딩은 토큰이나 문서를 학습된 숫자 벡터로 표현하는 방법입니다. RAG는 질문과 문서를 검색용 임베딩 벡터로 바꾸고, 관련성이 높은 문서를 찾아 답변 생성에 활용합니다.그렇다면 벡터끼리 얼마나 비슷한지는 어떻게 판단할까요?이번 글에서는 대표적인 비교 방법인 코사인 유사도(Cosine Similarity)를 간단한 숫자 예제로 이해해 보겠습니다.이 글의 벡터는 계산 원리를 설명하기 위해 직접 지정한 값입니다. 실제 임베딩 모델의 출력이나 검색 성능 측정 결과가 아닙니다. Python 코드 역시 실행 전 예제이며, 출력은 예상 결과로 표시합니다.목차벡터의 크기와 방향코사인 유사도가 비교하는 것숫자로 계산해 보기P.. [LLM 기초] Token·Embedding·Context Window — Java 개발자가 이해하는 LLM의 입력 처리 들어가며지난 글에서는 FAQ를 검색해 LLM에 전달하는 RAG의 답변 생성 과정을 살펴봤습니다. 이번에는 그 안에서 반복해서 등장하는 Token, Embedding, Context Window를 정리합니다. Java 백엔드 개발자의 관점에서 문자열 처리와 자료구조에 연결해 설명하되, 비유와 실제 모델 동작은 구분합니다.이 글은 개념 학습을 위한 글입니다. 모델 설치, 추론 실행, 성능 측정은 수행하지 않았습니다. 코드와 수치는 설명용이며 실제 LLM의 토큰 ID나 임베딩 측정 결과가 아닙니다.목차Token: 모델이 처리하는 텍스트 단위Embedding: 숫자 벡터로 표현하는 방법Context Window: 한 번에 참고할 수 있는 범위세 개념이 RAG에서 만나는 과정설명용 코드와 예상 결과흔한 오해와 해.. [LLM·RAG 기초] FAQ 예제로 따라가는 RAG의 답변 생성 과정 들어가며LLM과 RAG의 정의만 읽으면 실제 서비스에서 어떤 일이 일어나는지 잘 보이지 않을 수 있습니다. 그래서 이 글에서는 가상의 반품 FAQ를 예로 들어 질문이 들어온 뒤 자료를 찾고 답변을 만드는 과정을 차례대로 살펴봅니다.이 글의 FAQ와 설정은 흐름을 설명하기 위해 만든 예시입니다. 실제 쇼핑몰 정책이나 구현·성능 측정 결과가 아닙니다. 다음 실습 글에서는 선택한 기술과 실행 결과를 따로 기록하겠습니다.먼저 LLM이 답하는 방식을 보자LLM(Large Language Model)은 입력된 문맥을 바탕으로 다음 토큰을 하나씩 생성해 답변을 이어갑니다. 토큰은 단어 전체일 수도 있고 단어 일부나 기호일 수도 있습니다. 모델은 입력 문장을 토큰 단위로 처리하고, 앞에 나온 내용에 이어질 토큰의 확률.. Buds 2 Pro PC 시 소리 안들림, 연결 끊김, 페어링 상태로 자동 변경됨. 1. 현재 알려진 방법으로는 bluetooth 페어링을 통한 방법 2. Microsoft 앱에서 Galaxy Buds 앱 설치 후 연결하는 방법 이 방법들로 연결 했을때, 소리가 안들리고, 연결이 계속 끊기고, 시간이 지나면 페어링 상태로 들어가는 에러가 발생하였습니다. 하여 이를 해결하고자 많은 시간을 허비하여, 해결 방법을 찾아내어 알려드립니다. 다이소에 파는 5000원 짜리 블루투스 동글 구매 후 PC에 연결해서 사용하시면, 해당 문제가 발생하지 않고 사용할 수 있습니다. (데탑 블루투스 버전도 5.0인데 왜 안되는건지는 모르겠습니다.) 감사합니다. [ASP.NET CORE] 쿠기 인증 로그인과 권한 1. 권한 관리 - ASP.NET CORE IDENTITY 라는 완성된 패키지 형태의 인증모듈이 지원되며, IDENTITY SERVER 4 라는 별도의 인증 서버 형태로도 지원된다. COOKIE 로그인 또한 지원된다. 2. 쿠키 로그인 구성 - ASP.NET CORE ID 인증에서 쿠키 인증을 지원해준다. 3. ROLE의 이용 - 역할 기준 권한 부여 - ROLE과 ROLE을 묶은 ROLEGROUP 등이 있으나 일단 ROLE 부터 - ATTRIBUTE를 이용한 URL의 접근 권한을 제어 - 내부의 User.IsInRole()을 이용한 권한 제어 4. 비밀번호의 저장 - 로그인 ID/비밀번호의 전송은 https 프로토콜을 이용함 - 비밀번호는 단방향 암호화를 통해 저장 - HMAC512 해시 암호화를 통해.. [ASP.NET CORE] Entity Framework Core의 Database-First Database-First 의 장점 Database 작업은 기존과 동일하게 수행 가능하다. Entity Data Modeling을 통해 손코딩이 거의 없다. Database-First의 단점 Database 작업의 이력 관리를 하지 못한다. Table 또는 Column 변경 시 C# 코드도 수동으로 변경해주어야한다. 테이블 이름 변경 및 매핑, 복합키 지정 등은 동일하나, 새프로젝트 생성 새 항목 "ADO.NET 엔터티 데이터 모델" 추가 데이터 베이스의 EF Designer 모델 선택 데이터 연결 선택 테이블 선택 및 생성된 개체 이름을 복수화 또는 단수화 선택 마침 의 과정을 통해 번거로움을 줄일 수 있다. [ASP.NET CORE] Code First DB 업데이트시 Unique 처리 modelBuilder.Entity().HasIndex(c => new { c.UserEMail }).IsUnique(unique: true); IsUnique(unique: true); 를 추가하여 Unique 값을 true 로 설정 시 중복되지 않아야 업데이트 되도록 수정 만약 DB에 추가된 시간, 수정된 시간 등을 넣고 싶으면. 해당 열의 속성에서 " 기본값 또는 바인딩" 에 "sysutcdatetime()"를 넣어주면 된다. [ASP.NET CORE] Entity Framework Core의 Code-First EF CORE 에서는 Code-First 방식과 Database-First 방식이 있다. Code-First 방식 Migration이 중요하다. 미리 작성된 코드로 데이터 베이스에 테이블과 컬럼을 생성한다. Database First 방식 Entity Data Modelling 코드를 손쉽게 작성할 수 있도록 도와준다. 데이터 조회에 있어서 기존의 Lambda 이외에 Fromsql 메소드가 제공된다. 데이터 추가, 업데이트, 삭제에서는 ExcuteSqlCommand 메서드가 제공된다. Code-First의 장점 Table과 Column을 Application에서 관리한다. Migration을 통한 이력 관리를 할 수 있다. 단점 사소한 작업을 Migration하는 것이 번거로움 운영 서버에 바로 적용이 .. 이전 1 2 다음