분류 전체보기 86

[SMTP] 메일기능 활용

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

카테고리 없음 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

[LLM] LangChain 의 유용한 기능들

StreamingLangChain의 Streaming 기능은 대형 언어 모델(LLM)이 생성하는 응답을 한 번에 모두 출력하는 것이 아니라, 부분적으로 실시간 출력하는 기능을 의미합니다.즉, 사용자가 기다리지 않고, 모델이 생성하는 즉시 응답을 스트리밍(흐름) 방식으로 받아볼 수 있도록 합니다from langchain_openai import ChatOpenAIchat = ChatOpenAI(model_name="gpt-4o-mini")#chat.invoke("고양이에 대한 시를 써줘.") # 평소에 완성된 대답을 받던 함수 (invoke)for chunk in chat.stream("고양이에 대한 시를 써줘.") : print(chunk.content, end="", flush=True) 더보기imp..

AI/LLM 2025.02.28

[LLM] RAG

RAG 란?RAG 은 정보 검색과 생성 모델을 결합하여, 더 정확하고 풍부한 답변을 제공하는 AI 모델의 접근 방식입니다.이 방식은 정보 검색(retrieval)과 텍스트 생성(generation)을 결합하여,사용자가 질문할 때 모델이 외부의 문서나 데이터베이스에서 필요한 정보를 검색하고,그 정보를 바탕으로 자연스러운 텍스트를 생성하는 방식입니다. RAG 는 주로 기존의 생성형 모델들이 가지는 정보의 제한성을 해결하기 위해 만들어졌습니다.GPT같은 모델은 훈련 데이터에 포함된 정보만을 기반으로 답변을 생성하기 때문에그 이후에 발생한 정보나 훈련에 포함되지 않은 특정 세부 정보에 대해서는 잘못된 답변을 할 수 있습니다.RAG 동작방식문서 로딩문서로는 JSON, 이미지, 텍스트, CSV, PDF 등 다양한 ..

AI/LLM 2025.02.27

[LLM] LangChain (prompttemplate 과 LCEL)

LangChain 이란?랭체인(LangChain)은 대형 언어 모델(LLM)을 더 효과적으로 활용할 수 있도록 도와주는 프레임워크 이다단순히 LLM에 프롬프트를 입력하고 답변을 받는 방식에서 벗어나, 데이터 검색, 메모리 저장, API 연동, 체인(Chain) 구성 등을 가능하게 해 준다.랭체인의 기본요소프롬프트LLM랭체인의 기본은 LLM 에 프롬프트를 넣어주는 것이다써보면서 익히는게 빠르니 바로해보자 먼저 라이브러리 설치와 환경설정부터 한다pip install langchain-openaiimport osimport getpassos.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")from langchain_openai import Chat..

AI/LLM 2025.02.19

[DL] 어텐션 (Attention)

어텐션(Attention)어텐션 메커니즘은 신경망이 입력 데이터의 특정 부분에 집중하도록 도와주는 기법이다.원래는 머신 번역에서 등장했지만, 지금은 자연어 처리(NLP)뿐만 아니라 컴퓨터 비전 등 다양한 분야에서 사용된다.어텐션의 주요 원리 쿼리(Query), 키(Key), 밸류(Value)입력 단어들은 각각 Key(K), Value(V), Query(Q)로 변환Query는 현재 출력 단어를 예측할 때 "어떤 입력을 참고해야 할까?"를 결정하는 요소Key는 입력 단어들의 특징을 나타내고, Query와 비교해서 연관성을 계산.Value는 최종적으로 참고할 입력 데이터어텐션 가중치 계산Query와 Key의 유사도를 계산해서 어텐션 가중치를 만든 후, Softmax를 적용해 확률 값으로 변환가중치가 높은 입력..

AI/DL 2025.02.16

[DL] 신경망 (ANN, DNN, RNN, CNN)

지난 두 포스팅 신경망의 기본원리 와 신경망의 동작원리 를  보고오면 이해가 더 빠릅니다. 우리는 신경망에대해 어느정도 이해도가 생겼다고 생각한다. 퍼셉트론이 어떤 한계점을 갖고있었으며 이를 해결하기위해 다층 퍼셉트론(MLP)이 탄생했고 이것이 딥러닝 시대의 시작 을 열었다. 우리가 기본으로 배운 신경망 (Neural Network)은 인간의 사고를 흉내내기 위함이라 뉴런을 퍼셉트론으로 모델링하면서생물학적 신경망을 모방한것이라 인공 신경망(Artificial Neural Network, ANN) 이라 부르며 거의 같다고 보면된다.ANN (Artificial Neural Network) -> 인공 신경망입력층(Input Layer)은닉층(Hidden Layer)출력층(Output Layer) 으로 구성 되..

AI/DL 2025.02.12

[DL] 신경망의 동작원리

저번 포스팅에 이어 신경망의 동작원리를 알아보고자 한다. 만약에 신경망에 관한 기본개념이 없으면 신경망의 기본원리 를 보고오는걸 추천한다.신경망( Neural Network ) 의 동작원리신경망의 학습 과정은 퍼셉트론과 비슷하지만, 더 발전된 방법을 사용해한다.순전파 (Forward Propagation)입력 데이터가 입력층 → 은닉층 → 출력층 방향으로 전달됨.각 뉴런에서 가중합을 구하고 활성화 함수를 적용해 다음 층으로 전달.손실 계산 (Loss Calculation)신경망의 예측값과 실제값을 비교해 오차(Loss)를 계산.예: 이진 분류는 Binary Cross Entropy, 회귀 문제는 MSE(Mean Squared Error) 사용.역전파 (Backpropagation) + 경사 하강법 (Gr..

AI/DL 2025.02.06

[DL] 신경망의 기본원리

저번 포스팅에서 아래와 같은 용어를 들어봤을 것이다. 합성곱 신경망(CNN, Convolutional Neural Network)순환 신경망(RNN, Recurrent Neural Network) 이러한 신경망들이 하나의 딥러닝 모델이 되는것인데 신경망은 어떻게 이루어져있나 살펴보자.신경망의 구조신경망은 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer) 으로 구성된다.입력층 (Input Layer)데이터가 처음 들어오는 층.각각의 뉴런(퍼셉트론)이 하나의 입력 데이터를 받음.예를 들어, 손글씨 숫자 인식(28×28 픽셀)이라면 784개의 입력 뉴런이 필요하다.은닉층 (Hidden Layer)입력층과 출력층 사이에서 복잡한 패턴을 학습하는 층.단순 퍼셉트론과..

AI/DL 2025.01.24