Category: 개발

arXivLabs: 커뮤니티 협력자와 함께하는 실험 프로젝트

2025-08-21
arXivLabs: 커뮤니티 협력자와 함께하는 실험 프로젝트

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

개발

디버깅 뷰: 프로그래머의 시간 절약

2025-08-21

프로그래머 소피는 Unison 프로젝트에서 버그를 발견했고, 문제를 추적하기 위해 복잡한 SQL 쿼리가 필요했습니다. 저자는 디버깅 프로세스를 간소화하기 위한 해결책으로 데이터베이스 뷰 생성을 소개합니다. 미리 정의된 뷰는 여러 테이블을 결합하여 더 읽기 쉬운 형식으로 데이터를 표시하므로, 각 디버깅 세션에서 복잡한 JOIN 문을 반복적으로 작성할 필요가 없습니다. 이 접근 방식은 특정 쿼리의 성능에 약간 영향을 줄 수 있지만, 디버깅 효율성을 크게 향상시키고 개발 시간을 절약합니다.

개발

D3.js: 장황한 코드 뒤에 숨겨진 예술성

2025-08-21
D3.js: 장황한 코드 뒤에 숨겨진 예술성

D3.js 학습 과정은 마치 산을 오르는 것과 같습니다. 처음에는 길고 복잡한 코드와 문법에 압도될 수 있습니다. 간단한 선을 그리는 데에도 상당한 양의 코드가 필요합니다. 저자는 박스 플롯을 그리는 예시(194줄의 코드)를 통해 D3.js의 강력한 유연성과 사용자 지정 가능성을 보여줍니다. D3.js는 단순한 그림 도구가 아니라 개발자가 데이터 시각화 예술을 창조할 수 있는 도구이며, SVG 요소를 정밀하게 제어하여 복잡하고 독창적인 시각화 효과를 구현하고, 궁극적으로 기성품 도구의 한계를 뛰어넘을 수 있게 합니다.

개발

레이크하우스의 계층화 전략: 공유 계층화 vs. 물질화

2025-08-21
레이크하우스의 계층화 전략: 공유 계층화 vs. 물질화

본 문서는 레이크하우스 아키텍처에서의 데이터 계층화 전략을 탐구합니다. 공유 계층에 대한 직접 접근은 신뢰성 문제를 야기할 수 있습니다. API 접근이 더 바람직합니다. 데이터 수명 주기 관리에는 기본 및 보조 스토리지 위치를 조정하는 표준 메타데이터 서비스가 필요합니다. 스키마 관리는 기본 시스템에 의해 제어되어 보조 스토리지와의 호환성을 보장해야 합니다. 공유 계층화와 물질화 중 어떤 것을 선택할지는 스티칭/변환 로직의 위치(클라이언트 측 또는 서버 측)와 각각의 장단점에 따라 달라집니다. 클라이언트 측 스티칭의 경우 차이는 미미합니다. 서버 측 스티칭의 경우 메타데이터 유지 관리와 실시간 데이터 처리 통합을 신중하게 고려해야 합니다.

브라우저에서 Common Lisp 실행: Web Embeddable Common Lisp 프로젝트 진행 상황

2025-08-21

Web Embeddable Common Lisp (WECL) 프로젝트는 Common Lisp 런타임 환경을 웹 브라우저에 통합하는 것을 목표로 합니다. 현재 이 프로젝트는 `` 태그를 통해 Common Lisp 코드를 실행할 수 있으며, Common Lisp과 JavaScript 간의 저수준 상호 작용을 위해 JS-FFI를 제공합니다. 또한 LIME/SLUG을 통해 Emacs에서 WECL과 상호 작용할 수 있습니다. 하지만 이 프로젝트는 아직 초기 단계이며, 스레드 지원 부족 및 성능 최적화 여지 등 몇 가지 제한 사항이 있습니다. 향후 계획에는 이러한 문제를 해결하기 위한 WASI로의 이식이 포함됩니다.

개발

Podman, Compose, BuildKit을 사용한 데몬리스 Docker Compose 빌드

2025-08-21

