Category: 개발

개발자들이 실제로 읽는 블로그 게시물 작성 방법

2025-03-28
개발자들이 실제로 읽는 블로그 게시물 작성 방법

독자가 적어 블로그 작성을 포기한 개발자가 있었습니다. 저자 마이클 린치는 9년간의 블로그 작성 경험을 바탕으로 얻은 교훈을 공유하고, 흔히 저지르는 실수들을 지적합니다. 장황한 서론, 불분명한 이점, 독자 도달 범위의 부족 등이 그것입니다. 그는 처음부터 목표 독자와 이점을 명확히 제시하고, 호소력을 넓히고, 독자가 게시물에 도달하는 경로를 계획할 것을 권장합니다. 또한 시각 자료, 효과적인 제목, 다양한 공유 플랫폼 활용의 중요성을 강조합니다.

개발

오픈소스 라이선스: 자유와 책임의 균형

2025-03-28
오픈소스 라이선스: 자유와 책임의 균형

이 글에서는 오픈소스 라이선스에 대한 일반적인 가정에 의문을 제기합니다. 저자는 자신의 Windows용 타일 윈도우 매니저인 komorebi를 예로 들어 OSI 승인 라이선스 사용이 성공의 필수 조건이 아님을 주장합니다. OSI 비승인 Komorebi 라이선스 하에 제공되는 komorebi는 GitHub에서 12만 6천 다운로드와 1만 6백 개의 스타를 얻었으며, 커뮤니티의 기여가 끊임없이 이어지고 있습니다. 저자는 코드 공유가 유해한 활동에 대한 참여를 거부할 자유를 포기하도록 요구해서는 안 된다고 생각합니다. 그리고 독단주의를 거부하고, 필요에 따라 라이선스를 선택하며, 경험을 공유하여 보다 건전한 오픈소스 생태계를 육성할 것을 주장합니다.

개발

6502용 초소형 Forth: 600바이트 미만

2025-03-28
6502용 초소형 Forth: 600바이트 미만

이 글에서는 8비트 CPU인 6502를 위한 매우 최소화된 Forth 구현에 대해 설명합니다. 크기는 600바이트 미만입니다. 저자는 직접 스레드 코드(DTC)와 최소 스레드 코드(MTC)라는 두 가지 인터프리터 모델을 비교하여 크기가 작다는 이유로 DTC를 선택했습니다. 이 프로젝트는 성능보다 크기를 중시하며, 표준 DTC와 MTC 변형을 검증하는 것을 목표로 합니다. 결과적으로 얻어진 Forth에는 핵심 프림티브가 포함되어 있으며, `my_hello_world.FORTH`로 테스트되어 그 기능이 입증되었습니다.

개발

Kafka 4.0 AOT 캐시를 사용한 시작 시간 59% 단축

2025-03-28

이 글에서는 Java의 Ahead-of-Time(AOT) 컴파일 기술을 활용하여 Apache Kafka 4.0의 시작 시간을 크게 단축하는 방법을 보여줍니다. AOT 캐시 파일을 생성하여 Kafka의 시작 시간을 690밀리초에서 285밀리초로 단축시켜 놀라운 59%의 성능 향상을 달성했습니다. 이 과정에서 JMX 충돌 문제를 해결하고 최종적으로 AOT 캐시 생성 및 적용에 성공하여 상당한 성능 향상을 얻었습니다.

개발 AOT 컴파일

유아의 놀라운 추론 능력

2025-03-28
유아의 놀라운 추론 능력

몬트리올 대학교 연구에 따르면, 3세에서 5세 유아는 장난감 분류 과정에서 놀라울 정도로 정교한 추론 능력을 보이는 것으로 나타났습니다. 단순한 이분법적 분류에 그치지 않고 다양한 기준에 따라 여러 범주를 만들고, 과제 도중 기준을 조정하기도 합니다. 이는 복잡한 수학적 사고를 보여주는 것으로, 유아의 인지 발달에 대한 기존 이해를 뒤집고 유아 교육에 새로운 시각을 제공합니다.

개발 유아 발달

AI 시대의 코딩 미래

2025-03-28
AI 시대의 코딩 미래

