목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/TIL · 하루

      [TIL] Day 97 — Python 가상환경(venv) + LangChain 개발 환경 세팅 + 호텔 챗봇 실행 (3/11)

      this.Serena 2026. 6. 8. 21:58

      [TIL] Day 97 — Python 가상환경(venv) + LangChain 개발 환경 세팅 + 호텔 챗봇 실행 (3/11)

      날짜: 2026-03-11
      기술 스택: Python uv LangChain FastAPI venv VS Code


      한 줄 요약: AI Data 과정 첫날 — Python 패키지 관리 핵심 개념(pip/import/venv) 정리 + uv로 빠르게 LangChain 환경 세팅 후 호텔 안내 챗봇 실행


      pip install vs import — 헷갈리는 두 개념 완벽 정리

      구분 py -m pip install import
      목적 패키지 다운로드 및 로컬 설치 설치된 패키지를 현재 코드에서 로드
      입력 위치 터미널 (CMD, PowerShell) 파이썬 코드 내부 최상단
      실행 주기 환경 당 최초 1회 스크립트 실행 시 매번
      # 터미널에서 설치 (1회)
      py -m pip install numpy pandas matplotlib seaborn
      # 코드 파일에서 호출 (매번)
      import numpy as np
      import pandas as pd
      import matplotlib.pyplot as plt
      import seaborn as sns

      Python 가상환경 (venv) — 프로젝트별 환경 분리

      왜 필요한가? 프로젝트 A는 pandas 1.0, 프로젝트 B는 pandas 2.0이 필요할 때
      글로벌 환경에 하나만 설치하면 버전 충돌 → 가상환경으로 프로젝트별 독립 관리

      핵심 워크플로우

      # 1. 생성 (프로젝트 시작 시 1회)
      py -m venv venv
      
      # 2. 활성화 (작업할 때마다)
      venv\Scripts\activate
      # → 터미널 앞에 (venv) 표시 확인
      
      # 3. 패키지 설치 (반드시 활성화 상태에서!)
      py -m pip install 라이브러리명
      
      # 4. 종료
      deactivate

      ⚠️ 주의: (venv) 표시 없이 pip install 하면 글로벌 환경에 설치됨


      uv — pip보다 10~100배 빠른 패키지 관리 도구

      Rust로 작성된 고성능 Python 패키지 관리자. pip, pip-tools, pyenv, poetry를 하나로 통합

      # Windows 설치
      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
      
      # 프로젝트 세팅
      uv venv .venv --python 3.13        # 가상환경 생성
      .venv\Scripts\activate             # 활성화
      uv pip install -r requirements.txt # 일괄 설치

      LangChain 개발 환경 구성 — requirements.txt 핵심 패키지

      langchain                # LangChain 메인
      langchain-core           # 코어 기능
      langchain-community      # 커뮤니티 확장
      langgraph                # 상태 기반 워크플로우
      langchain-openai         # OpenAI 모델 연동
      chromadb                 # 벡터 DB
      fastapi==0.115.0         # API 서버
      uvicorn[standard]==0.30.6 # ASGI 서버

      버전은 실습 환경 기준으로 고정. uv pip install -r requirements.txt 로 일괄 설치


      호텔 안내 챗봇 실행

      hotel_answer.txt 파일을 참조해 질문에 답변하는 간단한 RAG 챗봇

      # FastAPI 서버 실행
      uvicorn main:app --reload
      # → http://127.0.0.1:8000 에서 챗봇 확인

      더 알아볼 것

      • uv vs pip — 대규모 프로젝트에서 속도 차이 벤치마크
      • requirements.txt vs pyproject.toml — 현대적인 Python 프로젝트 구성
      • LangChain LCEL(LangChain Expression Language) 기본 문법
      • FastAPI @app.post 라우터와 Pydantic 모델 연동
      • ChromaDB에 문서를 임베딩하고 검색하는 RAG 기본 흐름