Docker가 nftables와 호환되지 않고 rootless 및 데몬리스 접근 방식을 선호하기 때문에 저자는 Podman을 사용하여 Docker Compose 프로젝트를 빌드합니다. 이 기사에서는 공식 Docker Compose CLI와 podman-compose를 사용할 때의 단점을 살펴보고, 최종적으로 Podman 소켓을 활성화하고 Docker 컨텍스트를 생성하여 Podman에서 Docker Compose CLI와 BuildKit을 사용하여 빌드를 수행합니다. BuildKit 데몬을 피하기 위해 저자는 Bakah라는 도구를 개발했는데, 이 도구는 Compose 프로젝트를 Bake JSON 파일로 변환하고 Buildah를 사용하여 빌드하여 완전히 데몬리스 빌드 프로세스를 구현합니다.

개발

Mavericks 되살리기: 오래된 시스템에 새로운 생명 불어넣기

2025-08-21

이 가이드는 오래된 OS X Mavericks 시스템에 활력을 되찾는 방법을 보여줍니다. 시스템을 업데이트하는 간단한 스크립트, 구식 브라우저를 최신 Firefox(Firefox Dynasty)로 교체, Aqua Proxy를 사용하여 HTTPS 호환성 문제 해결, 새로운 이모지 추가, Time Machine으로 백업 설정 등을 포함합니다. 또한 Chess, iTunes, iBooks 등 원치 않는 사전 설치된 앱을 삭제하여 개인화된 경험을 만드는 방법도 설명합니다. 전체 프로세스는 간단하며, Mavericks 시스템을 더 원활하고 사용자의 요구에 맞게 조정할 수 있도록 합니다.

개발

CSS 무한대: 브라우저 해석의 기묘한 여정

2025-08-21
CSS 무한대: 브라우저 해석의 기묘한 여정

이 글에서는 CSS 계산 함수에서 `infinity` 키워드의 기묘한 동작을 탐구합니다. `text-indent`, `word-spacing`, `letter-spacing`과 같은 속성에 `infinity`를 적용함으로써 저자는 서로 다른 브라우저가 무한 값을 처리하는 방식의 불일치를 발견했습니다. 하지만 시각적인 결과는 일관되게 수평 오버플로우로 이어집니다. 더욱 흥미로운 점은 `z-index`에서 사용할 경우 `infinity`의 계산 값이 모든 브라우저에서 최대 정수 값으로 제한되어 예상치 못한 스태킹 순서가 발생합니다. 마지막으로 저자는 애니메이션 지속 시간에 `infinity`를 시험해 보고 이것이 매우 긴 시간으로 변환되고 심지어 Safari에서 페이지가 응답하지 않는다는 것을 알게 되었습니다. 요약하자면, 이 실험은 브라우저가 CSS에서 무한 값을 처리하는 다양한 전략과 몇 가지 놀라운 부작용을 보여줍니다.

개발

OCaml에서의 우아한 의존성 주입: 객체 지향적 접근 방식

2025-08-21

이 기사에서는 OCaml에서의 의존성 주입에 대한 다양한 접근 방식을 살펴보고 새로운 객체 지향적 솔루션을 제안합니다. 저자는 사용자 정의 효과와 일급 값으로서의 모듈을 사용하는 기존 접근 방식의 단점을 비교 분석하여 실제 애플리케이션에서 너무 장황하고 오류가 발생하기 쉽다는 점을 주장합니다. 새로운 접근 방식은 OCaml의 강력한 객체 모델을 활용하여 구조적 객체 형식 및 행 변수와 같은 기능을 사용하여 유형 안전한 의존성 주입을 쉽게 구성하고 확장할 수 있도록 합니다. 이 기사에서는 간단한 예와 더 복잡한 시나리오를 통해 이 접근 방식의 우아함과 유지 관리 용이성을 보여주고 다른 접근 방식과 비교하여 최종적으로 단순한 의존성 주입 시나리오에서는 객체 지향적 접근 방식을 권장합니다.

개발 객체 모델

LLD의 신비로운 `d4d4` 명령어: 트랩이 아니라 조건부 분기