Replit CEO가 코딩을 배울 필요가 없다는 트윗이 논쟁을 불러일으켰습니다. 15년 경력의 소프트웨어 엔지니어인 저자는 AI 기반 코딩 도구의 영향에 대해 고찰합니다. AI의 효율성 향상을 인정하면서도, 과도한 의존은 이해력을 저하시키고 공급업체에 의존하게 될 위험성을 지적합니다. 초보자들에게 경쟁력을 유지하기 위해 코딩 기본기를 탄탄히 익힐 것을 권장합니다. AI는 생산성을 높이지만, 탄탄한 코딩 실력을 대체할 수는 없습니다.

디버거를 REPL로 활용하기: IntelliJ IDEA의 Run to Cursor와 Quick Evaluate Expression

2025-03-28

저자는 기존 디버거, 특히 gdb와 lldb가 네이티브 코드 디버깅에서 보여주는 한계에 지쳐 있었습니다. IntelliJ IDEA의 'Run to Cursor'와 'Quick Evaluate Expression' 기능을 결합하여 디버거를 강력한 REPL 환경으로 변신시키는 방법을 발견했습니다. 'Run to Cursor'로 커서 위치까지 프로그램을 실행하고, 'Quick Evaluate Expression'으로 현재 스택 프레임에서 표현식(새로 입력한 코드도 가능)을 평가할 수 있습니다. 이는 한 줄씩 단계별로 실행하는 기존 방식을 에디터 내에서 더욱 실험적인 2차원적 상호 작용으로 대체하여 코드 완성 기능을 활용하고 디버깅 효율을 크게 향상시킵니다.

개발

Python 아키텍처 실전 가이드: 복잡성 극복하기

2025-03-28

MADE.com의 두 엔지니어인 해리와 밥이 Python 애플리케이션 아키텍처에 대한 실용적인 가이드를 공동 집필했습니다. 대규모 전자상거래 시스템 구축 경험을 바탕으로 도메인 주도 설계(DDD), 테스트 주도 개발(TDD), 이벤트 주도 아키텍처와 같은 핵심 개념을 명확하게 설명합니다. 수많은 Python 코드 예제를 통해 복잡한 비즈니스 시나리오에서 소프트웨어 개발 과제를 해결하는 데 도움을 줍니다. Python 개발 경험이 있고 아키텍처 기술 향상을 원하는 엔지니어에게 적합합니다.

개발

10분 만에 사용자 지정 PHPStan 규칙 만들기: 코드 분석을 즐겁게

2025-03-28
10분 만에 사용자 지정 PHPStan 규칙 만들기: 코드 분석을 즐겁게

이 글에서는 코드 품질 향상을 위해 사용자 지정 PHPStan 규칙을 빠르게 만드는 방법을 보여줍니다. 저자는 간단한 예시를 통해 `userId` 매개변수의 누락된 형식 선언을 확인하는 규칙을 10분 만에 만드는 방법을 설명합니다. 이 방법은 실용성과 재미를 강조하며, 불완전한 규칙이라도 가치가 있다고 제안합니다. 독자는 자신의 필요에 맞는 사용자 지정 규칙을 만들어 코드의 유지 관리성과 안전성을 높일 수 있습니다.

MIT 푸트넘 세미나: 단순한 경쟁 이상의 것

2025-03-28
MIT 푸트넘 세미나: 단순한 경쟁 이상의 것

MIT 푸트넘 세미나는 전 세계 수학 애호가들을 불러 모읍니다. 윌리엄 로웰 푸트넘 수학 경시대회를 위한 단순한 훈련이 아니라, 학생들 간의 교류를 증진하고 수학적 소양과 의사소통 능력을 향상시키는 플랫폼입니다. 학생 발표, 교수의 지도, 상급생 강의를 통해 세미나는 학생들이 고등학교 수학 올림피아드에서 대학 학습으로의 전환을 돕습니다. 문제 해결 기술 외에도 의사소통 능력을 중시하며, 칠판 발표를 장려하고 추가적인 연습 기회를 제공합니다. 궁극적으로 푸트넘 경시대회에서 우수한 성적을 거두는 데 도움이 되지만, 그 이상으로 수학에 대한 애정과 지속적인 학습 의지를 키워줍니다.

명령줄 ASCII 아트 SVG 로고 생성기

2025-03-28
명령줄 ASCII 아트 SVG 로고 생성기

`ascii-logo-generator`는 ASCII 아트 텍스트를 생성하고 SVG 로고로 변환하는 명령줄 도구입니다. 사용자는 글꼴, 색상, 크기 등을 사용자 지정하고 텍스트 또는 SVG 파일로 출력을 저장할 수 있습니다. 레이저 커팅으로 로고를 생성하는 데 특히 유용합니다. 이 프로젝트는 오픈 소스이며 웹 기반 SVG 뷰어도 포함되어 있습니다.

