# CodeExam Lab — 작업 노트

이리듐192 · 웹 앱 구현

설명 대신 직접 풀어보세요. 원본 C# 연습 앱을 포트폴리오 안에 가져와 문제 선택, 코드 편집, 실행과 채점을 체험할 수 있습니다.

## 자료 기준

로컬 정적 웹 앱의 실제 실행본

## 구조와 결과

### 문제를 고르기

조건문·반복문·배열·입출력 등 20개 스테이지의 문제와 테스트를 제공합니다.

근거: js/problems.js / hints.js

### 코드를 작성하기

CodeMirror 편집기에서 코드를 쓰고 힌트를 확인합니다. 별도 개발 환경 설치 없이 반복 연습을 시작하는 구성입니다.

근거: index.html / js/app.js

### 가상 콘솔에서 실행하기

C# 구문을 변환하고 VirtualConsole의 ReadLine·WriteLine으로 입출력을 재현합니다. 일반 dotnet 실행과 지원 범위가 다릅니다.

근거: transpiler.js / runner.js / exec-worker.js

### 결과를 비교하기

테스트 케이스의 입력과 기대 출력을 비교하고 진행률을 로컬에 보관합니다. 체험본에서는 서비스 워커만 비활성화했습니다.

근거: grader.js / storage.js


## 실제 코드 발췌

runner.js · 1–15

```
class VirtualConsole {
    constructor(inputs) {
        this.inputs = inputs;
        this.inputIdx = 0;
        this.stdout = [];
    }
    ReadLine() {
        if (this.inputIdx < this.inputs.length) {
            return this.inputs[this.inputIdx++];
        }
        return '';
    }
    WriteLine(msg) {
        this.stdout.push(String(msg));
    }
```

원본 실행기의 입력 소비와 출력 누적 부분입니다. C# 콘솔의 인터페이스를 JavaScript 객체로 재현합니다. 클래스 앞부분을 발췌했습니다.

## 현재 단계

저장소 이름은 C-learning이지만 실제 콘텐츠는 C# 시험 대비 플랫폼입니다. 문제·실행기·변환기·저장소 코드에서 구성을 확인했습니다.

## 사용한 자료

- README.md
- js/problems.js / transpiler.js / runner.js
- storage.js / sw.js / tests

이 노트는 공개 소개용으로 정리한 요약본입니다. 비공개 원본·개인정보·인증 정보는 포함하지 않습니다.
