Category: 개발

Hotspot: Linux perf 성능 분석을 위한 세련된 GUI

2025-05-22
Hotspot: Linux perf 성능 분석을 위한 세련된 GUI

KDAB은 성능 데이터 분석을 위한 독립 실행형 GUI인 Hotspot을 개발했습니다. 처음에는 KCachegrind와 유사한 인터페이스로 Linux perf 데이터를 시각화하는 데 중점을 두었습니다. 그래픽 시각화, 타임라인 필터링 및 애플리케이션 프로파일링을 위한 perf 실행 기능을 제공합니다. 다양한 배포판에서 쉽게 사용할 수 있도록 AppImage로 또는 패키지 관리자(AUR, Debian, Ubuntu, Fedora)를 통해 사용할 수 있으며, Hotspot을 사용하면 사용자는 CPU 시간과 CPU 비사용 시간을 분석하고 데이터를 내보내 공유할 수 있습니다. 아직 모든 기능이 구현된 것은 아니지만 Hotspot은 Linux 성능 분석을 간소화합니다.

개발

다익스트라의 Ada 언어 제안에 대한 통렬한 비판

2025-05-22
다익스트라의 Ada 언어 제안에 대한 통렬한 비판

튜링상 수상자인 에즈거 다익스트라는 Ada 프로그래밍 언어에 대한 네 가지 제안(빨강, 녹색, 파랑, 노랑)을 검토했습니다. 그는 빨간색 제안을 "너무나 앞서나가면서도 동시에 뒤처지는, 혼란스러울 정도로 모순적인 방식"이라고 평가했습니다. 녹색 제안은 "기술적 무능력, 아마도 부정행위로 인해 더욱 악화되었을 것"으로 간주되었습니다. 파란색 제안은 "용납할 수 없을 정도로 복잡"했으며, 문서는 "기술 문서와 판매 설명의 얽히고설킨 혼합물"로 묘사되었습니다. 결국 다익스트라는 승리한 녹색 제안에 서구의 안보가 의존하는 것에 대해 우려를 표명했고, 소련 적군이 그것을 채택하는 것이 더 안전할 것이라고까지 암시했습니다. 이 일화는 다익스트라의 소프트웨어 엔지니어링 분야에서의 엄격한 기술 표준과 명확한 설계에 대한 확고한 헌신을 보여줍니다.

Debian이 패키지를 변경하는 이유

2025-05-22

1년 반 전에 "왜 Debian은 이런 방식인가?"라는 글을 썼는데, 그 이후로 Debian이 패키징하는 소프트웨어를 변경하는 이유에 대한 많은 질문을 받았습니다. 이 글에서는 그 이유를 간략하게 설명합니다. Debian 정책 매뉴얼에 명시된 정책을 준수하기 위해(예: 시스템 전체 구성이 /etc에 있고, 문서가 /usr/share/doc에 있는 등), 프로그램들이 서로 연동하여 작동하기 위해 변경이 필요한 경우(예: Unix 도메인 소켓의 위치나 어떤 Unix 사용자 계정으로 실행해야 하는지 등), 개인 정보 보호 및 보안상의 이유로 소프트웨어가 "외부에 연락하는" 코드나 Debian 패키징 시스템을 우회하여 소프트웨어를 업데이트하려는 코드를 제거하는 경우, 상위에서 수정되기 전에 버그를 수정하거나 이전 버전의 버그 수정을 백포팅하는 경우(사용자 경험 향상을 위해), 합법적으로 배포할 수 없는 것은 메인 패키지 아카이브에 포함하지 않는 경우(Debian 자유 소프트웨어 가이드라인에 따라), 매뉴얼 페이지가 없는 경우 추가하는 경우 등입니다. 요약하자면, 이러한 변경은 시스템의 안정성, 보안, 그리고 자유 소프트웨어 원칙 준수를 보장하기 위해 이루어집니다.

개발

이니고 퀼레스의 컴퓨터 그래픽 튜토리얼 보고

2025-05-22

