2025/03 6

[LangGraph] LangGraph 란 무엇인가?

LangGraph란?정의LangGraph는 LangChain 위에 구축된 "상태 기반 유한 상태 머신(혹은 그래프) 프레임워크"로, LLM(대형 언어 모델) 중심의 워크플로우를 쉽게 구성하고 실행할 수 있게 해주는 도구다.간단히 말하면:복잡한 LLM 기반 로직을 “노드(Node)”와 “엣지(Edge)”로 연결된 그래프 형태로 설계하고 실행할 수 있게 해준다.LangGraph 의 탄생 배경 RAG 라는 강력한 기능을 갖게 된 우리는 한 번쯤 다음의 갈등을 마주한다LLM 이 생성한 답변이 Hallucination이 아닐까?RAG 를 적용하여 받은 답변이 문서에는 없는 "사전지식" 으로 답변한 건 아닐까?"문서 검색에서 원하는 내용이 없을 경우" -> 인터넷 혹은 논문 에서 부족한 정보를 검색하여 지식을 보강..

AI/LLM 2025.03.19

[WebSocket] WebSocket 이란? (Django Channels)

WebSocket우리가 REST, RESTful 하면서 들어본 HTTP 프로토콜처럼 웹소켓도 프로토콜의 한 종류이다.웹소켓은 HTTP 프로토콜을 기반으로 하는 양방향 통신 프로토콜 인데일반적인 HTTP 프로토콜은 한번 요청이 오면 서버에서 처리하고 응답을 하면 일련의 과정이 끝난것이다.하지만 웹소켓은 한번의 핸드셰이크(초기요청) 이후 통신이 계속 유지되며더보기핸드셰이크란? Handshake (HTTP Upgrade)클라이언트와 서버 간의 연결을 초기화 하는 과정우리가 익히 알고있는 POST, GET 처럼 OPTION 이라는 메서드로 HTTP 요청을 보낸다이때 헤더에 Upgrade: websocket과 Connection: Upgrade를 포함하며 HTTP연결을 웹소켓으로 업그레이드 하겠다는 의도를 전한다..

Project/AInfo 2025.03.14

[Celery] Celery 란?

Celery 란?공식 문서에선 Asynchronous Task Queue 라고 정의함즉 백그라운드에서 실행할 작업을 큐에 넣고, 비동기적으로 실행하는 분산 시스템이다. 주요특징비동기 작업 처리: 시간이 오래 걸리는 작업을 백그라운드에서 실행분산 처리: 여러 워커(worker)를 실행해서 작업 부하를 분산확장성: 여러 개의 작업을 동시에 처리 가능재시도 기능: 실패한 작업을 자동으로 다시 실행 가능 웹서버에선 오래 걸리는 작업을 동기적으로 실행하면 사용자가 오래 기달려야 한다.그래서 Celery 를 사용해 오래걸리는 작업을 백그라운드에서 실행시켜 빠른 응답속도와 높은 성능을 유지하는 것이다더보기백그라운드란?사용자가 직접 상호작용하지 않는 상태에서 실행되는 작업을 의미반대로 사용자가 직접 상호작용하는 작업은..

Project/AInfo 2025.03.06

[SMTP] 메일기능 활용

메일기능을 활용한 본인인증 및 비밀번호 재설정 이제 SMTP 가 무엇인지는 알았으니 이걸 이용해 여러 기능들을 구현할 차례이다 우선 메일기능을 활용해 여러 사이트에 있는 이메일 본인인증 기능을 구현 할 생각이다처음써보는 기능이라 당황했을테지만 어느사이트를 이용하든 이메일관련한 본인인증은 자주 사용되며 그만큼 레퍼런스가 많아 편하게 구현할 수 있을 것이라 생각할 것이다. 또한 Django 는 설계철학에 맞게 이메일을통한 본인인증 혹은 비밀번호 재설정이 자주쓰이는 기능이란걸 알고있어미리 로직을 구성해둬서 사용할 수 있게 해준다.Django의 기본 이메일 인증 및 비밀번호 재설정 기능1. 비밀번호 재설정 기능 (Password Reset)Django의 django.contrib.auth 앱에서는 아래와 같은..

Project/AInfo 2025.03.03

[SMTP] SMTP 란?

SMTP 가 뭔데?SMTP : Simple Mail Transfer Protocol이메일을 송신할때 사용하는 인터넷 표준 프로토콜 이다.이메일을 보낼때 서버 간의 통신을 담당하며,메일 클라이언트 -> 메일 서버로 전송하는 역할을 한다.항상 모든 용어는 그 어원을 이해해야 한다.Simple 한 Mail 을 Transfer 할때 사용하는 ProtocolSMTP 라는 용어자체를 우리프로젝트에서 처음 접하면본인인증을 할때 필요한 특수한 기능인가?이메일 관련 기능들을 모아둔 라이브러리 인가?이런 생각을 할텐데 SMT "P"이것도 프로토콜의 한 종류이다메일이란 기술이 처음 발명되던 시대에 메일을 주고, 받고 하기위해선서로 통신이 필요하단건 다들 아실거고통신할 때 이런식으로 해라!라고 만들어둔 규칙이라는 것이다.  ..

Project/AInfo 2025.03.02

플로우차트

플로우차트(Flowchart)플로우차트는 프로그램의 흐름이나 프로세스를 시각적으로 표현하는 다이어그램입니다.쉽게 말해, 어떤 일을 수행하는 과정(알고리즘)을 그림으로 나타낸 것입니다.  어떠한 일을 처리하는 과정을 간단한 기호와 도형으로 도식화 하여 여러 분야에서 프로세스나 문제분석, 기획, 설계, 문서 작성 등에 폭넓게 활용중이다. 프로그래밍 분야에서도 기획단계에서 로직구성을 위해 문서화하여 남겨두는데그 로직을 명확히 하기위해 통일된 기호와 도형을 사용하여 표시한다. 기준 : 국제표준기구(ISO, International Standardization Organization) 에서 지정한 기호와 흐름선을 사용플로우 차트의 규칙약속된 표준 기호를 사용한다순서의 흐름위에서 아래로왼쪽에서 오른쪽그외 : 화살표..

개발지식 2025.03.01