2025-08-21

한 프로그래머가 디스어셈블된 ARM 코드에서 많은 `d4d4` 명령어를 발견했습니다. 이 명령어들은 항상 도달할 수 없었고, LLVM의 objdump는 -0x58로의 상대 분기로 식별했습니다. 실험과 분석 결과, 이 명령어들은 LLVM 컴파일러가 아니라 LLD 링커가 객체 파일 경계 정렬 중에 삽입한 것으로 나타났습니다. LLD는 `d4d4`를 패딩으로 사용하며, 트랩 명령어로 의도되었지만 실제로는 조건부 분기이며 Thumb 명령어 집합에서는 상대 점프로 작동합니다. 이것은 LLD의 버그로 보이며, 진정한 트랩이 아니므로 예측할 수 없는 점프를 유발할 수 있습니다. GNU 링커는 패딩에 0을 사용하여 이 문제를 방지합니다.

개발

illumos Cafe: OS 다양성을 위한 또 다른 아늑한 공간

2025-08-21
illumos Cafe: OS 다양성을 위한 또 다른 아늑한 공간

BSD Cafe의 성공에 이어 illumos Cafe 프로젝트가 시작되었습니다. BSD Cafe와 비슷한 정신을 가진 illumos Cafe는 illumos 기반 OS에서 실행되는 서비스를 제공하여 사용 편의성을 보여주고 오픈소스 OS의 다양성을 증진하는 것을 목표로 합니다. 현재 Mastodon과 snac 인스턴스를 호스팅하고 있으며 서비스 확장을 계획하고 있습니다. 이 프로젝트는 긍정적이고 포괄적인 철학을 채택하여 대기업의 통제에서 자유로운 자유롭고 독립적인 커뮤니티를 만드는 것을 목표로 합니다.

개발

순수 CSS 3D 엔진: HTML 요소로 사실적인 3D 세계 구축

2025-08-21
순수 CSS 3D 엔진: HTML 요소로 사실적인 3D 세계 구축

개발자가 수개월에 걸쳐 CSS 3D 변환, HTML 요소, 자바스크립트만을 사용하여 놀라울 정도로 사실적인 3D 환경 데모를 만들었습니다. 이 데모는 복잡한 모델, 사실적인 조명과 그림자, 그리고 충돌 감지 기능을 갖추고 있습니다. 이 글에서는 직사각형 요소로 3D 객체를 만드는 방법, 그라데이션과 캔버스를 효과적으로 사용하여 조명과 그림자 효과를 구현하는 방법, 높이 맵을 기반으로 충돌을 감지하는 방법 등 기술적인 세부 사항을 설명합니다. 이것은 단순한 기술 시연이 아니라 3D 그래픽 분야에서 CSS의 잠재력을 크게 보여주는 것입니다.

개발 3D 엔진

Bluesky 아키텍처 심층 분석: 분산형 소셜 네트워크의 내부 구조

2025-08-21
Bluesky 아키텍처 심층 분석: 분산형 소셜 네트워크의 내부 구조

이 글에서는 분산형 소셜 네트워크 Bluesky를 구동하는 ATProto 프로토콜의 아키텍처를 심층적으로 분석합니다. 레코드, 블롭, 렉시콘, DID, 핸들과 같은 핵심 개념을 자세히 설명하고, PDS(개인 데이터 서버), 릴레이, AppView, 라벨러, 피드 생성기 등 서버 구성 요소가 어떻게 상호 작용하는지 상세하게 다룹니다. 또한 ATProto와 Fediverse의 차이점을 비교하고, 관련 SDK, 문서, 커뮤니티 리소스를 개괄적으로 제시하여 개발자들이 Bluesky 생태계를 이해하고 기여할 수 있도록 포괄적인 가이드를 제공합니다.

개발

Zedless: 개인 정보 보호 및 로컬 우선을 중시하는 Zed 포크

2025-08-21
Zedless: 개인 정보 보호 및 로컬 우선을 중시하는 Zed 포크