1994년부터 컴퓨터 그래픽 학습과 지식 공유에 전념해 온 베테랑 이니고 퀼레스. 그의 웹사이트에는 SDF와 레이 마칭부터 프랙탈과 수학적 기법까지 광범위한 주제를 다룬 방대한 컴퓨터 그래픽 튜토리얼이 있습니다. 간결한 코드 스니펫과 명확한 설명이 특징이며, 다양한 기술 수준에 맞춰 제공됩니다. 비디오 튜토리얼과 기타 자료도 제공하며, 코드는 MIT 라이선스로 자유롭게 재사용할 수 있습니다.

개발

2012년 MacBook Pro에서 DuckDB 벤치마킹: 분산 아키텍처에 10년을 낭비했는가?

2025-05-22
2012년 MacBook Pro에서 DuckDB 벤치마킹: 분산 아키텍처에 10년을 낭비했는가?

이 기사에서는 2012년형 MacBook Pro에서 DuckDB를 벤치마킹하여 하드웨어 혁신 속도가 데이터 성장 속도를 능가했는지, 그리고 분산 아키텍처가 불필요해졌는지 조사합니다. 결과는 10년 된 노트북이 복잡한 분석 SQL 쿼리를 실행할 수 있음을 보여주지만, 최신 Mac보다 느리지만 합리적인 시간 내에 완료됩니다. 이는 지난 10년간의 분산 데이터 분석에 대한 집중에 대해, 단일 노드 데이터베이스 기술이 당시 이미 대규모 데이터 세트를 처리할 수 있는 능력을 가지고 있었음을 시사하며, 분산 시스템으로의 전환 필요성에 의문을 제기합니다.

개발

VS Code용 실험적 Kotlin 언어 서버

2025-05-22
VS Code용 실험적 Kotlin 언어 서버

Visual Studio Code용 공식 Kotlin 언어 서버(프리알파 버전)가 출시되었습니다. Kotlin 언어용 언어 서버 프로토콜을 구현합니다. IntelliJ IDEA와 해당 Kotlin 플러그인을 기반으로 구축되었으며, 대부분의 필수 기능을 지원하지만, 실험 단계이며 안정성을 보장하지 않습니다. 현재로서는 JVM 전용 Kotlin Gradle 프로젝트만 직접 지원됩니다. 개발 속도를 높이기 위해 일부 구현은 현재 비공개 소스이지만, 추후 완전한 오픈 소스화를 계획하고 있습니다. VS Code 확장 기능으로 쉽게 설치할 수 있지만, 다른 에디터의 경우 수동으로 구성해야 합니다. 사용자는 사용해 보고 피드백을 제공할 것을 권장하지만, 직접적인 코드 기여는 아직 지원되지 않습니다.

개발

거절에서 채택까지: 첫 페이지의 힘

2025-05-22
거절에서 채택까지: 첫 페이지의 힘

처음에 거절되었던 논문이 대대적인 수정을 거쳐 채택되었습니다. 저자는 중요한 첫 페이지(제목, 초록, 그림 1, 서론)에 초점을 맞춰 변경 사항을 자세히 설명합니다. 제목을 구체적이고 기억에 남도록 하고, 그림 1을 시각적으로 매력적으로 만들고, 초록과 서론을 간결하고 매력적으로 함으로써 논문의 영향력을 높였습니다. 또한, 기준선 추가, 절제, 통계적 유의성 보장 등 거절의 잠재적 이유를 해결하는 수정이 이루어졌습니다. 저자는 의사소통 개선이 과학적 영향력을 크게 향상시킨다는 결론을 내립니다.

LLM과 MCP 서버를 사용하여 이메일에서 정보 찾기

2025-05-22

저자는 대규모 언어 모델(LLM)이 자신의 이메일에 대한 읽기 전용 접근 권한을 갖도록 MCP 서버를 구축했습니다. Gemini(LLM의 한 종류)와의 대화를 통해 저자는 간단한 검색 및 검색 도구를 사용하여 이메일에서 Donovan의 아들의 이름을 찾는 방법을 보여줍니다. Gemini의 초기 검색 전략은 "son", "boy", "baby"와 같은 여러 키워드를 사용했지만, 대부분은 Donovan의 친척으로 이어졌습니다. 최종적으로 Gemini는 초기 검색 결과를 분석하고 이메일 제목과 내용을 분석하여 단서를 찾아내 아들의 이름이 Monty임을 성공적으로 알아냈습니다. 이 과정은 정보 검색을 위한 특정 도구와 결합된 LLM의 능력과 정확한 검색 전략의 중요성을 보여줍니다.

