개요
이 개발일지는 이미 있는 프로그램을 따라 만드는 개발 방식을 조사하고, 그 방식을 계산기 프로그램에 적용한 과정을 기록한다.
조사 대상은 2026년 10월에 공개된 ArtCraft 이다. ArtCraft 는 AI 에이전트를 이용하여 기존 유료 그림 편집 프로그램과 같은 기능의 프로그램 13종을 만들었다.
적용 대상은 Windows 에 기본으로 들어 있는 계산기 프로그램(이하 기존 계산기)이다. 새 프로그램 이름은 GCalc 로 정하였다.
그림 1은 GCalc 의 기능 목록과 구현 여부를 나타낸다. 그림 2는 작업 순서와 날짜를 나타낸다.
-
- 1키보드 단축키
- 2Ctrl+C 복사
- 3Ctrl+V 붙여넣기
-
- 1기록 창
- 2항상 위 모드
- 3어두운 테마
-
- 1공학용
- 2프로그래머
- 3날짜 계산
- 4단위 변환기
-
- 1숫자·소수점 입력·16자리 제한
- 2사칙연산 즉시 계산
- 3같음 반복
- 4연산자 교체
- 5백분율
- 6제곱근·제곱·역수
- 7부호 바꾸기
- 8CE·C·한 글자 지우기
- 9오류 문구 세 가지
-
- 1MS·MR·M+·M−·MC
- 2메모리 목록 창
-
- 116자리 반올림·지수 표기
- 2자릿수 쉼표
- 3위쪽 식 줄
- 4긴 숫자 글자 줄임
- 5작은 수 지수 표기 경계
- ArtCraft 소개와 개발 원리 조사
- 같은 원리를 쓴 다른 실제 사례 조사
- 프로그래밍 언어 비교와 개발 전략 결정
- 기존 계산기에서 정답 자료 수집
- GCalc 구현과 정답 자료 자동 비교
- Windows 실행 파일 생성과 결과 정리
- ☑ ArtCraft 소개, 원리, 실제 사례 조사 (1절)
- ☑ 언어별 장단점 표 작성과 Rust 선택 (2절)
- ☑ 정답 자료 62건 수집 (3.2절)
- ☑ 수 계층·계산 규칙·명령 목록 구현 (3.3~3.4절)
- ☑ 정답 자료 62건 자동 비교, 62건 일치 (3.5절)
- ☑ 화면 구현과 Windows 실행 파일 생성 (3.6~3.7절)
- ☑ 기능 마인드맵과 개발 시퀀스 작성 (개요)
- ☐ PC 에서 GCalc.exe 실행 확인 (3.7절)
- ☐ 열린 항목 6건 정답 보강, 지뢰찾기 착수 (4절)
1. 정보수집
1.1 ArtCraft 소개
ArtCraft 는 그림과 영상을 만드는 무료 프로그램 묶음이다. 개발자는 Brandon Thomas 1명이며, 개발에는 Claude Opus 5.5 라는 AI 모델을 사용하였다고 밝혔다.
ArtCraft 의 이미지 편집 프로그램 PhotoCraft 는 기존 유료 그림 편집 프로그램과 메뉴, 단축키, 도구 배치가 거의 같다. 공개 후 약 4주 동안 GitHub 별 7만 개 이상을 받았다.
이 프로그램이 주목받은 이유는 개발 기간과 인원이다. 수십 년 동안 수백 명이 만든 프로그램과 비슷한 것을 1명이 AI 에이전트를 이용하여 수 주 만에 공개하였다.
자세한 정보
표 1 ArtCraft 에 관하여 확인된 사실
| 항목 | 내용 |
|---|---|
| 개발자 | Brandon Thomas. 전 Square 엔지니어, Rust 경력 약 10년 |
| AI 전용 코딩 시작 | 2026년 2월 |
| 저장소 공개 | 그림 편집 계열 7종 9월 30일~10월 1일, 문서 계열 3종 10월 7일 |
| 프로그램 수 | 13종 (PhotoCraft, VectorCraft, FilmCraft, LightCraft 등) |
| 동시에 일한 에이전트 | 약 8개. 사람은 결과 합치기와 배포를 맡음 |
| PhotoCraft 규모 | 모듈 24개, 명령 500개 이상, 자동 시험 1,700개 이상 |
| 배포 속도 | 첫 판 v0.1.0 이후 약 5일 만에 v0.5.0 |
| 사용 허가 | MIT 또는 Apache-2.0 (누구나 무료로 사용·수정 가능) |
자료 PhotoCraft 저장소 문서, Phoronix, OMG Ubuntu, flowtivity 기사 (참고문헌 1~4)
PhotoCraft 스스로 평가한 결과에서 기능의 종류는 원본의 약 76%를 갖추었다. 그러나 전문가가 실제 업무에 쓸 수 있는 정도는 약 45%로 평가되었다.
1.2 ArtCraft 의 개발 원리
ArtCraft 저장소의 규칙 문서와 시험 자료를 분석한 결과, 짧은 기간에 개발할 수 있었던 원리는 7가지로 정리되었다. 표 2는 원리마다 쉬운 설명과 ArtCraft 의 근거를 나타낸다.
7가지 가운데 가장 큰 차이를 만든 것은 정답지가 이미 있다는 점으로 판단된다. 새 프로그램을 설계할 때는 무엇이 맞는 동작인지부터 정해야 한다. 기존 프로그램을 따라 만들 때는 기존 프로그램의 결과가 곧 정답이다.
표 2 ArtCraft 개발 원리 7가지
| 원리 | 쉬운 설명 | ArtCraft 의 근거 |
|---|---|---|
| 1. AI 에이전트 능력 | AI 가 사람 없이 오랜 시간 코드를 쓰고 고친다 | 같은 모델로 18시간 이상 무인 작업한 사례 보고 |
| 2. 클린룸 | 원본의 속 코드는 보지 않고, 공개된 설명서와 겉으로 보이는 동작만 보고 만든다 | 공개된 파일 형식 설명서와 관찰한 동작만 사용 |
| 3. 정답지(오라클) 비교 | 원본 프로그램이 낸 결과를 정답지로 두고 새 프로그램 결과와 자동으로 맞춰 본다 | 원본으로 만든 정답 파일 256개와 점 단위 비교 |
| 4. 저장소 문서가 지시서 | AI 가 읽을 규칙과 남은 일 목록을 저장소 안 문서로 둔다 | AGENTS.md, 빠진 기능 목록, 자동 점수표 |
| 5. 구조 규칙 자동 검사 | 코드끼리 참조하는 방향을 정하고, 어기면 빌드가 실패하게 한다 | 7단 계층 규칙과 검사 명령 |
| 6. 병렬 분업 | 여러 AI 가 서로 다른 폴더를 맡아 동시에 일한다 | 에이전트 약 8개, 충돌 방지 규칙 8가지 |
| 7. 공개 부품 사용 | 창, 그래픽, 파일 읽기처럼 이미 있는 공개 부품은 가져다 쓴다 | 외부 공개 부품 1,650개 사용 |
자료 PhotoCraft AGENTS.md, 패리티 평가 문서, FreshPorts 패키지 정보 (참고문헌 1, 5, 6)
자세한 정보
정답지 비교의 구체적인 방법은 다음과 같다. 원본 그림 편집 프로그램을 자동 실행 스크립트로 조작하여 작은 그림 파일 256개를 만든다. 원본은 파일 안에 완성된 그림을 함께 저장한다.
PhotoCraft 는 같은 파일을 직접 그려 원본이 저장한 그림과 점 하나하나를 비교한다. 2026년 10월 10일 기준 256개 중 133개(52%)가 일치하였다.
하한선(FLOOR) 규칙도 함께 쓴다. 통과한 시험의 개수를 파일에 적어 두고, 새로 고친 코드가 그 수보다 적게 통과하면 빌드를 실패시킨다. 하한선은 올리기만 하고 내리지 않는다.
작업량은 에이전트 1시간 단위로 관리한다. 과거 작업 1,004건의 실제 기록에서 작업 1건은 시작부터 합치기까지 중앙값 3.4시간이 걸렸다.
한계도 기록되어 있다. 자동 시험 1,700개를 통과한 상태에서도 초기 사용자가 단축키 214건이 동작하지 않는 결함을 찾았다. 자동 시험은 정답지가 있는 부분만 확인한다.
1.3 다른 실제 사례
같은 원리를 먼저 쓴 사례로 Anthropic 의 C 컴파일러 실험(2026년 2월)이 있다. 컴파일러는 사람이 쓴 프로그램 글을 컴퓨터가 실행할 수 있는 형태로 바꾸는 프로그램이다.
이 실험에서는 AI 에이전트 16개가 약 2주 동안 C 컴파일러를 만들었다. 기존 공개 C 컴파일러를 정답지로 두고, 같은 파일을 두 컴파일러로 처리한 결과를 비교하여 오류 위치를 찾았다.
결과물은 Linux 운영체제의 핵심 부분을 빌드하고 실행하였다. 개발자는 시험이 통과했다고 일이 끝났다고 보기 어렵다는 점을 한계로 기록하였다.
자세한 정보
표 3 정답지 비교 방식을 쓴 사례
| 사례 | 시기 | 정답지 | 규모와 결과 |
|---|---|---|---|
| IBM 호환 BIOS (Phoenix) | 1984년 | 기존 BIOS 의 동작 설명서 | 분석 팀과 구현 팀을 나눈 클린룸 방식의 대표 사례 |
| Anthropic C 컴파일러 | 2026년 2월 | 기존 공개 C 컴파일러의 결과 | 에이전트 16개, 약 2주, 약 2만 달러, Rust 코드 약 10만 줄, 시험 약 99% 통과 |
| ArtCraft | 2026년 9~10월 | 원본 그림 편집 프로그램의 결과 그림 | 에이전트 약 8개, 프로그램 13종 |
자료 Wikipedia Clean-room design, Anthropic 기술 블로그, flowtivity (참고문헌 4, 7, 8)
클린룸은 미국 법원에서 저작권 방어 근거로 인정된 사례(NEC v. Intel, 1990)가 있다. 다만 AI 모델이 학습 과정에서 원본 코드를 보았을 가능성에 대한 판단은 아직 없다.
2. 전략수립
2.1 맨 처음부터 개발하는 방식과 정답지 비교 방식의 차이
그림 3은 정답지 비교 개발의 작업 순서를 나타낸다. 정답 수집 다음의 2~5단계는 사람이 매번 지시하지 않아도 에이전트가 반복할 수 있다.
기존 Genealogy 시리즈의 개발 방식과 비교하면, 기능 지도와 개발일지는 이미 갖추고 있었다. 정답지, 하한선, 자동 점수표가 없었으며 다음 작업은 매번 사람이 지시하였다.
표 4 두 개발 방식의 비교
| 항목 | 기존 Genealogy 방식 | 정답지 비교 방식 |
|---|---|---|
| 맞는 동작의 기준 | 사람이 화면을 보고 판단 | 원본 프로그램의 결과 |
| 확인 방법 | 사람의 실기 시험 | 정답 자료 자동 비교 |
| 퇴보 방지 | 없음 | 하한선 미달 시 빌드 실패 |
| 다음 작업 선택 | 사람이 지시 | 점수표와 열린 항목 목록에서 선택 |
| 진행 기록 | 개발일지 | 개발일지와 자동 점수표 |
2.2 시험 대상 선정
첫 시험 대상으로 기존 계산기와 지뢰찾기를 정하였다. 두 프로그램은 Windows 사용자 대부분이 알고 있어 결과를 바로 비교할 수 있다.
순서는 계산기를 먼저 하였다. 계산기는 같은 키를 누르면 언제나 같은 숫자가 나와 정답 자료를 만들기 쉽다. 지뢰찾기는 지뢰 위치가 매번 바뀌어 정답 자료를 만드는 방법이 더 복잡하다.
2.3 프로그래밍 언어 선택
언어는 6가지를 비교한 뒤 사용자가 직접 골랐다. 표 5는 비교 결과를 나타낸다.
표 5 언어별 비교
| 항목 | C | C++ | C# | Rust | Python | HTML·JS |
|---|---|---|---|---|---|---|
| 원본과 같은 모양 | 고전 모양만 | 가능 | 가능 | 직접 그림 | 비슷하게 | 직접 그림 |
| 실행 파일 크기 | 수십~수백 KB | 수백 KB~수 MB | 수 MB 이상 | 약 5~15 MB | 약 20~50 MB | 파일 1개 |
| 다른 운영체제 | X | X | X | O | O | O |
| 메모리 오류 위험 | 높음 | 높음 | 낮음 | 가장 낮음 | 낮음 | 낮음 |
| 실수가 드러나는 시점 | 실행 중 | 실행 중 | 컴파일 시 | 컴파일 시 | 실행 중 | 실행 중 |
| ArtCraft 구조 재현 | 낮음 | 중간 | 중간 | 높음 | 중간 | 낮음 |
컴파일 시 오류가 드러나면 프로그램을 실행하기 전에 에이전트가 실수를 고칠 수 있다.
선택한 언어는 Rust 이다. ArtCraft 와 같은 언어와 화면 부품(egui)을 써서 같은 구조를 재현할 수 있고, 메모리 오류를 컴파일 단계에서 막는다.
자세한 정보
egui 는 Rust 용 화면 부품이다. 매 순간 화면 전체를 코드가 새로 그리는 방식을 쓴다. 화면 상태가 단순한 자료로 남아 있어 자동 시험과 자동 조작이 쉽다.
반면 Windows 의 기본 단추 모양을 쓰지 않으므로, 원본과 같은 모양을 내려면 색과 크기를 직접 맞춰야 한다.
2.4 정답 자료 수집 방법 결정
정답 자료는 사용자 PC 의 기존 계산기를 자동으로 조작하여 모으기로 하였다. 키를 입력하고 화면 숫자를 복사(Ctrl+C)한 뒤, 복사된 글자를 읽어 정답으로 기록한다.
원본 계산기의 소스 코드는 공개되어 있으나 열어 보지 않았다. 클린룸 원칙에 따라 키 입력과 화면 결과만 사용하였다.
3. 예시. 계산기 복제 과정과 결과
3.1 작업 폴더와 권한 준비
먼저 PC 의 문서 폴더에 판 폴더 GCalc_v1.0.0.0 을 만들었다. 이어서 창만 뜨는 빈 실행 파일을 넣고, 기존 계산기와 메모장의 자동 조작 권한을 받았다.
3.2 정답 자료 수집
기존 계산기에 키 입력 62가지를 넣고 결과를 기록하였다. 그림 4는 62건을 분류별로 나눈 건수를 나타낸다.
사칙연산과 같음 키가 14건으로 가장 많았다. 오류 문구와 메모리는 각 4건이었다.
수집 중 두 가지 문제가 발생하였다. 표 6은 문제와 처리 방법을 나타낸다.
표 6 정답 자료 수집 중 발생한 문제와 처리
| 문제 | 원인 | 처리 |
|---|---|---|
| 20자리 숫자 입력 결과가 「입력이 잘못되었습니다.」로 나옴 | 자동 입력 도구가 약 16자 이상의 글자를 붙여넣기로 보냄. 붙여넣기는 키 입력과 다르게 처리됨 | 긴 입력을 8자 이하 조각으로 나누어 다시 입력. 결과 1234567890123456 |
| 계산기와 메모장을 오가며 결과를 모으는 방법이 막힘 | 창 전환 키(Alt+Tab)에는 별도 권한이 필요함 | 사례마다 입력 후 복사된 글자를 바로 읽는 방법으로 변경 |
정답 자료에서 기존 계산기의 규칙 8가지를 확인하였다. 표 7은 규칙과 근거 사례를 나타낸다.
표 7 정답 자료에서 확인한 기존 계산기의 규칙
| 규칙 | 입력 예 | 결과 |
|---|---|---|
| 곱셈을 먼저 하지 않고 누른 순서대로 계산 | 2+3×4= | 20 |
| 표시는 유효숫자 16자리, 끝자리 반올림 | 2÷3= | 0.6666666666666667 |
| 내부에는 16자리보다 정밀한 값을 보관 | 1÷3×3= | 1 |
| 1경(10의 16제곱) 이상은 지수 표기 | 9999999999999999+1= | 1.e+16 |
| 복사한 값에는 쉼표가 없음 | 1234567= | 1234567 |
| 더하기 뒤 % 는 왼쪽 값의 몇 % 인지 계산 | 200+10%= | 220 |
| 같음 키를 다시 누르면 마지막 계산 반복 | 5+== | 15 |
| 오류 문구는 3가지 | 1÷0=, 0÷0=, √(−4) | 0으로 나눌 수 없습니다 외 2종 |
3.3 수를 다루는 부분 구현
계산기의 숫자는 분수 형태로 보관하였다. 1÷3 을 0.333… 으로 바꾸지 않고 1/3 그대로 저장하면, 다시 3을 곱했을 때 정확히 1이 된다.
화면에 보일 때만 유효숫자 16자리로 반올림하였다. 제곱근은 분수로 정확히 나타낼 수 없으므로 소수점 아래 40자리까지 구하여 보관하였다.
3.4 계산 규칙과 명령 목록 구현
계산기의 상태(입력 중인 숫자, 기다리는 연산자, 메모리 값)를 다루는 부분을 따로 만들었다. 단추와 키 29개는 명령 목록 하나에 모았다.
그림 5는 GCalc 의 구조를 나타낸다. 화면 단추, 키보드, 창 없는 실행, 자동 시험이 모두 같은 명령 실행 함수를 부른다.
자세한 정보
세 계층은 아래층만 참조할 수 있다. 계층 검사 명령(xtask layers)이 Cargo.toml 의 참조 목록을 읽어 위반이 있으면 실패를 출력한다.
창 없는 실행은 GCalc –keys “1/7=” 처럼 실행한다. 결과 0.1428571428571429 가 출력된다. 에이전트는 화면을 띄우지 않고 이 방법으로 동작을 확인한다.
시험 코드 밖에서 프로그램을 강제 종료하는 명령(unwrap, expect, panic)과 메모리 안전 검사를 끄는 명령(unsafe)은 컴파일 단계에서 거부하도록 설정하였다.
3.5 정답 자료 자동 비교
정답 자료 62건을 GCalc 에 넣어 결과를 자동으로 비교하였다. 첫 실행에서 62건 모두 일치하였다.
이에 따라 하한선을 62로 정하였다. 앞으로 코드를 고쳐 일치 건수가 62보다 적어지면 시험이 실패한다.
무작위 시험도 함께 수행하였다. 명령 29개를 무작위 순서로 4만 회 눌러 프로그램이 멈추지 않는 것을 확인하였다.
자세한 정보
표 8 GCalc v1.0.0.0 시험 결과
| 시험 | 결과 |
|---|---|
| 정답 자료 비교 | 62건 중 62건 일치 |
| 하한선 | 62건 |
| 무작위 명령 시험 | 200회 × 200번 입력, 멈춤 0건 |
| 계층 검사 | 3계층 위반 0건 |
| 정적 검사(clippy) | 경고 0건 |
| 기능 목록 | 26항목 중 16항목 구현 |
3.6 화면 구현
화면은 기존 계산기 표준 모드의 배치를 따랐다. 위에 계산식 줄과 큰 숫자, 그 아래 메모리 단추 6개, 맨 아래 단추 24개를 6행 4열로 놓았다.
그림 6은 1234567+89= 를 입력한 GCalc 화면이다. 큰 숫자에는 세 자리마다 쉼표를 넣었고, 같음 단추는 파란색으로 표시하였다.

