본문 바로가기

전체 글

(108)
GenAI + Auth0로 배우는 인증과 인가: 주식 투자 자동화 사례로 이해하기 🚀 개요Multi Agent 기반 서비스에서 사용자 인증(Authentication)과 권한 부여(Authorization)는 필수적인 요소입니다.특히, 외부 API를 호출하거나, 개인 데이터를 보호해야 하는 서비스에서는 OAuth2.0, JWT, RBAC 같은 개념이 중요합니다.이 글에서는 Auth0를 활용한 인증·인가 시스템을 쉽게 이해할 수 있도록, 주식 투자 자동화 예제를 통해 설명합니다.주가 조회, RAG 기반 데이터 검색, 비동기 승인 시스템을 구현하며 GenAI와 Auth0가 어떻게 활용되는지 알아보겠습니다. auth0 에서는 주식에 대한 6가지 샘플을 제공하고 이중 2가지 예제로 인증·인가 시스템을 어떻게 이해하고 있는지 알아보겠습니다. 1️⃣ API를 사용자 대신 호출하기 (Call A..
OAuth 2.0과 OpenID Connect(OIDC)의 차이점과 활용법 OAuth 2.0은 사용자의 자격 증명을 직접 노출하지 않고, 타사 서비스가 사용자 데이터를 안전하게 액세스할 수 있도록 설계된 인증 및 권한 위임 프로토콜입니다.이를 통해 사용자는 내 비밀번호를 직접 제공하지 않고도 Google, Facebook, GitHub 등의 계정을사용하여 다른 서비스에 로그인하거나, 특정 API 권한을 위임할 수 있습니다.AI에서 Agent들의 인증 인가를 위해서 개념을 다시한번 정리 한다. 🔹 1. OAuth 2.0의 주요 개념 ✅ 1) 클라이언트(Client)OAuth를 사용하는 애플리케이션 (예: 쿠팡이 네이버 로그인 기능을 사용할 때, 쿠팡이 클라이언트)사용자 데이터를 직접 저장하지 않으며, 액세스 토큰을 통해 권한을 부여받음✅ 2) 리소스 소유자(Resource Ow..
LangGraph 기반 AI 채팅의 상태 관리: Branching과 Custom Reducer의 역할 LangGraph를 활용하여 AI 챗봇이나 대화형 애플리케이션을 만들 때, 상태(State) 관리는 가장 중요한 요소 중 하나입니다.✅ 어떻게 이전 메시지를 기억하고, 새 메시지를 추가할 것인가?✅ 병렬 실행 중 충돌을 방지하고 안정적인 대화 흐름을 유지하는 방법은?LangGraph는 기본적으로 상태를 관리하는 여러 가지 방법을 제공합니다.하지만, 기본 동작(Default Overwriting State)을 이해하지 않으면, 메시지가 예상치 못하게 사라지거나 덮어씌워질 수도 있습니다.이 글에서는 LangGraph에서 상태가 어떻게 업데이트되는지를 살펴보고,Branching(분기), Custom Reducer, 그리고 add_messages Reducer를 활용해 AI 챗봇의 대화 상태를 안전하게 유지하는..
LangGraph에서 Router, Agent, ReAct, State, 그리고 Memory 이해하기 💡 LangGraph를 활용하여 LLM을 보다 스마트하게 만들기 위한 핵심 개념들 – Router, Agent, ReAct, State, 그리고 Memory – 에 대해 알아보겠습니다.1️⃣ Router: LLM이 어떻게 경로를 결정하는가?LangGraph에서 Router(라우터)는 입력된 메시지를 보고 적절한 처리 방식을 결정하는 역할을 합니다.✅ Router의 실행 흐름Start → Step 1: 첫 번째 단계 실행Step 1 → LLM: LLM이 입력을 분석LLM이 판단:Step 2로 이동 → 자연어 응답 반환Step 3로 이동 → Tool 호출 후 결과 반환즉, Router는 LLM이 단순 응답을 할지, Tool을 활용할지 결정하는 중요한 요소입니다.✅ Tool을 사용하면 어떻게 동작이 달라질까..
LangChain에서 LLM을 더 강력하게 만드는 방법: Control Flow와 Agent 개념 정리 1. 단순한 LLM만으로는 한계가 있다!💡 "LLM(대형 언어 모델) 하나만으로는 실무에서 활용하기 어렵다!"✔ AI 모델 하나만 가지고는 실제 업무를 수행하기 어려움 ✔ 추가적인 기능이 필요함 (예: 검색, 계산, 문서 분석 등) ✔ 여러 단계의 작업(멀티스텝 워크플로우)을 자동화할 필요가 있음📌 즉, 단순한 AI 모델로는 복잡한 작업을 수행하기 어렵기 때문에, 더 강력한 구조가 필요하다! ✅2. Control Flow(제어 흐름)의 필요성💡 "많은 LLM 애플리케이션이 Control Flow를 사용한다!"✔ LLM이 단순한 응답을 넘어서, 여러 단계를 거쳐 작업을 수행할 수 있도록 Control Flow를 추가해야 함 ✔ LLM 호출 전/후에 다양한 작업(도구 호출, 검색, 데이터 조회 등)이 ..
자바로 배우는 코틀린 개념 - 일급 객체(First Class Object)와 고차함수 코틀린 카테고리에 웬 자바에서 일급 객체(First Class Object)란 일까 했지만코틀린을 잘 이해하기 위해서 기존에 알고 있던 자바의 개념으로 정리해 본다.  글을 쓰게 된 계기는 코틀린에서 아래 개념 때문이다.   코틀린에서는 함수가 1급객체의 성질을 가지는 것이 가능하다.1급 객체란 무엇일까나는 1급 객체가 뭔지 개념이 아예 없었고, 1급 객체를 이해하기 위해서 익명함수의 이해부터 필요하다 이제 하나하나 차근차근 써보겟다. 1급 객체를 달성하기 위한 조건 3가지이다 변수나 데이터에 할당할 수 있어야 합니다.객체의 인자로 넘길 수 있어야 합니다.객체의 리턴값으로 리턴할 수 있어야 합니다.자바에서는 1급 객체를 만족시키기 위해서 익명함수와 람다로 구현을 했다.  익명함수란먼저 익명 함수라는 것은..
HaProxy 의 역할과 graceful stop 과정 HAProxy는 여러 서버에 대해 요청을 확산시키는 TCP 및 HTTP 기반 애플리케이션들을 위해고가용성 로드밸런서와 리버스 프록시를 제공하는 자유-오픈 소스 소프트웨어 HAProxy의 역할- a TCP proxy : it can accept a TCP connection from a listening socket- an HTTP reverse-proxy (called a "gateway" in HTTP terminology)- a content-based switch요청의 모든 요소를 고려하여 요청이나 연결을 전달할 서버를 결정할 수 있습니다.따라서 동일한 포트를 통해 여러 프로토콜(예: HTTP, HTTPS, SSH)을 처리할 수 있습니다.- a server load balancerTCP 연결과 HT..
CORS - Cross-Origin Resource Sharing 란 무엇일까 Cross-Origin Resource Sharing 업무를 하다가 듣기는 엄청 듣고 뭔지도 대충 아는데 정확하게 설명할 정도로는 모르는것 같아서 이참에 정리한다. 한글로 이해 할려고 하지말고 Cross-Origin Resource Sharing 그대로 이해하자 cors 는 웹 애플리케이션이 다른 도메인 또는 포트에서 리소스에 접근할 수 있도록 허용하는것이다. 뭔지 모르겠으면 이게 왜 나왔는지 알아가면된다. 만약 어떤 개발자가 www.만화.com 사이트를 만들었다고 하자 저 사이트는 유명하고 트래픽도 많아서 저 사이트를 배끼기 위한 www.복제.com 을 만들었다. ‘복제’ 사이트는 원조 사이트의 url을 그대로 호출해서 만들었다. 이렇게 되면 원래 사이트에서 제공하는 요청이 다른 사이트에 노출된다. 예..