개발

순수 JavaScript로 CSV를 검색 가능한 HTML 테이블로 변환

2025-05-22
순수 JavaScript로 CSV를 검색 가능한 HTML 테이블로 변환

CSV 데이터 처리에 어려움을 겪고 계십니까? 이 순수 JavaScript 프로젝트는 CSV 파일을 아름답고, 검색 가능하며, 필터링 가능한 HTML 테이블로 변환합니다. 최소한의 코드로 데이터를 시각화하고, 형식을 사용자 지정하고, 다운로드를 활성화하고, 테이블을 매끄럽게 삽입할 수 있습니다. 데모를 확인하고 오늘 데이터 처리를 간소화하세요!

개발

레거시 코드 모험: COBOL 오디세이

2025-05-22

20만 줄의 COBOL 코드 유지보수 작업에서 많은 독창적인 해킹과 역사적인 특징들이 발견되었습니다. 저자는 10진수, 데이터 정의를 이용한 영리한 문자열 파싱, 국제화에 사용된 'REDEFINES' 문(스페인어 재정의 포함)을 발견했습니다. 작업의 비정상 종료를 위한 조기 종료도 구현되었고, 수수께끼 같은 파일에는 처음 800개의 자연수가 문자열 상수로 포함되어 있었습니다. 그리고 UNIX의 'dd' 명령어가 COBOL의 데이터 정의를 위한 'DD' 문에서 유래되었다는 사실이 밝혀지면서, 메인프레임 프로그래밍의 예상치 못한 유산이 드러났습니다.

arXivLabs: arXiv 기능에 대한 커뮤니티 협업

2025-05-21
arXivLabs: arXiv 기능에 대한 커뮤니티 협업

arXivLabs는 협력자가 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있도록 하는 프레임워크입니다. 참가자는 arXiv의 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 가치를 받아들여야 합니다. arXiv 커뮤니티를 개선할 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

iText Core 테이블 렌더링 최적화: 5분에서 7초로

2025-05-21
iText Core 테이블 렌더링 최적화: 5분에서 7초로

Apryse 엔지니어 Guust는 iText Core의 테이블 렌더링 성능을 최적화했습니다. 반복적인 테두리 병합 계산과 불필요한 태깅 오버헤드를 피함으로써, 5만 셀 테이블의 렌더링 시간이 5분에서 7초로 단축되었습니다. 최적화는 `CollapsedTableBorders#getVerticalBorder` 함수와 태깅 처리에 중점을 두었으며, 캐싱, 중복 함수 호출 제거, 일괄 태깅 추가 등을 통해 성능이 크게 향상되었습니다. 이 최적화는 iText Core 9.1.0에 포함되어 있습니다.

개발 PDF 렌더링

Rocky Linux 10, RISC-V 지원: 오픈소스의 큰 도약

2025-05-21

Rocky Linux 10을 준비하세요! 이번 릴리스는 중요한 이정표를 세웁니다. 바로 RISC-V 아키텍처에 대한 공식 지원입니다. Fedora RISC-V 커뮤니티와 Rocky의 AltArch SIG의 협업 덕분에 riscv64gc 빌드가 포함되어 StarFive VisionFive 2, QEMU, SiFive HiFive Premier P550 등의 플랫폼을 지원합니다. P550과 같은 특정 플랫폼에서는 일부 기능이 제한될 수 있지만, VisionFive 2와 QEMU에서는 바로 사용할 수 있는 기능이 큰 장점입니다. 2024년 초에 시작된 이 커뮤니티 주도의 이니셔티브는 Fedora RISC-V 상위 작업과의 오픈소스 협업의 힘을 보여줍니다.

개발

ACE-RISCV: RISC-V용 오픈소스 기밀 컴퓨팅 프레임워크

2025-05-21
ACE-RISCV: RISC-V용 오픈소스 기밀 컴퓨팅 프레임워크

