전체 글

AI

왜 LangChain인가? - OpenAI API 호출부터 LCEL 체인 이해까지

AI를 공부한다고 하면 보통 프롬프트 엔지니어링, RAG, 파인튜닝 같은 키워드부터 떠올리기 쉽다.하지만 그 전에 가장 기본적으로 해야할 것이 있다. AI에게 말을 걸 수 있어야 한다. 오늘은 복잡한 이론이나 구조 이야기는 잠시 미뤄두고,OpenAI API를 이용해 원하는 LLM 모델에 프롬프트를 보내고, 응답을 받아보려고 한다.그리고 간단히 LangChain에 대해 알아보고 실습하고자 한다.🔑 OpenAI API Key 준비API를 호출하려면 당연히 OpenAI API Key가 필요하다.Key 발급 과정은 이미 잘 정리된 글들이 많으니 이 글에서는 생략한다. 간략하게 말하자면 .env에 내 API key를 세팅하고아래와 같이 OpenAI API를 호출하기 위한 환경변수 설정을 완료한다.# API KE..

AI

왜 우리는 RAG를 배워야 할까? - ChatGPT의 한계와 나만의 LLM

대 격변의 AI 시대를 맞이하며, 나 또한 LLM을 활용한 기술을 공부하고자 한다. 기회가 생겨 패스트캠퍼스에서 테디님이 진행하는 LangChain · LangGraph 강의를 수강하게 되었고,이 강의를 통해 LangChain, LangGraph, 그리고 RAG(Retrieval-Augmented Generation) 기술을 제대로 익혀보려고 한다.공부를 시작하기에 앞서, 궁금한 것이 있다. 이미 ChatGPT나 Gemini 같은 훌륭한 도구가 있는데,우리는 왜 굳이 RAG를 배우고, 나만의 LLM 시스템을 구축해야 할까? 이 질문에 답하기 위해서는, 현재 우리가 ChatGPT를 사용하면서 겪는 한계부터 정리해볼 필요가 있다.ChatGPT가 가진 구조적 한계 현재의 ChatGPT는 전 세계 사용자를 대상..

데이터베이스

NoSQL은 대체 무엇이 빠르다는걸까

이전 포스팅에서 RDB와 NoSQL이 어떤 구조로 되어있고,어느 상황에 사용하는게 적합한지를 다뤘다. 2024.04.17 - [데이터베이스] - RDBMS vs NoSQL 세기의 맞대결. RDBMS vs NoSQL 세기의 맞대결.백엔드 개발자로서 시스템에 사용,활용되는 데이터를 어떤 형식으로 저장해야 효율적 일지 판단할 필요가 있다. 오늘은 많은 데이터베이스 중에서 "관계형"과 "비관계형" 데이터베이스의 차이jjunescoding.tistory.com 여기서 한 가지 궁금점이 생겼다.NoSQL은 무슨 이유로 대용량 데이터를 다루는데 뛰어난걸까? 좀 더 기술적인 측면으로 들어가서 알아보자!!   RDB보다 NoSQL이 속도가 빠른 이유  결론부터 말하면 NoSQL 데이테베이스는 LSM Tree가 적용되어 ..

데이터베이스

RDBMS vs NoSQL

백엔드 개발자로서시스템에 사용,활용되는 데이터를 어떤 형식으로 저장해야 효율적 일지 판단할 필요가 있다. 오늘은 많은 데이터베이스 중에서"관계형"과 "비관계형" 데이터베이스의 차이와 언제 사용하는 것이 좋을지 알아보자. RDBMS란?관계형 데이터베이스, 이름 그대로 데이터 간의 관계를 설정하여 관리할 수 있다.그리고 관계된 데이터에 대해 join 연산을 통해 정보를 조회할 수 있는 데이터베이스이다. RDBMS 핵심 특징 2가지1. 스키마가 명확하게 정해져있다.2. 하나의 데이터가 여러 테이블에 저장된다. 이런 특징을 가지고 있어서,데이터베이스를 사용하기에 앞서 테이블 구조와 데이터 타입을 미리 정의해야만 하고,정의된 스키마 형식에 반드시 맞춰 데이터를 추가 및 조회해야 한다! 어찌 보면스키마를 미리 확정..

운영체제

자바의 T 메모리 구조에 대해 알아보자.

개요자바 프로그램이 실행이 되면, OS는 JVM에게 일정 메모리 공간을 할당해주게 되고 JVM은 그 공간을 여러 영역으로 나누어서 관리를 하게 된다. 그 영역은 크게 다음 세 가지로 분류된다.1. Method(Static) 영역2. Stack 영역3. Heap 영역 메모리는 한정되어 있기 때문에, 할당된 메모리에 어떻게 할당하느냐에 따라서 프로그램 성능의 차이가 발생할 수 있다.우리가 개발을 하다보면 발생하는 StackOverflow나 OutofMemoreError와 같은 것이 이 메모리 영역에서 발생하는 에러라고 할 수 있다. 어떻게 하면 메모리를 효율적으로 사용할 수 있을 지, 메모리의 구조를 공부하며 알아보자.  변수의 종류 메모리에 올라가는 것들을 알기 전에, 변수의 종류에 대해 알고 시작하자.변..

데이터베이스

Index란 무엇인가.

Index란?인덱스는 추가적인 저장공간을 활용하여 테이블의 데이터 검색 성능을 높여주는 자료구조이다.이를 통해, 우리는 대규모 데이터를 가지고 있는 테이블에 대해 몇분이 걸리던 select 쿼리를 단 몇초만에 끝낼 수 있는 이점을 얻는다.이런 인덱스가 없다면 우리는 테이블의 처음부터 끝까지 Full Scan을 통해 아주 힘겹게 해당 데이터를 찾아야한다. 책의 저자가 미리 작성해놓은 색인 페이지를 통해우리는 "효율적으로 원하는 단어를 찾을 수 있게되는 것이다." select 뿐만아니라, 인덱스를 사용하게되면 delete, update 연산 성능도 함께 향상된다.그 이유는 삭제, 수정을 하게 위해서는 일단 조회 연산을 진행하기 때문이다. 하지만, 이런 인덱스는 장점만 가지고 있는 것은 아니다.검색에는 뛰어난..

jjunehee
쭌스코딩