Zedless는 개인 정보 보호 및 로컬 우선 원칙을 우선시하도록 설계된 Zed의 포크로, 현재 개발 중입니다. 독점 클라우드 서비스, 원격 측정 및 자동 충돌 보고에 대한 의존성을 제거합니다. 자체 인프라를 사용하는 것을 강조하며, 사용자는 네트워크 서비스에 대한 제공자를 구성할 수 있습니다(기본값 없음, 기본적으로 비활성화됨). 또한, 기여자 라이선스 계약을 피하고 모든 타사 종속성에 대한 적절한 라이선스를 보장합니다.

개발

Lean을 사용한 페르마의 마지막 정리 형식화: 협업 오픈소스 프로젝트

2025-08-21

케빈 버자드가 이끄는 국제적 협업 프로젝트는 Lean 정리 증명기를 사용하여 페르마의 마지막 정리를 공식적으로 증명하는 야심찬 작업을 수행하고 있습니다. 영국 공학 및 물리 과학 연구위원회의 지원을 받고 임페리얼 칼리지 런던에서 주관하는 이 프로젝트는 컴퓨터를 이용한 증명 검증을 통해 수학에서의 형식화 및 자동 검증의 가능성을 탐구하며 미래 연구에 영향을 미칩니다.

SimpleIDE: Linux에 전문적인 VB.NET 개발 환경 제공

2025-08-21
SimpleIDE: Linux에 전문적인 VB.NET 개발 환경 제공

SimpleIDE는 .NET 8.0과 GTK# 3을 사용하여 Linux에서 구축된 경량의 전문적인 VB.NET IDE입니다. VB.NET 프로젝트를 위한 최신 개발 환경을 제공하며, 여러 파일의 탭 편집, 구문 강조 표시, 지능적인 코드 완성, 통합 빌드 시스템, 디버깅 기능, Claude AI 지원 등을 갖추고 있습니다. 또한 SimpleIDE는 Git 통합, 사용자 정의 가능한 테마, 풍부한 키보드 단축키도 제공합니다. 이 오픈 소스 프로젝트는 기여를 환영합니다.

개발

파이썬 f-string 치트 시트: 문자열 포매팅 마스터하기

2025-08-21

이 블로그 게시글은 파이썬의 f-string 포매팅에 대한 치트 시트를 제공합니다. 숫자, 정수, 문자열에 대한 다양한 포매팅 옵션(채우기, 너비, 그룹화, 정밀도, 유형 등)을 다룹니다. 또한 모든 객체에 공통적인 수정자(!s, !r, !a 등)와 이러한 수정자를 다른 포맷 지정자와 결합하는 방법에 대해서도 설명합니다. 숫자, 정수, 문자열 중 어떤 것을 다루든 이 치트 시트를 활용하면 파이썬 f-string의 강력한 기능을 쉽게 활용하여 코드의 가독성과 효율성을 높일 수 있습니다.

UTCP 1.0.1: 유연하고 확장 가능한 범용 도구 호출 프로토콜

2025-08-21
UTCP 1.0.1: 유연하고 확장 가능한 범용 도구 호출 프로토콜

범용 도구 호출 프로토콜(UTCP) 1.0.1은 다양한 통신 프로토콜을 통해 도구를 정의하고 상호 작용하기 위한 현대적이고 유연하며 확장 가능한 표준입니다. 모듈화된 코어와 플러그인 기반 아키텍처를 통해 확장성, 테스트 용이성, 패키징이 향상되었습니다. UTCP는 확장성, 상호 운용성, 사용 편의성을 중시하며 HTTP, SSE, CLI 등의 플러그인을 제공합니다. 새로운 버전에서는 코어 라이브러리와 선택적 플러그인을 분리하는 아키텍처 재구성, 개선된 검색 전략, 변수 치환 메커니즘이 도입되었습니다.

프로그래밍 언어의 근본적인 결함: 데이터 대 객체 논쟁

2025-08-21
프로그래밍 언어의 근본적인 결함: 데이터 대 객체 논쟁