ACE-RISCV는 공식적으로 검증된 보안 모니터를 갖춘 기밀 컴퓨팅 프레임워크를 제공하는 오픈소스 프로젝트입니다. 이식성을 고려하여 RISC-V를 대상으로 하며, 보안 모니터 구현의 공식 검증에 중점을 둡니다. 로컬 증명을 지원하며 ML-KEM, SHA-384, AES-GCM-256을 포함한 양자 내성 암호(PQC)를 사용합니다. 64비트 RISC-V 아키텍처에 대한 자세한 빌드 및 실행 지침이 제공됩니다.

개발

P 대 PSPACE: 공간 계산이 시간 계산보다 더 강력한가?

2025-05-21
P 대 PSPACE: 공간 계산이 시간 계산보다 더 강력한가?

계산 복잡도 이론의 핵심 질문 중 하나는 복잡도 클래스 P와 PSPACE의 관계입니다. P는 합리적인 시간 내에 해결 가능한 문제를 포함하는 반면, PSPACE는 공간 복잡도를 다룹니다. 시간과 달리 공간은 재사용될 수 있기 때문에 PSPACE가 P보다 크다는 견해가 일반적입니다. 이를 증명하려면 PSPACE 내에 다항식 시간 내에 해결할 수 없는 문제를 보여야 합니다. 이 글에서는 1975년 Hopcroft, Paul, Valiant가 공간이 시간보다 약간 더 우수하다는 것을 보여준 획기적인 연구를 되짚어보고, 그 이후로 진전이 멈춘 것을 설명합니다. Ryan Williams의 연구가 마침내 이러한 난관을 돌파하여 P 대 PSPACE 문제 해결에 새로운 통찰력을 제공했습니다.

개발 P 대 PSPACE

Appwrite Sites: 한 곳에서 웹사이트 배포 및 호스팅

2025-05-21
Appwrite Sites: 한 곳에서 웹사이트 배포 및 호스팅

Appwrite는 새로운 제품인 Sites를 출시했습니다. 이를 통해 Appwrite 내에서 직접 웹사이트와 웹 앱을 배포하고 호스팅할 수 있습니다. 여러 플랫폼을 전환하거나 복잡한 설정을 할 필요가 없습니다. 간단하게 구축, 배포, 그리고 공개만 하면 됩니다. Sites는 정적 사이트와 SSR 앱을 지원하며, Git, 글로벌 CDN, DDoS 보호 기능을 통합하고 Appwrite의 데이터베이스, 함수, 스토리지, 인증 서비스와 원활하게 통합됩니다. 원클릭으로 배포할 수 있는 템플릿이 여러 개 제공되며, 자체 호스팅도 지원합니다. Appwrite Sites는 2025년 7월 1일까지 무료입니다.

Google AI Studio: Gemini 2.5 Pro 기반 AI 앱 개발 강화

2025-05-21
Google AI Studio: Gemini 2.5 Pro 기반 AI 앱 개발 강화

Google AI Studio가 주요 업데이트를 통해 Gemini 2.5 Pro 모델을 통합하여 코드 생성 능력이 크게 향상되었습니다. 개발자는 간단한 텍스트, 이미지 또는 비디오 프롬프트를 사용하여 AI 기반 웹 앱을 빠르게 구축하고 배포할 수 있습니다. 새로운 버전에는 Imagen, Lyria RealTime, Veo와 같은 다중 모드 모델이 통합되어 Cloud Run으로의 원클릭 배포, 코드 버전 비교 및 롤백 기능을 제공합니다. 또한 네이티브 오디오 지원 및 URL 컨텍스트 도구가 추가되어 앱의 상호 작용 및 정보 검색 기능이 향상되었습니다.

Go 스케줄러: 겸손한 시작부터 강력한 엔진까지

2025-05-21
Go 스케줄러: 겸손한 시작부터 강력한 엔진까지

이 블로그 게시물은 Go 스케줄러의 진화를 심층적으로 살펴봅니다. 비효율적인 단일 글로벌 실행 대기열에서 고성능 GMP 모델(Goroutine, Machine, Processor)로의 여정을 추적합니다. Goroutine 생성, 선점, 시스템 호출 처리, netpoll의 네트워크 I/O 및 파일 I/O에서의 역할을 포함하여 GMP 모델의 각 구성 요소의 역할과 메커니즘을 자세히 설명합니다. 협력적 선점 및 비협력적 선점 메커니즘도 설명합니다. Go 런타임 소스 코드를 분석함으로써 독자는 Go의 동시성 모델을 더 깊이 이해하고 더 효율적인 동시 프로그램을 작성할 수 있습니다.