개발

arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

2025-03-28
arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

arXivLabs는 협력자가 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있는 프레임워크입니다. arXivLabs와 파트너십을 맺은 개인 및 조직은 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 당사의 가치를 존중합니다. arXiv는 이러한 가치를 준수하며, 이러한 가치를 공유하는 파트너와만 협력합니다. 커뮤니티에 가치를 더할 프로젝트 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

LibreOffice: 2억 명의 사용자와 오픈소스 오피스 스위트의 강인함

2025-03-28
LibreOffice: 2억 명의 사용자와 오픈소스 오피스 스위트의 강인함

사용자 데이터를 추적하지 않지만 LibreOffice 지지자들은 약 2억 명의 사용자를 추정합니다. Gartner 애널리스트 Jason Wong은 LibreOffice가 유료 오피스 스위트의 데스크톱 대안으로 여전히 주목받고 있다고 지적하며, 특히 Microsoft와 Google이 클라우드 서비스에 집중하는 것을 고려할 때 온프레미스 구현을 유지하려는 고객에게 중요하다고 말합니다. 비용 효율적이지만 LibreOffice를 유지 관리하려면 전문적인 리소스와 새로운 기술이 필요합니다.

Claude를 이용한 Elektron Digitone 신디사이저 제어: AI 기반 음악 제작

2025-03-28
Claude를 이용한 Elektron Digitone 신디사이저 제어: AI 기반 음악 제작

모델 컨텍스트 프로토콜(MCP) 서버인 Digitone MCP를 통해 Claude 및 기타 MCP 호환 LLM은 MIDI를 통해 Elektron Digitone 신디사이저와 상호 작용하고 제어할 수 있습니다. 현재 Wavetone 머신만 지원되지만 곧 다른 머신도 추가될 예정입니다. 이 프로젝트는 Python 3.10+를 사용하며 `uv` 패키지와 Claude Desktop 앱이 필요합니다. `claude_desktop_config.json` 파일에서 MCP 서버를 구성하면 Claude는 Digitone을 실시간으로 제어하여 AI 지원 음악 제작을 가능하게 합니다. 이 라이브러리는 깔끔한 객체 지향 아키텍처를 채택하고 있으며, 기본 컨트롤러, 전용 컨트롤러, MCP 도구, MIDI 인터페이스를 포함하고 FastMCP, Pydantic 모델, mido를 사용하여 효율성과 안정성을 보장합니다.

의존성으로 인한 골치 아픔 해결: uv와 PEP 723을 사용하여 Python 스크립트 배포 간소화

2025-03-28

단일 파일 Python 스크립트의 외부 라이브러리 의존성 관리에 지치셨나요? 이 글에서는 uv와 PEP 723이 배포를 얼마나 쉽게 해주는지 보여줍니다. 의존성 메타데이터를 스크립트에 직접 삽입하여 uv는 `requirements.txt`와 복잡한 패키지 관리자의 필요성을 없애줍니다. 자동으로 격리된 가상 환경을 만들고, 의존성을 설치하고, 스크립트를 실행합니다. 모두 수동 조작 없이 이루어집니다. Shebang을 추가하면 실행이 더욱 쉬워져 어디서든 스크립트를 직접 실행할 수 있습니다.

개발

Futhark 백엔드 확장: 쉽지 않지만 불가능하지는 않다

2025-03-28

이 글에서는 Futhark 컴파일러에 새로운 백엔드를 추가하는 복잡성을 자세히 설명합니다. Futhark는 단계적인 컴파일 프로세스를 사용합니다. 프런트엔드는 구문 분석 및 형식 검사를 수행하고, 미들엔드는 최적화 및 변환을 수행하며, 백엔드는 중간 표현(IR)을 대상 코드로 변환합니다. 백엔드 구현은 단순한 자습서가 아닙니다. 여러 IR 방언과 내부 API에 대한 깊이 있는 이해가 필요합니다. 저자는 대상 언어의 추상화 수준에 따라 적절한 IR 방언을 선택하고 기존 인프라를 활용하여 개발을 단순화할 것을 제안합니다. 최종 목표는 명령줄에서 호출할 수 있는 새로운 백엔드입니다.

개발

오픈소스 자동 배선 도구 개발에서 얻은 13가지 교훈

2025-03-28
오픈소스 자동 배선 도구 개발에서 얻은 13가지 교훈

