728x90
프로젝트 개요
Baekjoon 문제를 분석하고 사용자에게 유용한 정보를 제공하는 웹사이트를 개발하는 프로젝트입니다. 본 프로젝트는 MLOps 학습과 실습을 주요 목적으로 하며, GPT 기반의 LLM 분석 기능과 LangChain 등의 기술을 활용할 계획입니다.
프로젝트 목표
- 사용자가 Baekjoon 문제 번호를 검색하면 문제 정보와 분석 결과를 제공하는 플랫폼 구축
- MLOps 학습과 실습을 위한 환경 구성
- 비용을 최소화하면서 클라우드 환경에서 서버 배포
영역별 설명
AI 영역
- 핵심 구성 요소:
- GPT 기반 LLM: 문제 분석 및 솔루션 제안
- LangChain: GPT와 prompt.py를 활용하여 입력 처리를 자동화하고 워크플로 관리
- 작업 흐름:
- 사용자가 입력한 Baekjoon 문제 번호를 백엔드로 전송
- 백엔드에서 문제 정보와 관련 자료를 검색
- GPT 모델이 prompt.py에서 정의한 프롬프트 템플릿을 사용하여 문제 해결에 필요한 분석 및 솔루션 제안
- LangChain을 통해 결과를 프론트엔드에 전달
- prompt.py 역할: prompt.py는 Baekjoon 문제에 대한 상세한 분석을 위한 프롬프트 템플릿을 관리하며, 주요 기능은 다음과 같습니다:
- 문제 요약 및 핵심 목표 도출
- 시간 및 공간 복잡도 분석
- 적절한 알고리즘 유형 제안
- 단계별 알고리즘 설계
- 적합한 자료 구조 선택
- 엣지 케이스 식별 및 설명
graph LR
A[사용자 입력: 문제 번호] --> B[백엔드: 문제 데이터 검색]
B --> C[LLM 분석: GPT + prompt.py]
C --> D[프론트엔드 출력]
BACK 영역
- 기술 스택: Java
- 기능:
- 사용자 입력 처리 및 검증
- Baekjoon 문제 데이터 검색
- GPT 모델과 prompt.py를 활용한 LLM 분석 결과 생성
- 결과를 프론트엔드로 전달
- MLOps 적용:
- 모델 배포 및 관리 자동화
- 버전 관리 및 모니터링
FRONT 영역
- 기술 스택: React
- 기능:
- 검색창: 사용자가 Baekjoon 문제 번호를 입력
- 좌측 패널: Baekjoon 문제 정보 표시
- 우측 패널: LLM 기반 문제 분석 결과 출력
- 화면 구성:
+--------------------------------------------------+ | 검색창 | +--------------------------------------------------+ | | | | 문제 정보 | LLM 기반 문제 분석 결과 | | | | +--------------------------------------------------+
graph TB
A[검색창] --> B[좌측 패널: 문제 정보]
A --> C[우측 패널: LLM 분석 결과]
사이트 기능 흐름
- 사용자 입력: 사용자가 검색창에 Baekjoon 문제 번호 입력
- 문제 정보 표시: 좌측 패널에 Baekjoon 문제 정보 출력
- LLM 분석 결과 출력: 우측 패널에 GPT 기반 문제 분석 결과 출력
graph TD
A[사용자 입력: 문제 번호]
A --> B[백엔드 요청 처리]
B --> C[문제 데이터 검색]
C --> D[GPT 분석 + prompt.py]
D --> E[프론트엔드 결과 출력]
비용 최소화 방안
- 클라우드 환경:
- 서버는 클라우드에 배포하여 유지 비용 절감
- 최소한의 리소스를 사용하는 서버 구성
- MLOps 자동화:
- 자동 배포 및 모니터링을 통해 운영 효율성 극대화
- 오픈소스 활용:
- GPT 및 LangChain 외에도 오픈소스 도구 적극 활용
향후 계획
- 초기 버전 개발:
- 기본적인 검색 및 분석 기능 구현
- 고도화:
- 다양한 분석 기능 추가
- 사용자 피드백을 반영하여 UI/UX 개선
- 모델 관리:
- MLOps 파이프라인을 완성하여 모델 배포 및 관리 자동화
728x90