개발 스케줄러

Shopify의 스토어프런트 웹 컴포넌트: 간편한 전자상거래 통합

2025-05-21
Shopify의 스토어프런트 웹 컴포넌트: 간편한 전자상거래 통합

Shopify는 스토어프런트 웹 컴포넌트를 출시했습니다. 이는 Shopify의 전자상거래 기능을 어떤 웹사이트에도 쉽게 통합할 수 있는 HTML 컴포넌트 세트입니다. 최소한의 HTML로 제품, 컬렉션, 체크아웃을 표시할 수 있습니다. 이러한 컴포넌트는 Shopify 스토어프런트 API와의 상호 작용의 복잡성을 처리하여 복잡한 JavaScript의 필요성을 제거합니다. CSS와 HTML을 사용하여 맞춤형 쇼핑 경험을 만들고, 기존 콘텐츠에 포함하거나 완전히 새로운 페이지를 구축하는 데 적합합니다.

LlamaDev: LlamaIndex의 새로운 모노레포 관리 도구

2025-05-21
LlamaDev: LlamaIndex의 새로운 모노레포 관리 도구

650개가 넘는 Python 패키지를 가진 LlamaIndex의 모노레포 유지는 상당한 어려움을 안겨주었습니다. 처음에는 개별 프로젝트에 Poetry를, 오케스트레이션에 Pants를 사용했지만, 규모가 커짐에 따라 빌드 속도와 캐시 서버 유지 관리에 문제가 발생했습니다. 이를 해결하기 위해 LlamaIndex 팀은 LlamaDev를 개발했습니다. Poetry를 uv로 대체하고, 의존성 그래프와 테스트 트리거를 내부적으로 처리합니다. LlamaDev는 빌드 속도를 크게 향상시키고, 디버깅을 간소화하며, 개발자 경험을 개선하여 기여자들이 프로젝트에 참여하기 쉽도록 만들었습니다.

개발

Langfuse, 사용자 정의 대시보드 출시: LLM 사용 데이터의 잠재력을 해방하다

2025-05-21
Langfuse, 사용자 정의 대시보드 출시: LLM 사용 데이터의 잠재력을 해방하다

Langfuse는 출시 3일째에 사용자 정의 대시보드를 선보였습니다. Langfuse UI 내에서 LLM 사용 현황을 시각적으로 보여주는 강력한 방법입니다. 지연 추세 추적, 사용자 피드백 모니터링, 비용과 성능 상관 관계 분석 등 필요한 차트를 원하는 위치에 구축할 수 있습니다. 자체 분석 스택을 선호하는 사용자를 위해 동일한 쿼리 기능을 API를 통해 제공합니다. 이 게시물에서는 제품 구상부터 기술 구현, 테스트, 출시까지의 과정을 자세히 설명하고 유연하고 실시간으로 LLM 파이프라인에 대한 통찰력을 구축하는 데 얻은 교훈을 공유합니다. 데이터 모델 추상화, 유연하고 고성능인 쿼리 엔진 구축, 대시보드 빌더를 통해 Langfuse는 사용자 정의 대시보드를 성공적으로 제공했으며 베타 테스트와 사용자 피드백을 통해 반복적인 개선을 거쳐 더 많은 차트 구성 요소, 크기 조정 가능한 위젯, 향상된 도구 지원, 그리고 귀중한 사전 설정 테마를 제공하는 Langfuse 관리 대시보드를 추가했습니다.

개발 대시보드

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

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

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

개발

Chromium 포함 그래프 시각화: 150MB GraphML 파일 모험

2025-05-21
Chromium 포함 그래프 시각화: 150MB GraphML 파일 모험