저자는 오픈소스 전자 CAD 커널인 tscircuit를 위한 자동 배선 도구를 개발하면서 얻은 13가지 교훈을 공유합니다. 이 게시글에서는 A* 알고리즘의 강력함과 하이퍼파라미터 최적화를 위한 다중 레벨 A* 사용, 비효율적인 Quadtree를 공간 해시 인덱스로 대체하는 등 자동 배선 최적화에서의 적응성을 강조합니다. 저자는 프로그래밍 언어보다 알고리즘의 중요성을 강조하고, 디버깅 및 최적화에 캐시 가능한 알고리즘과 시각화 도구를 사용할 것을 제안합니다. 마지막으로, 재귀 함수, 몬테카를로 알고리즘, 가중 A* 알고리즘의 장단점을 논의합니다.

PS2에서 Go 코드 실행하기: 해킹 모험

2025-03-28
PS2에서 Go 코드 실행하기: 해킹 모험

저자는 PlayStation 2에서 Go 코드를 실행하는 도전적인 프로젝트를 시작했습니다. Go는 PS2 아키텍처를 기본적으로 지원하지 않으므로 TinyGo 컴파일러와 ps2dev SDK를 사용해야 했습니다. 저자는 Go와 PS2의 Emotion Engine CPU(MIPS R5900 기반) 간의 호환성 문제, 특히 N32 ABI와 64비트 명령어 집합의 차이점을 극복했습니다. 큰 어려움은 DDIVU 명령어 부재였지만, TinyGo 컴파일러를 수정하여 해결했습니다. 간단한 Go 프로그램이 PCSX2 PS2 에뮬레이터에서 성공적으로 실행되고 검증되었습니다. 향후 계획에는 부동 소수점 지원 개선 및 사용자 지정 LLVM MIPS CPU 생성이 포함됩니다.

개발 PS2 개발

Go HTTP 서버 개선: 단위 테스트, 미들웨어, 서브 라우터

2025-03-28
Go HTTP 서버 개선: 단위 테스트, 미들웨어, 서브 라우터

이 블로그 게시물에서는 처음부터 만들어진 Go HTTP 서버에 대한 개선 사항을 자세히 설명합니다. 저자는 단위 테스트를 추가하고, 대소문자를 구분하지 않는 헤더와 여러 헤더 값에 대한 사용자 피드백을 해결하고, 응답 스트림과 더 큰 페이로드 처리를 개선했습니다. 주요 추가 사항으로는 더 깔끔한 코드를 위한 미들웨어 지원과 더 효율적인 라우팅 구성을 위한 서브 라우터가 있습니다. 이 게시물에서는 Go에서의 반복적인 개발과 실용적인 문제 해결을 보여줍니다.

개발 HTTP 서버

Emacs Solo: 최소주의 Emacs 설정

2025-03-27
Emacs Solo: 최소주의 Emacs 설정

Emacs Solo는 외부 종속성을 피하고 내장 패키지만 사용하는 최소주의 Emacs 설정입니다. 최근 System Crafters Weekly Show에서 라이브 데모가 진행되어 강력하고 효율적인 워크플로우를 보여주었습니다. 이 설정에는 향상된 icomplete-verical, 실험적인 git-gutter 대안, 향상된 eshell 등 많은 사용자 정의가 포함되어 있으며, 경량, 고속 및 완전 기능을 갖춘 Emacs 환경을 목표로 합니다.

개발

애플은 다시 한번 '스노우 레오파드' 순간이 필요하다

2025-03-27
애플은 다시 한번 '스노우 레오파드' 순간이 필요하다

세련되고 최적화된 것으로 알려진 2009년 애플의 Mac OS X Snow Leopard는 회사 역사상 가장 안정적인 릴리스 중 하나입니다. 그러나 현재 macOS와 iOS 시스템은 메시지 앱의 복사 붙여넣기 기능 오류, 혼란스러운 시스템 설정 인터페이스 등 버그와 좋지 않은 디자인으로 어려움을 겪고 있습니다. 저자는 애플이 Snow Leopard를 본받아 새로운 기능 추가에만 집중하는 대신 기존 문제를 해결하기 위해 시스템을 대대적으로 정리하고 최적화할 것을 촉구합니다. 이를 통해 사용자 경험이 향상되고 애플의 입지가 강화되며, 치열한 AI 경쟁 속에서도 경쟁력을 유지할 수 있을 것입니다.

