본문 바로가기
Project: algo-analyzer

백준 문제 분석기

by odaebum 2025. 1. 14.
728x90

프로젝트 개요

Baekjoon 문제를 분석하고 사용자에게 유용한 정보를 제공하는 웹사이트를 개발하는 프로젝트입니다. 본 프로젝트는 MLOps 학습과 실습을 주요 목적으로 하며, GPT 기반의 LLM 분석 기능과 LangChain 등의 기술을 활용할 계획입니다.


프로젝트 목표

  1. 사용자가 Baekjoon 문제 번호를 검색하면 문제 정보와 분석 결과를 제공하는 플랫폼 구축
  2. MLOps 학습과 실습을 위한 환경 구성
  3. 비용을 최소화하면서 클라우드 환경에서 서버 배포

영역별 설명

AI 영역

  • 핵심 구성 요소:
    • GPT 기반 LLM: 문제 분석 및 솔루션 제안
    • LangChain: GPT와 prompt.py를 활용하여 입력 처리를 자동화하고 워크플로 관리
  • 작업 흐름:
    1. 사용자가 입력한 Baekjoon 문제 번호를 백엔드로 전송
    2. 백엔드에서 문제 정보와 관련 자료를 검색
    3. GPT 모델이 prompt.py에서 정의한 프롬프트 템플릿을 사용하여 문제 해결에 필요한 분석 및 솔루션 제안
    4. LangChain을 통해 결과를 프론트엔드에 전달
  • prompt.py 역할: prompt.py는 Baekjoon 문제에 대한 상세한 분석을 위한 프롬프트 템플릿을 관리하며, 주요 기능은 다음과 같습니다:
    • 문제 요약 및 핵심 목표 도출
    • 시간 및 공간 복잡도 분석
    • 적절한 알고리즘 유형 제안
    • 단계별 알고리즘 설계
    • 적합한 자료 구조 선택
    • 엣지 케이스 식별 및 설명
graph LR
A[사용자 입력: 문제 번호] --> B[백엔드: 문제 데이터 검색]
B --> C[LLM 분석: GPT + prompt.py]
C --> D[프론트엔드 출력]

BACK 영역

  • 기술 스택: Java
  • 기능:
    1. 사용자 입력 처리 및 검증
    2. Baekjoon 문제 데이터 검색
    3. GPT 모델과 prompt.py를 활용한 LLM 분석 결과 생성
    4. 결과를 프론트엔드로 전달
  • MLOps 적용:
    • 모델 배포 및 관리 자동화
    • 버전 관리 및 모니터링

FRONT 영역

  • 기술 스택: React
  • 기능:
    1. 검색창: 사용자가 Baekjoon 문제 번호를 입력
    2. 좌측 패널: Baekjoon 문제 정보 표시
    3. 우측 패널: LLM 기반 문제 분석 결과 출력
  • 화면 구성:
    +--------------------------------------------------+
    | 검색창                                           |
    +--------------------------------------------------+
    |            |                                     |
    | 문제 정보  |      LLM 기반 문제 분석 결과        |
    |            |                                     |
    +--------------------------------------------------+
    
graph TB
A[검색창] --> B[좌측 패널: 문제 정보]
A --> C[우측 패널: LLM 분석 결과]

사이트 기능 흐름

  1. 사용자 입력: 사용자가 검색창에 Baekjoon 문제 번호 입력
  2. 문제 정보 표시: 좌측 패널에 Baekjoon 문제 정보 출력
  3. LLM 분석 결과 출력: 우측 패널에 GPT 기반 문제 분석 결과 출력
graph TD
A[사용자 입력: 문제 번호]
A --> B[백엔드 요청 처리]
B --> C[문제 데이터 검색]
C --> D[GPT 분석 + prompt.py]
D --> E[프론트엔드 결과 출력]

비용 최소화 방안

  1. 클라우드 환경:
    • 서버는 클라우드에 배포하여 유지 비용 절감
    • 최소한의 리소스를 사용하는 서버 구성
  2. MLOps 자동화:
    • 자동 배포 및 모니터링을 통해 운영 효율성 극대화
  3. 오픈소스 활용:
    • GPT 및 LangChain 외에도 오픈소스 도구 적극 활용

향후 계획

  1. 초기 버전 개발:
    • 기본적인 검색 및 분석 기능 구현
  2. 고도화:
    • 다양한 분석 기능 추가
    • 사용자 피드백을 반영하여 UI/UX 개선
  3. 모델 관리:
    • MLOps 파이프라인을 완성하여 모델 배포 및 관리 자동화
728x90