이 게시물에서는 명령줄 도구인 clang-include-graph를 사용하여 Chromium의 방대한 포함 그래프를 시각화하는 방법을 자세히 설명합니다. 이 프로세스에는 compile_commands.json 파일을 생성하기 위해 Chromium을 빌드하고, 그런 다음 clang-include-graph를 사용하여 150MB의 GraphML 파일을 생성하는 작업이 포함되었습니다. 14만 개가 넘는 노드와 130만 개가 넘는 에지를 포함하는 이 파일은 Gephi를 사용하여 시각화되었습니다. Python 스크립트는 그래프를 분석하여 92개 노드의 강하게 연결된 구성 요소가 사이클의 99%를 차지하는 등 흥미로운 통계를 밝혀냈습니다. 저자는 다양한 시각화 레이아웃을 살펴보고 이러한 대규모 데이터 세트를 처리하는 과제에 대해 논의합니다.

개발

LLM 함수 호출은 확장되지 않습니다. 코드 오케스트레이션이 더 간단하고 효과적입니다.

2025-05-21
LLM 함수 호출은 확장되지 않습니다. 코드 오케스트레이션이 더 간단하고 효과적입니다.

툴 호출의 전체 출력을 LLM에 다시 제공하는 것은 비용이 많이 들고 속도가 느립니다. 이 기사에서는 구조화된 데이터 검색을 가능하게 하는 출력 스키마를 통해 LLM이 생성된 코드를 통해 처리를 오케스트레이션할 수 있다고 주장합니다. 이것은 더 간단하고 효과적인 접근 방식입니다. 툴 출력이 다음 단계를 결정하기 위해 메시지로 LLM에 다시 제공되는 기존 방법은 작은 데이터 세트에서는 잘 작동하지만 실제 규모에서는 실패합니다(예: Linear 및 Intercom MCP 서버의 큰 JSON 블롭). 이 기사에서는 코드 실행을 데이터 처리의 기본적인 방법으로 제안하고 변수를 메모리로 사용하며 코드를 사용하여 여러 함수 호출을 오케스트레이션하여 확장 가능한 데이터 처리를 구현함으로써 대규모 데이터 세트를 처리하는 LLM의 비용, 속도 및 잠재적인 데이터 손실 문제를 극복합니다. 여기에는 현재 초기 개발 단계에 있는 안전하고 상태 비저장 AI 런타임 환경이 필요합니다.

Devstral: 소프트웨어 엔지니어링 벤치마크에서 GPT-4.1-mini 능가하는 오픈소스 LLM

2025-05-21
Devstral: 소프트웨어 엔지니어링 벤치마크에서 GPT-4.1-mini 능가하는 오픈소스 LLM

Mistral AI와 All Hands AI가 협력하여 소프트웨어 엔지니어링 작업을 위한 에이전트형 대규모 언어 모델(LLM)인 Devstral을 출시했습니다. Devstral은 SWE-Bench Verified 벤치마크에서 뛰어난 성능을 보여주며 46.8%를 넘는 점수를 기록하여 이전의 오픈소스 모델보다 6% 이상 앞섰고, GPT-4.1-mini도 능가했습니다. 대규모 코드베이스 내의 맥락 관계 이해나 미묘한 버그 식별 등 복잡한 소프트웨어 엔지니어링 문제를 해결할 수 있습니다. Devstral은 경량으로 단일 RTX 4090 또는 32GB RAM이 장착된 Mac에서 실행되며, 로컬 배포, 엔터프라이즈 사용, Copilot 통합을 지원합니다. 이 모델은 오픈소스이며 API 및 다양한 다운로드 방식으로 제공됩니다.

개발

CRDT나 OT 없이 협업하는 텍스트 편집

2025-05-21

이 블로그 게시물에서는 충돌 없는 복제 데이터 유형(CRDT) 및 작업 변환(OT)의 복잡성을 피하는 협업 텍스트 편집에 대한 새로운 접근 방식을 제시합니다. 기본 아이디어는 각 문자에 전역적으로 고유한 ID를 할당하고 "뒤에 삽입" 작업을 사용하는 것입니다. 서버는 이러한 작업을 기반으로 상태를 그대로 업데이트하고 클라이언트는 낙관적인 로컬 업데이트를 위해 서버 조정을 사용합니다. 이 접근 방식은 CRDT/OT보다 간단하고 유연하며 풍부한 텍스트 처리 및 액세스 제어와 같은 사용자 정의 작업 및 기능을 허용합니다. 부속 npm 라이브러리인 Articulated가 구현을 지원합니다.

