Current Date:23 May, 2026

개발자 툴박스에 AI 추가하기: 유라클의 RAG 학습 커리큘럼①

안녕하세요, 유라클 CTO 이용재입니다. 유라클 기술 블로그를 통해서 여러분들께 인사드리게 되어 기쁩니다.

첫 번째 주제는 바로 “AI 개발“입니다. 이제 AI는 선택이 아닌 필수라는 건 모두가 공감하는 사실입니다. 이 글을 클릭하신 여러분은 이미 AI의 중요성을 잘 알고 계실 겁니다. 특히, AI/GenAI/LLM 외의 소프트웨어 개발 분야에서 활약 중인 개발자라면 더욱 주목해야 할 주제입니다.

저희 유라클은 AI 전문가는 물론, 모바일, PaaS, UI, 데이터 등 다양한 분야의 베테랑 개발자들이 함께 성장하는 회사입니다. 이들의 커리어 발전을 돕는 것은 제게, 그리고 유라클에게 매우 중요한 목표 중 하나입니다. 그 일환으로 유라클은 사내 RAG(Retrieval-Augmented Generation) 학습 커리큘럼을 운영하고 있습니다. 유라클 커리큘럼과 학습 도구들이 여러분께도 도움이 되길 바라며, 하나씩 소개해 드리겠습니다.

이번 1편에서는 AI 개발의 초석을 다질 수 있는 언어, 도구, LLM에 대한 학습 커리큘럼을 다루고, 2편에서는 본격적인 RAG 서비스 구성을 위한 심화 학습 과정을 소개할 예정입니다.

 

함께 시작해요! AI 개발 필수 도구

개발자에게 익숙한 도구부터 시작해서 친근하게 접근해 보겠습니다.

 

Python: AI/GenAI 개발, 여기서 시작합니다

Stack Overflow 2023 조사에 따르면 JavaScript가 여전히 가장 많이 사용되는 언어 1위지만, Python도 여전히 강력한 사용자층을 가지고 있습니다. 특히, ML/AI/GenAI 분야로 눈을 돌리면 Python은 사실상 표준 언어입니다. 이미 너무나도 유명한 AI 관련 라이브러리 생태계가 이를 증명하고 있습니다. 다른 언어에 능숙한 개발자라면 Python은 금방 익힐 수 있습니다.

AI/GenAI 개발자를 위한 Python 학습 로드맵
  • 기초 튼튼: 변수, 데이터 타입, 연산자, 조건문, 반복문, 함수, 클래스, 모듈, 패키지 (새로운 언어 배울 때 항상 기본은 튼튼하게!)
  • 데이터와 친해지기: NumPy, Pandas를 이용한 데이터 조작, 정제, 분석은 기본 중의 기본입니다.
  • REST API: API 서버와 데이터를 주고받는 REST API 방식에 익숙해져야 합니다. API 호출 및 응답 처리를 연습해 보세요.
  • 이미지와 텍스트, 코드 생성 경험해보기: Hugging Face, OpenAI API, Gemini API 등 GenAI 플랫폼을 탐색하고, 텍스트 생성, 이미지 생성, 코드 생성 등 다양한 GenAI 기능을 체험해보세요. Github Copilot으로 AI의 힘을 경험하는 것도 추천 드립니다.
Jupyter Notebook: 인터랙티브 개발 환경과 친해지기

Python application 개발부터 AI/LLM 개발까지, Jupyter Notebook은 빼놓을 수 없는 필수 도구입니다. 코드, 실행 결과, 시각화 자료, 설명을 한 곳에서 관리할 수 있는 강력한 툴입니다.

Jupyter Notebook 마스터하기
  • 설치 및 실행: 로컬 환경 또는 클라우드 환경(Google Colab, AWS SageMaker 등)에 Jupyter Notebook 설치 및 실행해봐요.
  • 기본 사용법: 셀 유형(Code, Markdown), 셀 실행, 커널 관리, 단축키를 익혀보세요.
  • Markdown 활용: 문서 작성, 코드 설명, 이미지 삽입 등 가독성 높은 Notebook을 만들어보세요.
  • 라이브러리 연동: NumPy, Pandas, Matplotlib, TensorFlow, PyTorch 등 주요 라이브러리와 연동은 필수!
Docker: 이식성과 확장성을 위한 필수 스킬

Docker는 이미 많은 개발자에게 익숙한 컨테이너 기술입니다. AI/LLM 개발에서도 모델 배포, 환경 관리, 협업 등에 유용하게 활용되니 꼭 배워두세요!