한글 글꼴 파일은 프로그램에 포함하지 않았다. 실행할 때 Windows 에 설치된 맑은 고딕과 Segoe UI 를 읽어 사용한다.
3.7 Windows 실행 파일 생성
실행 파일은 Linux 환경에서 Windows 용으로 빌드하였다. 결과 파일 GCalc.exe 의 크기는 약 4.4 MB 이다.
실행 파일, 소스 코드, 규칙 문서, 정답 자료, 화면 캡처를 PC 의 GCalc_v1.0.0.0 폴더에 저장하였다. PC 에서 GCalc.exe 를 직접 실행하여 확인하는 작업은 남아 있다.
4. 결과 및 남은 일
본 작업에서는 기존 프로그램을 따라 만드는 개발 방식을 조사하고, 그 방식을 계산기 프로그램 GCalc 에 적용하였다.
ArtCraft 조사에서는 개발 원리 7가지를 확인하였다. 그중 원본 프로그램의 결과를 정답지로 두고 자동 비교하는 방법이 개발 속도에 가장 크게 작용한 것으로 판단된다.
GCalc 에서는 기존 계산기에서 정답 자료 62건을 수집하였고, 첫 구현에서 62건이 모두 일치하였다. 기능 목록 26항목 중 16항목을 구현하였다.
정답 자료가 아직 없는 부분은 열린 항목 6건으로 기록하였다. 표 9는 열린 항목과 다음 작업을 나타낸다.
표 9 열린 항목
| 번호 | 내용 | 다음 작업 |
|---|---|---|
| G-01 | 0에 가까운 작은 수가 지수 표기로 바뀌는 경계 | 10의 −15제곱, −17제곱 입력 결과 수집 |
| G-02 | 소수 입력 16자리 제한에 앞자리 0 포함 여부 | 0. 뒤 17자리 입력 결과 수집 |
| G-03 | 위쪽 계산식 줄은 자동 비교 대상이 아님 | 화면 캡처 비교 방법 마련 |
| G-04 | 지수 표기 결과에 이어서 계산할 때의 표시 | 1.e+16 이후 계산 결과 수집 |
| G-05 | 화면 색과 크기는 눈으로만 비교 | 같은 입력 후 두 화면 캡처 비교 |
| G-06 | 오류 상태의 계산식 줄. 원본 「1 ÷ 0 =」, GCalc 「1 ÷」 | 정답 수집 후 수정 |
이 방식은 기존 Genealogy 시리즈에도 적용할 수 있다. 이미지 뷰어 WingView 는 공개된 이미지 형식 설명서와 시험 파일을, iCAD 는 도면 파일 저장 후 다시 열기 결과를 정답지로 쓸 수 있다.
다음 판에서는 열린 항목의 정답 자료를 보강하고, 같은 방식으로 지뢰찾기 복제에 착수한다.
참고문헌
- ArtCraft Team, “PhotoCraft README·AGENTS.md”, GitHub storytold/photocraft, 2026. https://github.com/storytold/photocraft
- M. Larabel, “AI Makes Open-Source, Clean Room Implementations Of Adobe Photoshop and Premiere In Rust”, Phoronix, 2026.10.07. https://www.phoronix.com/news/Photocraft-Filmcraft-AI
- OMG! Ubuntu, “ArtCraft free photoshop AI clone”, 2026.10. https://www.omgubuntu.co.uk/2026/10/artcraft-free-photoshop-ai-clone
- flowtivity, “Someone Rebuilt Adobe in Rust with AI Agents. Is It Usable?”, 2026.10. https://flowtivity.ai/blog/adobe-rust-cleanroom-clones/
- ArtCraft Team, “PhotoCraft target-app-parity.md”, 2026.10.10. https://github.com/storytold/photocraft/blob/main/docs/target-app-parity.md
- FreshPorts, “graphics/photocraft”. https://www.freshports.org/graphics/photocraft/
- Anthropic, “Building a C compiler with a team of parallel Claudes”, 2026.02. https://anthropic.com/engineering/building-c-compiler
- Wikipedia, “Clean-room design”. https://en.wikipedia.org/wiki/Clean-room_design
- Vellum, “Claude Opus 5.5 Benchmarks Explained”, 2026. https://www.vellum.ai/blog/claude-opus-5-5-benchmarks-explained
- ArtCraft Team, “photocraft-corpus”, GitHub. https://github.com/storytold/photocraft-corpus