저자는 기존 프로그래밍 언어들이 데이터와 객체를 다루는 방식에 근본적인 결함을 가지고 있다고 주장합니다. 데이터(예: 정수 1)와 객체(항등성과 가변성을 지닌 엔티티)를 구분해야 한다고 지적합니다. 많은 언어들이 둘을 명확하게 구분하지 못하여 코드 비대화 및 설계상의 문제로 이어집니다. 저자는 이상적인 언어는 개발자가 데이터 또는 객체 표현을 명시적으로 선택하고 적절한 지원을 제공할 수 있어야 한다고 생각합니다. 본 논문에서는 Java와 Haskell을 예로 들어 객체 지향 언어와 함수형 언어의 데이터 및 객체 접근 방식을 비교하고 Erlang의 장점을 분석합니다. 결론적으로 프로그래밍 언어 설계에서 데이터와 객체를 더 명확하게 구분함으로써 효율성과 코드 품질을 향상시켜야 한다고 주장합니다.

개발 객체

DiffMem: Git 기반 차등 메모리로 더욱 똑똑해진 AI 에이전트

2025-08-21
DiffMem: Git 기반 차등 메모리로 더욱 똑똑해진 AI 에이전트

DiffMem은 AI 에이전트 및 대화 시스템을 위해 설계된 경량의 Git 기반 메모리 백엔드입니다. 사람이 읽을 수 있는 저장소에는 Markdown 파일을 사용하고, Git을 사용하여 차등을 통한 시간적 진화를 추적하며, 빠르고 설명 가능한 검색에는 메모리 내 BM25 색인을 사용합니다. 이 프로젝트는 버전 제어 시스템이 AI 애플리케이션에서 효율적이고 확장 가능한 메모리의 기반으로 어떻게 작동하는지 탐구하는 개념 증명(PoC)입니다. DiffMem은 메모리를 버전 관리되는 저장소로 취급하여 현재 상태와 기록된 변경 사항을 분리합니다. 이를 통해 에이전트는 기록 데이터의 오버헤드 없이 컴팩트하고 최신의 표면을 쿼리 및 검색할 수 있으며, 필요에 따라 진화를 심층적으로 파악할 수 있습니다. 기존 AI 에이전트용 메모리 시스템의 문제점인 확장성 및 쿼리 효율성 문제를 해결하고, 사람이 읽을 수 있고, 이식성이 높고, 감사 가능한 솔루션을 제공합니다.

개발

실패한 실험: Git 기반 코드 리뷰 도구

2025-08-21
실패한 실험: Git 기반 코드 리뷰 도구

저자는 GitHub의 코드 리뷰 프로세스를 개선하기 위해 `git-review`라는 도구를 실험했습니다. 핵심 아이디어는 코드 리뷰를 저장소에 저장된 커밋으로 취급하고, 코드 내 주석을 사용하여 리뷰하는 것이었습니다. 그러나 이 실험은 성공적이지 못했습니다. 코드에 직접 주석을 추가하는 것은 매우 효율적이었지만, 리뷰 중인 코드를 수정하는 것은 복잡했고, 특히 충돌 해결과 `git push --force-with-lease` 사용으로 인한 마찰이 문제였습니다. 저자는 결국 프로젝트를 포기했지만, 코드 내 리뷰라는 핵심 아이디어는 가치 있다고 믿으며, Git 개선을 통한 코드 리뷰의 미래 가능성에 기대를 걸고 있습니다.

개발

PlutoPrint: HTML/XML에서 PDF 및 이미지를 생성하는 경량 Python 라이브러리

2025-08-21
PlutoPrint: HTML/XML에서 PDF 및 이미지를 생성하는 경량 Python 라이브러리

PlutoPrint는 HTML 또는 XML에서 고품질 PDF 및 이미지를 직접 생성하는 경량 Python 라이브러리입니다. PlutoBook의 강력한 렌더링 엔진을 기반으로 하며, 간단한 API를 통해 보고서, 송장 또는 시각적 스냅샷을 쉽게 만들 수 있습니다. 명령줄과 Python API 모두 사용할 수 있으며, Windows 및 Linux 64비트 시스템에는 미리 빌드된 바이너리가 제공됩니다. 또한 Matplotlib과 통합하여 차트를 생성하고 PDF 또는 이미지에 추가할 수도 있습니다.