Docker 핵심만 쏙쏙!
  • 기본 개념: 이미지, 컨테이너, 레지스트리, Dockerfile 개념을 확실하게 잡고 가요.
  • 이미지 빌드: Dockerfile을 이용해 AI/LLM 개발 환경 이미지를 직접 생성해 봅니다.
  • 컨테이너 실행 및 관리: docker run, docker ps, docker stop, docker rm 등 명령어 활용은 자유자재로!
  • 데이터 볼륨: 호스트와 컨테이너 간 데이터 공유 방법을 익혀두세요.
  • 네트워킹: 컨테이너 간 통신, 외부 네트워크 연결도 어렵지 않아요.
  • Docker Compose: 여러 개의 컨테이너를 묶어서 관리하는 법도 알아두면 좋아요.
  • GPU 활용: NVIDIA Docker를 이용한 GPU 가속은 선택이 아닌 필수! Google Colab 등의 교육 플랫폼을 이용하면 더 쉽게, 더 적은 비용으로 실습할 수 있어요.

 

LLM(Large Language Model): 새로운 패러다임의 이해

최근 DeepSeek 등장은 LLM에 대한 관심을 폭발적으로 증가시켰습니다. 본의 아니게 모든 개발자들이 강제 학습(?)하고 있는 것 같습니다. 아시다시피 LLM은 단순한 기술을 넘어 개발 패러다임을 바꾸고 있습니다.

 

LLM, 너 도대체 뭐니?
  • 정의: LLM(Large Language Model)이란 대규모 텍스트 데이터로 사전 학습(Pre-training)된 거대 언어 모델을 의미합니다.
  • Transformer 아키텍처: LLM의 기반이 되는 Transformer 아키텍처의 핵심 개념 (Self-Attention, Encoder-Decoder 구조 등)을 가볍게 짚고 넘어가요.
  • 사전 학습(Pre-training)과 미세 조정(Fine-tuning): LLM이 어떻게 학습되고 특정 작업에 맞춰지는지 이해해 보아요.
  • 주요 LLM 모델: GPT, LLaMA, Gemini 등 주요 LLM 모델들의 특징 및 차이점을 알아두면 좋아요. Hugging Face에 계속 올라오는 최신 모델들을 살펴보시는 것도 추천합니다.
  • Prompt Engineering: 효과적인 프롬프트 작성을 통해 LLM을 능숙하게 다뤄보아요. ChatGPT는 다 써보셨지요?
LLM, 어디에 쓸 수 있을까?
  • Text Generation: 텍스트 생성, 요약, 번역, 질의응답, 코드 생성 등 다양한 작업이 가능해요.
  • Classification: 감성 분석, 주제 분류, 스팸 필터링 등에도 활용할 수 있어요.
  • Retrieval: 정보 검색, 문서 유사도 비교 등 검색도 예전보다는 더 쉽게 할 수 있어요.
  • Translation: 아마도, 가장 많이 사용하고 있는 영역이 아닐까요?
  • RAG(Retrieval-Augmented Generation): 외부 지식을 결합하여 LLM의 답변 정확도와 신뢰도를 향상시키는 기술, 이게 바로 우리가 집중할 기술입니다.
LLM 개발, 어떻게 시작할까?

LLM 개발을 할 때, 당연히 LLM을 직접 사용하는 경우는 드뭅니다. Cloud 서비스나 AI Framework 등을 사용하게 됩니다.

  • OpenAI, Google, Azure 등에서 제공하는 Cloud AI Platform을 활용하거나,
  • 자체 구축형 또는 sLLM의 경우 Service Builder, AI Studio, LLM Ops 등의 프레임워크를 활용하는 것이 일반적입니다.

 

LangChain: LLM 애플리케이션 개발을 위한 최고의 파트너

LangChain은 LLM을 활용한 애플리케이션 개발을 위한 가장 유명한 프레임워크 중 하나입니다.

 

LangChain, 너도 한번 파헤쳐보자!
  • LLM 애플리케이션 개발 프레임워크: LangChain은 LLM을 기반으로 애플리케이션을 쉽게 개발할 수 있도록 도와주는 오픈 소스 프레임워크입니다.
  • 모듈화된 구성 요소: LLM, Prompt Templates, Memory, Chains, Agents, Tools 등 모듈화된 구성 요소를 제공하여 유연하고 확장 가능한 애플리케이션 구축을 지원합니다.
  • 다양한 LLM과의 연동: OpenAI, Hugging Face, Gemini 등 다양한 LLM 제공자와 쉽게 연동할 수 있습니다.
  • RAG 구현 지원: LangChain은 RAG 구현을 위한 유용한 기능들을 제공하여, 외부 지식과 LLM을 결합한 강력한 애플리케이션을 만들 수 있도록 돕습니다.
LangChain, 이렇게 배워보자

LangChain은 LLM 애플리케이션 개발의 강력한 도구이지만, 처음 접하는 개발자에게는 다소 생소하고 복잡하게 느껴질 수 있습니다. 아래 단계별 학습 가이드를 따라 차근차근 LangChain을 정복해 보세요.