개발 협업 편집

Windows 11 크로스 디바이스 재개: 중단된 경험에 작별을 고하다

2025-05-21
Windows 11 크로스 디바이스 재개: 중단된 경험에 작별을 고하다

Microsoft는 Build 2025에서 Apple의 Handoff 기능과 유사한 Windows 11의 새로운 크로스 디바이스 재개 기능을 선보였습니다. 개발자는 이를 통해 여러 기기에서 앱 사용을 원활하게 이어갈 수 있습니다. 데모에서는 Spotify가 소개되어 사용자는 스마트폰에서 중단한 위치부터 Windows PC에서 음악 재생을 다시 시작할 수 있습니다. WhatsApp도 소개되었습니다. 이 기능은 Project Rome의 후속 기능으로 보이며, 기기 간 더욱 원활한 경험과 타사 개발자를 위한 Windows에서의 앱 발견 가능성 향상을 약속합니다.

Ruby의 블록, Proc, 람다: 클로저의 미묘한 차이점

2025-05-21
Ruby의 블록, Proc, 람다: 클로저의 미묘한 차이점

이 글에서는 Ruby에서 블록, Proc, 람다의 차이점을 자세히 설명합니다. 이 세 가지는 모두 코드를 그룹화하여 실행하기 위한 것이지만, 미묘한 차이점이 있습니다. Proc는 객체이므로 변수에 할당하거나 메서드를 호출할 수 있지만, 블록은 메서드 호출 구문의 일부일 뿐입니다. 메서드 호출에서는 블록을 최대 하나만 사용할 수 있지만, Proc는 여러 개 사용할 수 있습니다. 람다는 인수의 개수를 확인하지만, Proc는 확인하지 않습니다. 또한, 람다와 Proc는 `return` 키워드를 다르게 처리합니다. 이 글에서는 클로저, Proc와 람다의 이름 유래, 람다 계산과 익명 함수에 대해서도 간략하게 설명합니다.

개발

링크 시점 최적화(LTO): 컴파일러 최적화의 다음 단계?

2025-05-21
링크 시점 최적화(LTO): 컴파일러 최적화의 다음 단계?

이 글에서는 링크 시점 최적화(LTO) 기술을 다룹니다. LTO는 링크 단계에서 최적화를 수행하여 프로그램 성능을 향상시키는 기술입니다. 기존 컴파일러는 개별 파일 내에서 최적화를 수행하는 반면, LTO는 여러 파일을 통합하여 함수 인라이닝 및 코드 지역성 개선과 같은 보다 포괄적인 최적화를 수행할 수 있습니다. LTO는 상당한 성능 향상을 가져올 수 있지만(ProjectX 프로젝트 테스트 결과 실행 시간 9.2% 단축, 바이너리 크기 평균 20% 감소), 컴파일 및 링크 시간이 더 오래 걸리고 더 많은 메모리가 필요하다는 단점이 있습니다. 저자는 ProjectX와 ffmpeg 두 프로젝트에 대한 실험 결과를 비교하여 LTO의 장단점을 보여주고, 공격적으로 속도 최적화되지 않은 프로젝트에서는 LTO를 시도해 볼 것을 제안합니다. 최종 성능 향상은 프로젝트마다 다르다는 결론을 내립니다.

evolved.lua: Lua를 위한 빠르고 유연한 ECS 라이브러리

2025-05-21
evolved.lua: Lua를 위한 빠르고 유연한 ECS 라이브러리

evolved.lua는 Lua를 위한 빠르고 유연한 엔티티 컴포넌트 시스템(ECS) 라이브러리입니다. 아키타입 기반 방식으로 엔티티와 컴포넌트를 저장하고, 효율적인 반복 처리를 위해 배열 구조(SoA)를 사용합니다. 쿼리, 지연된 연산, 배치 연산, 엔티티 빌더와 같은 기능을 지원하여 복잡한 시스템 생성을 간소화합니다. luarocks를 통해 설치하거나 저장소를 복제할 수 있으며, 설명서에는 개요, 예제, 치트 시트가 포함되어 있습니다.

개발
1 2 80 81 82 84 86 87 88 214 215