G-PBL/프로젝트

Devmon - 코딩테스트 해설지

연 동 2025. 1. 2. 09:43

설명중입니다.

프로젝트 소개

  • 프로젝트 이름 : Devmon (Developer + 구몬)
  • 프로젝트 개요 : 궁금한 문제의 url을 제공하면 코딩테스트 문제의 해설을 제공합니다.
  • 주요 대상 : 코딩테스트를 공부하는 학생

문제 정의

  • 기존 문제점 : 코딩테스트 공부 시, 문제는 많지만 해설이 적음. 한 문제를 풀지 못하면 풀 때까지 붙잡고 있어야 함.
  • 해결하고자 한 부분 : 학습지의 해설지처럼, 문제를 풀기 위해선 어떻게 접근해야 하는지에 대해 알려주고 싶었음.

기획 및 설계

  • 아이디어 과정

    함께 팀을 이룬 민종이형 외에도 국민대학교 인공지능 연구실 대학원생분들과의 대화를 통해 주제를 확정짓고 개발에 들어갔습니다.
  • 기술 스택
    • Front-End : React, Zustand
    • Back-End : Node.js, Express, OpenAI API
  • 설계 구조

구현 과정

  • 핵심 기능 설명
  1. 유저는 백준 문제의 링크를 제출합니다.
  2. 문제에 대한 해설을 제공합니다.

    해설 내용으로 이하 내용을 제공하고 있습니다.
    • 권장 알고리즘
    • 알고리즘 설명
    • 풀이 접근 방법
    • Pseudo Code
    • 실제 코드(Python)
    • 코드 설명
    • 시간 복잡도
    • 해당 알고리즘으로 풀 수 있는 다른 문제 5가지
  • 어려웠던 점과 해결 방법
    • 크롤링 문제
      • 배포 후 기능 실행시 크롤링이 막혀 배포에 실패하였다.
      • 이는 백준 측에서 크롤링을 막아두었기 때문인데, Selenium 등을 사용해서 풀어보려 했으나 익숙하지 않은 FastAPI 사용으로 코드가 너무 복잡해져 포기하였다.
      • 이후 익숙한 Node.js로 프레임워크를 바꿔 개발하였음
    • 성능 문제
      • 발표 시 gpt-4o 모델을 사용하였음
      • 다만 Solved.ac Gold 티어만 가도 정답률이 50%대로 낮아져 코드 구현 기능을 제거할까 고민함
      • 해결 : o1-preview를 사용하니 이전까지 풀지 못하는 문제를 풀어, 성능이 향상됨

성과 및 결과

배운 점

  • 기술적인 배움
    • 작업을 잘게 쪼개서 GPT에게 따로 요청을 하면 더욱 빠른 시간 내에 더 나은 결과를 만들 수 있음
    • 혼자서 프론트엔드, 백엔드를 모두 하는 작업에서는 Next.js를 사용하는 것이 더 효율적임
    • AI 수업에서 배웠던 프롬프트 엔지니어링, COT나 퓨 샷 프롬프팅을 사용하면 확실히 더 나은 결과가 출력됨
  • 비기술적인 배움
    • 꽤나 시간이 촉박한 프로젝트였음
    • 평소에 내가 관심 있는 주제들을 적어두는 것이 브레인스토밍 시 더 많은 아이디어를 내기 좋겠다는 생각이 듦
    • 초기부터 우리가 어떤 걸 만들것인지에 대한 구상을 확실하게 마쳐두는 것이 좋겠다고 느낌, 확실하지 않은 상태로 피드백을 받으니 휘둘리는 느낌을 받음

한계점과 개선 방향

  • GPT 과책임 문제
    • 문제 분석, 풀이과정, 코드 생성, JSON형태로 출력 등 모든 요구사항이 GPT 하나에 들어감. 프롬프트도 약 6000자정도로 매우 김
    • 때문에 결과 생성까지 약 30초정도 걸림, 매우 길다고 볼 수 있음
    • 성능 문제 및 과책임 문제 해결을 위해 작업별로 쪼개고 빠른 작업은 gpt-4o-mini에게 전달하는 등 쪼갠 작업대로 모델에게 따로 요청을 보내는 것이 좋다고 생각함, 이후 코드 수정 예정
  • 크롬 플러그인화
    • 꼭 웹이어야만 하는가?에 대한 답은 아니라고 생각함.
    • 문제를 받고/해설을 출력해주는 형태는 매우 간단하기에 크롬 플러그인화를 시키면 배포에 대한 문제를 해결할 수 있을 것 같다는 생각이 듦.

마무리

  • 소감
    • 짧은 시간동안 개발한 재미있는 프로젝트였음
    • 코딩테스트 공부를 해야 하는 나의 니즈에 맞는 프로젝트라고 생각함. 이후 실제로 사용하며 공부를 해봐야겠음.
    • 시간 내에 배포까지 되지 않아서 아쉽긴 하지만 구글 플러그인으로 개발할 수 있는 좋은 찬스라고 생각
    • 민종이형 정말 고생많았고 수고하셨습니당 :)
728x90

'G-PBL > 프로젝트' 카테고리의 다른 글

[G-PBL] 1st Hackerton 정리  (2) 2024.09.15