LangChain 기본 다지기: 핵심 컴포넌트 이해
  • 공식 문서 정독: LangChain의 기본 개념과 사용법을 익히는 데 공식 문서(https://python.langchain.com/docs/tutorials/) 가 기본입니다. Tutorial, Getting Started 가이드를 따라가며 LangChain의 철학과 구조를 이해해 보세요.
  • 핵심 컴포넌트 파악:
    • Models: 다양한 LLM(OpenAI, Hugging Face, Gemini 등)과 어떻게 연동되는지, 각각의 장단점은 무엇인지 비교 분석해 보세요.
    • Prompts: 프롬프트 템플릿을 구성하고, 효과적으로 프롬프트를 작성하는 연습을 해보세요. Few-shot prompting, Chain-of-Thought prompting 등 다양한 프롬프팅 기법을 익히는 것이 중요합니다.
    • Indexes: Vector Store를 활용하여 문서를 임베딩하고, 효율적으로 검색하는 방법을 이해해야 합니다.
    • Memory: 대화 기록을 저장하고 관리하는 방법을 익히고, 다양한 Memory 유형의 차이점을 알아보세요.
    • Chains: 여러 컴포넌트를 연결하여 복잡한 워크플로우를 구성하는 핵심 기능입니다. LLMChain, SequentialChain 등 다양한 Chain 유형을 실습해 보세요.
    • Agents: LLM이 스스로 판단하고 행동하도록 설계하는 고급 기능입니다. ReAct, Self-Ask with Search 등 에이전트 유형별 작동 방식을 이해하고, 어떤 상황에 어떤 에이전트를 사용하는 것이 효과적인지 판단하는 연습이 필요합니다.
  • 간단한 예제 실습: 공식 문서의 튜토리얼과 예제 코드를 직접 실행해 보면서 각 컴포넌트의 역할을 이해하고, LangChain의 작동 방식을 익히세요.
RAG 구현 마스터하기: LangChain의 꽃
  • RAG 개념 이해: RAG(Retrieval-Augmented Generation)가 무엇인지, 왜 필요한지, 어떤 장점이 있는지 명확히 이해하는 것이 중요합니다.
  • Retrieval 단계:
    • 다양한 Vector Store(FAISS, Chroma DB 등)를 사용하여 문서를 임베딩하고, 쿼리와의 유사도를 기반으로 관련 문서를 검색하는 방법을 실습해 보세요.
    • Retriever를 활용하여 검색 과정을 추상화하고, 효율적으로 문서를 가져오는 방법을 익히세요.
  • Generation 단계:
    • 검색된 문서를 LLM에 입력으로 제공하여 답변을 생성하는 과정을 이해하세요.
    • 프롬프트 템플릿을 사용하여 검색된 문서를 LLM에 효과적으로 전달하는 방법을 연습하세요.
  • RAG 파이프라인 구축: 체인을 사용하여 RAG 파이프라인을 구축하고, 전체적인 흐름을 이해해 보세요.
  • 다양한 RAG 예제 실습: LangChain 공식 문서와 GitHub 저장소에 있는 다양한 RAG 예제 코드를 분석하고 실행해 보면서 RAG 구현에 대한 이해도를 높이세요.
고급 기능 탐구: LangChain 활용도 높이기
  • Callback: LangChain의 Callback 기능을 활용하여 애플리케이션의 상태를 모니터링하고, 디버깅하고, 로깅하는 방법을 익혀보세요.
  • Streaming: LLM의 응답을 실시간으로 처리하는 Streaming 기능을 사용하여 사용자 경험을 향상시키는 방법을 알아보세요.
  • Async API: 비동기 API를 활용하여 애플리케이션의 성능을 최적화하는 방법을 익히세요.
  • 커뮤니티 참여: LangChain 커뮤니티에 참여하여 다른 개발자들과 소통하고, 질문하고, 최신 정보를 얻으세요.
토이 프로젝트: 나만의 LLM 애플리케이션 만들기
  • 아이디어 구체화: LangChain을 활용하여 어떤 문제를 해결하고 싶은지, 어떤 애플리케이션을 만들고 싶은지 아이디어를 구체화해 보세요.
  • 프로젝트 설계: 애플리케이션의 아키텍처를 설계하고, 필요한 LangChain 컴포넌트를 선택하세요.
  • 개발 및 테스트: LangChain을 사용하여 애플리케이션을 개발하고, 꼼꼼하게 테스트하세요.
  • 배포 및 운영: 개발한 애플리케이션을 배포하고, 운영하면서 발생하는 문제들을 해결하고 개선해 나가세요.

 

마치며

기존에 익숙한 분야를 벗어나 새로 AI 개발을 시작하는 길은 흥미롭지만 막막할 수 있습니다. 이 블로그에서 소개해 드리는 유라클 학습 커리큘럼을 통해 새로운 영역에 도전하는 Senior 개발자들과, 시작점을 찾고 있는 Junior 개발자들에게 조금이나마 도움이 되었으면 합니다.

다음 2편에서는 RAG 서비스 구성을 위한 심화 학습 커리큘럼으로 찾아뵙겠습니다. 유라클의 기술 블로그, 앞으로도 많은 관심 부탁드립니다!

 

 

 

Share