AI 기반

더 스마트한
코딩 워크숍의 시작.

Open Codelabs는 현대적인 오픈소스 코딩 워크숍 플랫폼입니다. Google Codelabs의 경험을 AI와 함께 더욱 강력하게 만들었습니다.

핵심 가치

왜 Open Codelabs인가?

AI 작성, 실시간 운영, 보안을 한 번에 갖춘 실습 플랫폼입니다.

AI-우선 작성

Gemini 기반 코드랩 생성·요약·리뷰로 워크숍 콘텐츠를 빠르게 반복합니다.

운영 콘트롤 타워

실시간 참석자 상태, 도움 요청, 제출물, 퀴즈를 한 화면에서 모니터링합니다.

보안과 데이터 주권

암호화된 API 키, 프라이빗 워크숍, 자체 호스팅 옵션으로 데이터 통제권을 유지하세요.

워크숍에 필요한 모든 것

가장 유연하고 사용하기 쉬운 코드랩 플랫폼을 목표로 바닥부터 설계되었습니다.

이원화된 시스템

퍼실리테이터와 참가자 모두에게 최적화된 경험을 제공합니다.

AI 콘텐츠 생성

Google Gemini AI를 사용하여 고품질의 코드랩을 즉시 생성할 수 있습니다.

안전하고 유연함

Rust와 SQLite를 통한 자체 호스팅 또는 Firebase 서버리스 배포가 가능합니다.

오픈 소스

커뮤니티 주도형 프로젝트로 모든 소스가 공개되어 있으며 자유롭게 커스텀 가능합니다.

퍼실리테이터를 위한 기능

  • AI를 통한 1분 만의 코드랩 초안 생성

  • 실시간 참가자 진행률 대시보드

  • 참가자 피드백 실시간 수집 및 분석

  • 공개/비공개 워크숍 관리 및 권한 설정

참가자를 위한 기능

  • 몰입감 있는 단계별 학습 인터페이스

  • 코드 실행 결과 및 실시간 도움말

  • 워크숍 완료 시 자동 수료증 발급

  • 개인별 학습 진행 상태 자동 저장

AI 생성 모드

필요한 깊이만큼 코드랩을 설계하세요

일반 모드로 빠르게 초안을 만들거나, 고급 모드로 플랜과 리뷰까지 포함한 완성도를 확보하세요.

일반 모드

코드와 첨부파일을 기준으로 단일 패스에서 초안을 생성합니다.

단일 패스빠른 생성즉시 초안

고급 모드

플랜 설계, 전문가 리뷰, 수정 반영까지 포함한 고품질 워크플로.

플랜전문가 리뷰수정 반영
고급 생성 워크플로

플랜 단계에서 최신 정보 키워드를 추출하고, 생성 단계에서 검색을 활용해 신뢰도를 높입니다.

플랜

목표, 환경, 검증 포인트와 검색어 정의

초안

플랜 기반으로 코드랩 구조를 생성

리뷰

퍼실리테이터 관점으로 품질 점검

수정

리뷰 반영 후 최종 결과 확정

원하는 방식으로 배포

로컬 Docker, 클라우드, 또는 Firebase 서버리스까지 팀 환경에 맞춰 선택하세요.

자체 호스팅

배포

Rust + SQLite 조합으로 가볍고 빠른 단일 바이너리. 사내 네트워크에 띄워도 됩니다.

DockerPodmanAxum

Firebase

배포

서버리스 배포로 인증, DB, 스토리지를 간단히 운영. 최소한의 인프라 관리.

HostingFirestoreStorage

5분 만에 워크숍 준비 끝

Docker 또는 Podman을 사용하여 복잡한 설정 없이 즉시 실행할 수 있습니다.

1

저장소 클론

$ git clone https://github.com/jaichangpark/open-codelabs.git
cd open-codelabs
2

컨테이너 실행

$ docker compose up --build
3

접속 및 관리

http://localhost:5173 에 접속하여 관리를 시작하세요.

Fast. Modern. Reliable.

안전하고 강력한 성능을 위해 백엔드는 Rust로 작성되었으며, 프론트엔드는 SvelteKit을 사용하여 직관적이고 반응성 높은 사용자 경험을 제공합니다.

Rust
Axum & SQLite
Svelte
Runes & Tailwind
// lib.rs
pub async fn start_server() {
    // Blazing fast backend
    let app = Router::new()
        .route("/api/codelabs", get(list_codelabs))
        .layer(CorsLayer::permissive());

    axum::Server::bind(&"0.0.0.0:8080".parse().unwrap())
        .serve(app.into_make_service())
        .await
        .unwrap();
}
Open Codelabs

© 2025 Open Codelabs Project. Released under MIT License.