뉴질랜드 서비스 제공업체 해킹: 책임감 있는 공개 사례

2025-03-27

보안 연구원이 뉴질랜드 앱 KiwiServices에서 심각한 데이터베이스 취약성을 발견했습니다. 간단한 HTTP 요청을 조작하여 인증을 우회하고 전체 사용자 데이터베이스에 접근하여 이름, 이메일 주소, 전화번호 등의 민감한 정보를 노출했습니다. 연구원은 책임감 있는 공개를 했고, KiwiServices는 30일 이내에 취약성을 수정했습니다. 이는 보안 테스트와 신속한 패치 적용의 중요성을 보여줍니다.

개발

셀프 서비스 UI에 현혹되지 마세요! 만병통치약이 아닙니다

2025-03-27

이 글에서는 내부 시스템에 접근하기 위한 셀프 서비스 UI 구축의 장단점을 살펴봅니다. 구성을 단순화하는 것은 매력적이지만, 복잡한 작업의 경우 셀프 서비스 UI는 역효과를 낼 수 있습니다. 근본적인 엔지니어링 문제를 해결하지 못하고, 위험을 은폐하여 오류 및 보안 취약성으로 이어질 수 있습니다. 저자는 셀프 서비스 UI를 구축하기 전에 문제의 근본 원인을 깊이 파고들고, 표면적인 단순화에만 의존하지 않고 시스템 자체를 개선할 것을 제안합니다.

온콜의 높은 대가: 기술 기업의 엔지니어 착취

2025-03-27
온콜의 높은 대가: 기술 기업의 엔지니어 착취

이 글에서는 기술 기업에 만연한 엔지니어 온콜 시스템의 부정적 영향을 조사합니다. Alex라는 엔지니어의 경험을 사례 연구로 사용하여, 상시 대기, 수면 부족, 업무와 개인 생활의 경계 모호화, 그리고 적절한 보상 부족 등 온콜 업무와 관련된 엄청난 스트레스와 번아웃을 보여줍니다. 이러한 시스템에 내재된 착취를 당연시하는 만연한 문화를 비판하고, 기업이 온콜 정책을 재고하고 엔지니어의 복지를 위한 공정한 보상과 보호를 제공할 것을 촉구합니다.

개발

AI 부정행위 도구 개발 컬럼비아대생, 징계위원회 기록 유출로 징계

2025-03-27
AI 부정행위 도구 개발 컬럼비아대생, 징계위원회 기록 유출로 징계

컬럼비아 대학교는 AI 도구를 사용하여 기술 면접에서 부정 행위를 하는 데 도움을 주는 도구를 개발한 학생을 징계했다. 하지만 징계 사유는 도구 자체가 아니라 징계위원회 기록과 대학교 직원 사진을 소셜 미디어에 공개했기 때문이다. 학생 Chungin "Roy" Lee가 개발한 AI 도구 "Interview Coder"는 월 60달러에 판매되며 연간 200만 달러의 수익을 예상한다. Lee는 기술 면접은 대학교의 관할 밖이라고 주장했지만, 대학교는 그의 행위를 학사 부정행위로 간주하고 1년간의 징계 처분을 내렸다. Lee는 샌프란시스코로 이주할 계획이다.

Dish: 가볍고 일회성 모니터링 서비스

2025-03-27
Dish: 가볍고 일회성 모니터링 서비스

Dish는 HTTP/S 및 일반적인 TCP 엔드포인트의 빠른 테스트를 위해 설계된 최소한의 Go 기반 일회성 모니터링 서비스입니다. 로컬 JSON 파일 또는 원격 JSON API에서 대상 목록을 로드할 수 있으며, Telegram 알림, Prometheus Pushgateway 업데이트, Webhook 콜백 등 다양한 알림 방법을 제공합니다. 사용자는 명령줄 인수를 통해 유연하게 구성할 수 있으며, 사용자 지정 헤더도 지원합니다. Dish는 종속성이 없으며, 바이너리 빌드 또는 Docker 이미지를 통해 쉽게 배포할 수 있으므로 모니터링 시스템을 신속하게 구축하는 데 적합합니다.

개발

Revyl: 더 빠르고 안정적인 소프트웨어 출시를 위한 사전 예방적 관찰 가능성 플랫폼

2025-03-27
Revyl: 더 빠르고 안정적인 소프트웨어 출시를 위한 사전 예방적 관찰 가능성 플랫폼