개발 PDF 생성

AI가 칩 설계에 혁명을 일으키다: 전문가 의견

2025-08-20
AI가 칩 설계에 혁명을 일으키다: 전문가 의견

반도체 엔지니어링 전문가들은 AI를 칩 설계에 적용하여 가치를 극대화하고 설계 프로세스에 영향을 미치는 방법에 대해 논의했습니다. AI가 칩 설계를 광범위한 도메인 특정 방식에서 도메인과 하위 도메인으로 세분화된 보다 세밀한 접근 방식으로 전환할 것으로 예상합니다. 이는 다양한 수직 시장(예: 자동차 또는 미션 크리티컬 애플리케이션)의 고유한 요구 사항을 충족하기 위한 것입니다. AI 도구는 프로세스를 자동화하고, 디버깅 분석을 개선하고, 궁극적으로 완전히 자율적인 워크플로우(레벨 5)를 달성할 것을 약속하여 주니어 엔지니어에 대한 의존도를 줄일 수 있습니다. 그러나 AI의 신뢰성을 보장하고 의사 결정 프로세스를 엔지니어에게 투명하고 이해하기 쉽게 만드는 과제가 남아 있으며, 설계의 품질과 효율성을 보장해야 합니다.

개발

Google의 Pytype 프로젝트, Python 3.12 이후 지원 종료

2025-08-20
Google의 Pytype 프로젝트, Python 3.12 이후 지원 종료

Google의 Python 정적 타입 체커인 Pytype의 개발이 종료 단계에 접어들었습니다. 2012년 시작 이후 Pytype은 Google 개발자들에게 큰 도움을 주었고 Python 타입 시스템에 크게 기여했습니다. 하지만 바이트코드 기반 설계로 인해 새로운 기능 개발에 제약이 있어 Google은 새로운 접근 방식에 집중하고 Python 3.12를 마지막 지원 버전으로 합니다. 팀은 모든 기여자, 특히 10년간 기여해 온 Rebecca Chen에게 감사를 표합니다. Python 타입 시스템이 견고하므로 개발자는 다른 성숙한 솔루션을 찾아보는 것이 좋습니다.

개발

Luminal: 검색 기반 컴파일을 사용한 고성능 딥러닝 라이브러리

2025-08-20
Luminal: 검색 기반 컴파일을 사용한 고성능 딥러닝 라이브러리

Luminal은 검색 기반 컴파일을 사용하여 고성능을 달성하는 딥러닝 라이브러리입니다. 핵심은 매우 간소하며, 단 12개의 기본 연산자로 구성되어 있음에도 불구하고 Transformer 및 합성곱 신경망과 같은 복잡한 모델을 지원할 수 있습니다. 컴파일 시 적극적인 커널 융합과 형태 특정 커널 컴파일을 통해 Luminal은 기존 RISC 아키텍처의 단점을 극복하고 Flash Attention과 같은 복잡한 최적화를 자동으로 도출합니다. 정적 컴파일 방식으로 런타임 오버헤드를 피하고 Metal 및 CUDA를 지원하여 Mac 및 Nvidia GPU에서 고속 실행이 가능합니다. Llama 3 8B와 같은 모델에서 눈에 띄는 성능 향상을 보여줍니다.

개발

React Flow로 구축된 시각적 드럼 머신

2025-08-20
React Flow로 구축된 시각적 드럼 머신

Strudel.cc, React Flow로 구축되고 Tailwind CSS로 스타일링된 시각적 드럼 머신 및 패턴 시퀀서입니다. 드래그 앤 드롭 인터페이스를 통해 악기 노드와 효과 노드를 연결하여 복잡한 음악 패턴을 만들 수 있습니다. 다양한 악기와 효과, 실시간 패턴 편집, 그룹 제어, Zustand을 사용한 상태 관리를 통한 잘 정돈된 프로젝트 구조 등이 포함되어 있습니다. 포괄적인 시작 가이드도 제공됩니다.

