Skip to content

windows10101713/VPR

Repository files navigation

VPR

============================================================================

프로그램명 : 가상 프로그램 실행 환경 (Virtual Program Runner, VPR)

프로그램 한 줄 소개 : 이 프로그램은 웹에서 쉽고 빠르게 코드를 작성하고 컴파일하는 교육용 도구

기능 정리 :

  • 핵심 기능 :
  1. 프로그래밍 도구 설치하지 않고 그저 웹사이트(Google, Naver ...등)에서 즉시 프로그래밍
  2. 아이디어가 부족하면 AI를 이용한 창작 및 아이디어 제공
  3. 에러 및 오류 코드나 메시지 확인과 수정 코드 제공
  4. 사용자가 선택한 언어 학습
  • 부가 기능 :
  1. 간단한 프로그램이나 예제 코드
  2. 내가 만든 코드 업로드와 공개 및 다른 사람 코드 보기

프로젝트 목표 :

  • 초보자도 쉽게 프로그래밍 접하기
  • 빠르게 프로그래밍 접하기
  • 간단하게 프로그래밍 접하기

============================================================================

사용자 페르소나 :

  • 코드를 배우러 오는 사람 및 잘 모르는 사람
  • 저장 공간 절약이 필요한 사람
  • 에러를 고쳐야하는데 모르는 사람
  • 아이디어가 필요한 사람

기대 효과 : 진입 장벽이 낮아 초보자도 쉽게 접근할 수 있고, 저러한 사용자들은 쉽고, 빠르게 프로그래밍을 접할 수 있다.

============================================================================

계기 : 프로그램을 만들면서 이게 제대로 도는지도 모르겠고 어디서 오류가 나는지 찾기도 힘들며 진짜 문제는 새 언어를 배우려면 그 언어를 설치해야한다는 번거로움이 있어 만들게됨

============================================================================

핵심 화면 : 홈 화면은 버튼과 사이드 메뉴바 모양으로 만들기 에디터 창은 Windows 메모장처럼 친화적인 이미지로 만들되 상단 메뉴바 정렬은 사용자 친화적으로 만들기 언어도 한국어 및 영어 정도만 만들기

============================================================================

설계

  1. 언어는 웹사이트에 맞는 HTML및 JS, CSS나 이 외의 언어를 사용한다.
  2. 데이터 저장소는 SQL같은 계열의 언어를 사용한다.
  3. 로컬 AI보다는 무료 클라우드 AI를 사용한다.
  4. 언어는 모든 언어를 전부 구현하기보다는 C, C++, C#, Python, HTML, SQL, Java, JS, Arduino 등등의 언어를 주로 사용하며 텍스트 형식이여야 함.

보안

  1. SQL 인젝션 방지를 위해 if문으로 예외처리
  2. DDoS 방지를 위해 한 IP 접속량 제한 및 딜레이
  3. eval() 같은 특정 위험 함수는 사용 제한
  4. 계정 보호를 위해 이중 보안 방식 사용
  5. 만약 코드에서 특정 웹 사이트를 크롤링 할 경우를 대비하여 제한

============================================================================

사용자 예상 시나리오

  1. 프로그램 접속
  2. 만약 로그인을 하였는가?
    • a. 예 : 사용자 홈 화면
    • b. 아니오 : 로그인 화면
  3. 홈 화면에 들어왔다면 사이드 바를 구경한다.
  4. 무언가를 눌렀는가?
    • 에디터. Windows 메모장 같은 에디터가 나오며 코드를 작성할 수 있다.
    • AI. 아이디어를 얻거나 코드를 수정한다.
    • 에러창. 에러를 넣으면 예시 수정 코드나 해결 방안 제시
  5. 도움말 또는 스스로 익히며 프로그램을 사용한다.
  6. 종료시 저장 여부 묻기.

============================================================================

현재 프로토타입 구현 상태 (2026-06-13)

  1. 화면 구조

    • 홈, 에디터, AI 도우미, 에러 해결, 커뮤니티, 로그인, 프로필 페이지로 분리
    • 모든 페이지에서 공통 사이드 메뉴와 한국어/영어 전환 지원
  2. 언어/실행

    • 지원 언어 확장: JavaScript, TypeScript, Python, C, C++, C#, Java, Go, Rust, PHP, Ruby, Kotlin, Swift, HTML, Arduino, ESP-IDF
    • HTML: 미리보기 프레임 실시간 렌더링
    • Arduino/ESP-IDF: 기본 회로도 템플릿(핀 연결 예시) 지원
    • 일반 언어: 클라우드 런타임 연동 구조 완성(실행/컴파일 출력 파이프라인 포함)
    • 주의: 기존 공개 Piston API(emkc.org)는 2026년 기준 화이트리스트 전용으로 변경되어 기본 설정에서는 401이 발생할 수 있음
    • 해결: localStorage 키 vpr-runtime-config로 자체/승인된 런타임 엔드포인트 및 인증 헤더를 지정해 실제 실행 가능
  3. 계정/공개/프로필

    • 로그인/회원가입(로컬 MVP), 프로필 편집, 로그아웃
    • 저장된 프로젝트를 커뮤니티에 공개하고 공개 피드에서 다시 에디터로 불러오기
  4. 보안 관련 현재 반영

    • 입력값 정규화(sanitize), 프로젝트명 제한
    • 실행 요청 간단 rate-limit(연속 호출 제한)
    • 비밀번호 단방향 해시 저장(SHA-256)
  5. 운영 단계에서 추가해야 할 항목

    • 진짜 다중 사용자 공유를 위한 서버 DB/인증(JWT/OAuth2), RBAC
    • 런타임 운영: 자체 Piston 인스턴스 또는 승인된 실행 API 운영 및 키 관리
    • 업로드 코드 정적/동적 분석(sandbox, seccomp, 네트워크 격리)
    • 감사 로그, 이상 징후 탐지, DDoS 방어(WAF/rate-limit 분산)
    • Arduino/ESP-IDF 실제 빌드/플래시 및 고급 회로 시뮬레이터 연동

==============================================================================

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors