read: fail

조인 처리를 위한 간단하고 효율적이며 견고한 해시 테이블

CedarDB의 쿼리 실행 엔진에서 해시 테이블은 관계형 조인을 해시 조인으로 구현하는 데 필수적입니다. 이 연구는 DaMoN'24 컨퍼런스에서 발표될 예정이며, 병렬 데이터 처리, 비일치 행의 효율적 필터링, 그리고 중복 스큐에 대한 견고성을 충족시키기 위해 맞춤형 해시 테이블을 개발했습니다.

러스트를 이용한 맨델브로트 렌더링의 놀라운 속도 향상 (2021)

맨델브로트 집합은 유명한 프랙탈로, 반복 알고리즘을 사용하여 렌더링할 수 있습니다. 이 글에서는 러스트를 활용하여 맨델브로트 집합을 효율적으로 렌더링하는 여러 방법을 탐구합니다. 특히, GPU 가속SIMD 명령어를 사용한 병렬 처리를 통해 상당한 속도 향상을 달성했습니다. 이러한 최적화 기법들은 맨델브로트 렌더링을 놀랍도록 빠르게 만들어 줍니다.

Zed 텍스트 에디터 개발하기

네이선 소보가 이전에 개발한 Atom 텍스트 에디터의 성능 문제를 개선하고자 Rust로 새로운 에디터 'Zed'를 개발했습니다. Zed는 응답성확장성을 갖춘 에디터로, 다양한 프로그래밍 언어 지원, 실시간 협업 편집 기능, 그리고 AI 보조 코딩 기능을 통해 사용자 경험을 혁신하고자 합니다.

M1에서 Vulkan 1.3, 단 한 달 만에 구현 성공

Apple 하드웨어에서 처음으로 완전한 Vulkan 1.3 사양을 구현한 'Honeykrisp' 드라이버가 개발되었습니다. 이 드라이버는 아직 최종 사용자에게는 공개되지 않았지만, 개발자들은 소스 코드를 이용할 수 있습니다. Vulkan 게임과 애플리케이션을 M1에서 실행할 수 있게 되어, 향후 Windows 게임을 Asahi Linux에서 실행하는 것을 목표로 합니다.

대문자의 함정: CamelCase에서 약어 다루기 (2012)

CamelCase 표기법은 인기 있는 단어 구분 방식이지만, 약어를 사용할 때 일관성을 잃기 쉽습니다. 이 글에서는 CamelCase와 약어를 함께 사용할 때의 도전과 일관된 접근 방식을 제안합니다. 약어를 일반 단어처럼 취급하면 이러한 문제를 해결할 수 있습니다.

NIST SP 800-108 표준 공격 분석

NIST SP 800-108은 가상 랜덤 함수를 사용한 키 파생에 관한 문서입니다. 2021년, NIST는 이 표준에 KMAC을 추가하여 업데이트했으나, Amazon의 암호학자들이 새로운 보안 문제를 발견했습니다. 특히, AES-CMAC을 사용할 때 키 제어 보안 문제가 발생하여, 공격자가 KDF 출력을 특정 값으로 조작할 수 있는 가능성이 있습니다. 이 문제는 최종 수정에서 해결되었습니다.

PQShield, Kyber / ML-KEM의 타이밍 누출 문제 해결로 PQC 구현 성숙도 향상

암호화 구현은 타이밍과 같은 물리적 부작용을 이용하는 사이드 채널 공격에 취약할 수 있습니다. PQShield는 이러한 문제를 해결하고 PQC(포스트 양자 암호화) 구현의 성숙도를 높이기 위해 노력하고 있습니다. 특히, ML-KEM의 'poly_frommsg' 함수에 존재하는 타이밍 취약점을 통해 비밀 키가 노출될 수 있는 문제를 개선했습니다.

아리안 알레그로 시나리오 플레이어 기반 호텔 체크인 터미널의 키오스크 모드 우회

호텔 체크인 터미널에서 아리안 알레그로 시나리오 플레이어를 사용하는데, 손님 검색란에 작은따옴표를 입력하면 애플리케이션이 충돌하여 윈도우 데스크탑에 접근할 수 있게 됩니다. 이는 호텔 네트워크 공격과 개인정보 유출, 방 키 발급 같은 기능에 접근할 수 있는 가능성을 열어줍니다.

구글 폰트와 작별할 시간: 캐시 성능 분석 (2020)

구글 폰트는 42백만 개 이상의 웹사이트에서 사용되고 있지만, 브라우저의 캐시 분할로 인해 성능 저하 문제가 발생하고 있습니다. Chrome v86, Safari, Firefox, Edge 등이 캐시 분할을 도입함에 따라, 이제 자체 호스팅이 더 나은 성능을 제공합니다.

개인정보 및 쿠키 정책 안내

저희 사이트를 계속 이용함으로써, 사용자는 쿠키 사용에 동의하게 됩니다. 이 쿠키는 콘텐츠 개인화, 광고 제공 및 트래픽 분석을 위해 사용되며, 이 정보는 광고 및 분석 파트너와 공유됩니다. 자세한 내용은 개인정보 및 쿠키 정책을 확인하세요.

단순한 규모가 아닌 이유

현대 컴퓨터가 강력하다고 해서 단일 시스템만으로 모든 고객을 서비스할 수 있다는 주장은 터무니없습니다. 분산 시스템은 가용성, 내구성, 자원 활용, 지연 시간 감소, 특수화, 보안 최적화, 변경 관리 등에서 중요한 이점을 제공합니다. 규모도 중요하지만, 비즈니스의 필요에 맞게 적절히 조정하는 것이 중요합니다.

2024년 모질라 빌더스 챌린지

12주간 진행되는 모질라 빌더스 챌린지는 새로운 제품이나 프로젝트의 디자인, 구축, 테스트 단계에 초점을 맞춥니다. 참가자들은 프로그램 후에 새로운 기능을 추가하거나 기존 프로젝트의 지속 가능성이나 품질을 향상시킬 수 있는 개념 증명을 개발할 것입니다.

고아 섹션 이해하기

고아 섹션은 링커 스크립트의 SECTIONS 명령에 의해 명시적으로 배치되지 않은 입력 섹션입니다. GNU ld는 이러한 고아 섹션을 위해 출력 섹션을 생성하고 적절한 위치에 삽입합니다. 반면, LLVM의 lld 링커는 출력 섹션의 순위를 매기고, 비슷한 섹션을 찾아 고아 섹션을 배치합니다. 이러한 처리 방식은 GNU ld와 lld 간의 행동 차이를 야기할 수 있습니다.

전자 부품의 독특한 값이 정해지는 이유

전자 부품들이 왜 그렇게 독특한 값을 가지고 있는지 궁금하셨나요? 1877년 프랑스 군사 엔지니어인 샤를 레나르가 발룬용 계류 케이블의 크기를 표준화하기 위해 선호 숫자 개념을 개발했습니다. 이 시스템은 나중에 E시리즈 값(E6, E12, E24 등)을 사용하여 전자 부품 값에 적용되었습니다. 이는 제조 및 재고 관리를 효율적으로 만들어 줍니다.

PowKiddy V90의 USB-C 충전 문제를 0.01달러로 해결하기

PowKiddy V90은 다양한 레트로 게임 콘솔을 에뮬레이트할 수 있는 리눅스 기반 휴대용 게임 기기입니다. 이 기기는 표준 USB-C 포트에서 충전되지 않는 문제가 있었으나, 저자는 USB-C 포트의 CC1과 CC2 핀에 5.1 kΩ 저항을 납땜하여 이 문제를 해결했습니다. 이로써 V90은 USB-C 전원 소스에서 제대로 충전할 수 있게 되었습니다.

고대 넷북에서 리눅스 실행하기

오래된 삼성 NC10 넷북에 Windows 10을 설치하려던 저자는 자원 제한으로 실패하고, 32비트 CPU를 지원하며 RAM 소모가 적은 antiX Linux로 전환했습니다. 추가적인 하드웨어 업그레이드와 소프트웨어 최적화를 통해 넷북에 새 생명을 불어넣었습니다. 이 프로젝트는 업그레이드 가능한 하드웨어와 효율적인 소프트웨어의 중요성을 일깨워 줍니다.

GPU 퍼즐: 퍼즐을 풀며 CUDA 배우기

이 인터랙티브 튜토리얼은 NUMBA를 사용하여 Python에서 직접 CUDA 커널을 작성하며 GPU 프로그래밍을 배울 수 있습니다. 벡터와 행렬 연산부터 복잡한 행렬 곱셈까지 다양한 코딩 연습을 통해 점차적으로 GPU 프로그래밍 개념을 익힐 수 있습니다.

PyPy '알려진 비트' JIT 최적화 통합 완료

Nico Rittinghaus와 함께 개발한 PyPy의 새로운 JIT 최적화가 통합되었습니다. 이 최적화는 정수 변수의 특정 비트가 0 또는 1임을 알고 이를 활용하여 비트 조작 코드를 더 빠르게 실행할 수 있게 합니다. 이는 비트 조작을 많이 사용하는 코드에서 상당한 성능 향상을 가져올 수 있습니다.

수학 함수 구현을 위한 DSL

파벨 판체카, 이안 브릭스, 야쉬 래드가 개발한 MegaLibm은 수학 함수 구현을 간소화하고 안전하게 만드는 DSL입니다. 이 시스템은 타입 시스템을 사용하여 구현 중 발생할 수 있는 일반적인 버그를 잡아내고, 성능 최적화를 위한 튜닝 파라미터를 제공합니다. MegaLibm은 주피터 노트북 환경에서도 잘 작동하여, 반복적인 워크플로우를 가능하게 합니다.

일정 없는 길

새로운 접근법인 '스케줄-프리(Schedule-Free)' 방식은 최적화 중단 시점 T를 지정할 필요가 없으며, 기존의 학습률 스케줄에 비해 최첨단 성능을 보여줍니다. 이 방법은 복잡한 문제부터 대규모 딥러닝 문제에 이르기까지 다양한 문제에서 효과적입니다.