Revyl은 iOS, Android 및 웹 애플리케이션의 버그가 프로덕션 환경에 도달하기 전에 이를 감지하고 분류하는 사전 예방적 관찰 가능성 플랫폼입니다. Revyl의 목표는 엔드투엔드 테스트를 제공하여 소프트웨어 안정성을 자동화하고 더 빠르고 안정적인 출시를 가능하게 하는 것입니다. DragonCrawl 개발팀이 설립하고 Felicis, General Catalyst, Y Combinator와 같은 저명한 투자자들과 Meta, Nvidia, Uber의 전략적 엔젤 투자자들의 지원을 받는 Revyl은 초기 단계부터 기업 시장에서 성공을 거두고 있으며, 기본적인 안정성 플랫폼이 되는 것을 목표로 하고 있습니다.

개발

xorq: 다중 엔진 ML 파이프라인 간소화

2025-03-27
xorq: 다중 엔진 ML 파이프라인 간소화

xorq는 선언적 파이프라인의 재현성과 성능을 Python ML 에코시스템에 제공하는 지연 계산 프레임워크입니다. 메모리가 부족해지는 일 없이 pandas 스타일 변환을 작성하고, 중간 결과를 자동으로 캐싱하며, SQL 엔진과 Python UDF 간을 원활하게 이동할 수 있습니다. 재현성을 유지하면서 말이죠. Ibis와 DataFusion을 기반으로 구축된 xorq는 선언적 표현식, 다중 엔진 지원, 내장 캐싱, 직렬화 가능한 파이프라인, 이식 가능한 UDF, Arrow 네이티브 아키텍처 등의 기능을 갖추고 있습니다. 탐색적 연구에서 프로덕션 준비 아티팩트로의 원활한 전환을 가능하게 하는 대화형 라이브러리와 CLI를 모두 제공합니다.

개발

Inko: 신뢰할 수 있는 병렬 소프트웨어 구축을 위한 새로운 언어

2025-03-27
Inko: 신뢰할 수 있는 병렬 소프트웨어 구축을 위한 새로운 언어

Inko는 신뢰할 수 있는 병렬 소프트웨어를 구축하도록 설계된 새로운 프로그래밍 언어입니다. 결정적인 자동 메모리 관리, 이동 의미 체계, 정적 형식 지정, 형식 안전 병렬 처리, 효율적인 오류 처리를 제공하여 병렬 소프트웨어 개발을 간소화하고 예측할 수 없는 성능, 런타임 오류, 경합 조건을 제거합니다. Inko는 LLVM 머신 코드로 컴파일됩니다. 예로 간단한 "Hello, world!"와 병렬 계승 계산이 나와 있습니다. 자세한 내용과 설치 지침은 Inko 웹사이트를 참조하십시오.

Lean4에서 ZK 회로를 위한 임베디드 DSL 및 형식 검증 프레임워크: Clean

2025-03-27

연구원들은 제로 지식(ZK) 회로를 구축하기 위한 Lean4 기반의 임베디드 도메인 특화 언어(DSL) 및 형식 검증 프레임워크인 Clean을 개발했습니다. ZK 회로는 버그가 발생하기 쉽지만, Clean은 Lean4에서 회로를 정의하고, 원하는 속성을 지정하고, 공식적으로 증명함으로써 정확성을 향상시키는 것을 목표로 합니다. 이 프로젝트는 zkEVM 형식 검증 프로젝트의 일부이며, zkEVM의 형식 검증을 위한 인프라와 도구를 제공하는 것을 목표로 합니다. Clean은 회로 정의에 witness, assert, lookup, subcircuit의 네 가지 기본 연산을 지원하며, 사용 편의성을 높이기 위한 모나드 인터페이스를 제공합니다. 핵심은 FormalCircuit 구조이며, 회로 정의, 가정, 사양, 건전성, 완전성 증명을 종속형으로 밀접하게 패키징합니다. 하위 회로의 제약 조건을 (공식적으로 검증된) 사양으로 재귀적으로 대체함으로써 대규모 회로를 공식적으로 검증할 수 있습니다. 이 프레임워크는 이미 8비트 덧셈과 같은 간단한 회로를 성공적으로 검증했으며, 향후 계획으로 더 낮은 수준의 가젯을 추가하고, 일반적인 해시 함수 회로를 정의하고, RISC-V의 하위 집합을 위한 공식적으로 검증된 최소 VM을 구축하는 것이 있습니다.

1 2 127 128 129 131 133 134 135 214 215