Zed IDE, 코드 협업 혁신을 위한 3200만 달러 시리즈 B 투자 유치

2025-08-20
Zed IDE, 코드 협업 혁신을 위한 3200만 달러 시리즈 B 투자 유치

초고속 IDE인 Zed는 Sequoia Capital이 주도하는 3200만 달러 규모의 시리즈 B 투자 라운드를 발표했으며, 총 투자금은 4200만 달러를 넘어섰습니다. Zed의 비전은 오래된 스냅샷과 산발적인 도구를 넘어 코드에 대한 대화를 코드 자체에 직접 연결함으로써 소프트웨어 개발 방식을 근본적으로 바꾸는 것입니다. 이를 위해 Zed는 편집 수준의 세분성으로 코드의 진화를 점진적으로 추적하는 새로운 작업 기반 버전 관리 시스템인 DeltaDB를 구축하고 있으며, 이를 Zed에 통합하여 사람과 AI 에이전트 간의 원활한 협업을 가능하게 합니다. 이번 투자는 코드, 토론, AI 지원이 통합된 협업적인 작업 공간을 만들고 소프트웨어 개발의 미래를 재구성하려는 Zed의 미션을 촉진할 것입니다.

개발

typed-arrow: Rust에서 제로 런타임 오버헤드의 Arrow 스키마

2025-08-20
typed-arrow: Rust에서 제로 런타임 오버헤드의 Arrow 스키마

typed-arrow는 Rust에서 Arrow 스키마를 선언하는 강력하게 형식화되고 완전히 컴파일 타임 방식을 제공하는 Rust 라이브러리입니다. Rust 형식을 arrow-rs의 형식화된 빌더/배열 및 arrow_schema::DataType에 직접 매핑하여 런타임에서 DataType 전환을 제거합니다. 이를 통해 제로 런타임 오버헤드, 단상화된 열 구성 및 인체 공학적인 ORM과 같은 API를 구현합니다. 이 라이브러리는 중첩된 구조체, 리스트, 딕셔너리, 타임스탬프 등 광범위한 데이터 유형을 지원하며 효율적이고 안전한 Arrow 데이터 조작을 위한 유연한 구축 방법을 제공합니다.

개발

수학을 사용하여 3D 공간에서 객체 이동시키기

2025-08-20
수학을 사용하여 3D 공간에서 객체 이동시키기

이 글에서는 3D 공간, 특히 구형 나선형 경로를 따라 객체를 이동시키는 방법을 탐구합니다. 간단한 원 운동부터 시작하여 사인과 코사인 함수를 사용하여 객체의 x, y, z 좌표를 제어하고 나선형 및 더 복잡한 궤적을 만드는 방법을 설명합니다. 핵심 개념은 매개변수 방정식을 사용하여 객체의 3D 위치를 시간 함수로 정의하는 것입니다. 복잡한 동적 효과처럼 보이는 것은 실제로는 간단한 수학 함수에서 유도됩니다.

개발

OCaml 에디터, 주요 업데이트: 강력한 리팩토링 기능

2025-08-20
OCaml 에디터, 주요 업데이트: 강력한 리팩토링 기능

인턴십 기간 동안 OCaml의 Merlin 컴파일러에 강력한 리팩토링 기능을 추가했습니다. 먼저 "최상위 표현식 추출" 기능을 구현했습니다. 이 기능은 선택한 표현식을 새로운 `let` 바인딩으로 추출합니다. 상수, 표현식(변수를 사용하는 표현식 포함), OCaml의 순수성 문제를 효과적으로 처리합니다. Language Server Protocol(LSP)을 통해 코드 액션과 사용자 지정 요청의 두 가지 상호 작용 방식으로 구현되었으며, PR이 제출되어 곧 병합될 예정입니다. 이는 OCaml의 에디터 경험을 JetBrains IDE에 가깝게 만드는 중요한 단계이며, 향후 더 많은 리팩토링 도구를 개발할 계획입니다.

개발
1 2 20 21 22 24 26 27 28 214 215