Category: 개발

최고의 프로그래머들이 생산성 향상을 위해 LLM을 사용하는 방법

2025-07-21

베테랑 프로그래머 antirez는 Gemini 2.5 PRO와 Claude Opus와 같은 대규모 언어 모델을 18개월 동안 프로그래밍에 사용한 경험을 공유합니다. 그는 현재의 LLM은 독립적인 프로젝트 완료 도구가 아니라 강력한 조수로 사용하는 것이 가장 좋다고 주장합니다. 문제를 명확하게 설명하고 효과적으로 반복 처리함으로써 LLM은 버그 제거, 아이디어 신속하게 탐색, 페어 디자인 참여, 심지어 전문 분야 밖의 기술 습득에도 도움이 될 수 있습니다. 그러나 antirez는 LLM의 잠재력을 최대한 발휘하려면 충분한 맥락을 제공하고, 적절한 모델을 선택하고, 코드를 항상 제어하며, 자동화된 에이전트에 대한 의존성을 피하는 것이 중요하다고 강조합니다. 이를 통해서만 코드의 품질을 보장하고 효율성을 극대화할 수 있습니다.

개발

OpenBSD 주요 업데이트: FILE 객체 구조체 불투명화

2025-07-21

OpenBSD는 최근 표준 입출력 라이브러리의 FILE 객체 내부 구조를 불투명하게 만드는 주요 시스템 업데이트를 진행했습니다. 즉, 프로그램이 FILE 객체의 내부 구조에 직접 접근할 수 없게 되었습니다. 이 변경 사항은 libc 및 이에 종속된 많은 라이브러리(libcrypto, libtls, libssl 등)에 광범위하게 영향을 미칩니다. 원활한 전환을 위해 일부 보조 심볼은 임시로 유지되지만, 추후 제거될 예정입니다. 잠재적 문제를 방지하려면 스냅샷 업그레이드를 적극 권장합니다.

개발

SVG 필터를 사용한 손그림 '끓는' 효과 시뮬레이션

2025-07-21
SVG 필터를 사용한 손그림 '끓는' 효과 시뮬레이션

이 글에서는 손으로 그린 애니메이션에서 자주 볼 수 있는 '끓는' 효과를 SVG 필터를 사용하여 시뮬레이션하는 방법을 설명합니다. 이 효과는 이미지 가장자리에 미세한 왜곡을 적용하여 미묘한 움직임을 만듭니다. feTurbulence 및 feDisplacementMap 필터를 사용하여 노이즈 텍스처를 생성하고 이미지에 적용하는 방법과 JavaScript를 사용하여 필터 매개변수를 애니메이션화하여 '끓는' 효과를 만드는 방법을 자세히 설명합니다. 대화형 데모를 통해 매개변수를 조정하고 효과의 변화를 관찰할 수 있습니다. 간단한 SVG 필터와 JavaScript만으로 웹에서 사실적인 손그림 애니메이션 효과를 시뮬레이션하는 데 성공했습니다.

개발

XMLUI: 누구나 할 수 있는 웹 개발

2025-07-21
XMLUI: 누구나 할 수 있는 웹 개발

XMLUI는 Visual Basic의 구성 요소 모델의 사용 편의성을 최신 웹 개발에 적용합니다. 간단한 XML 마크업을 사용하여 개발자는 React 또는 CSS에 대한 깊이 있는 전문 지식 없이도 반응형이고 테마가 적용된 웹 애플리케이션을 구축할 수 있습니다. 미리 만들어진 구성 요소와 선언적 데이터 바인딩을 통해 프로세스가 간소화됩니다. LLM과의 통합을 통해 개발이 더욱 효율화되고 협업적인 생성과 쉬운 유지 관리가 가능해집니다. XMLUI는 솔루션 구축자를 지원하여 전문적인 프런트엔드 전문가 없이도 사용자 인터페이스를 만들 수 있도록 하는 것을 목표로 합니다.

개발

시간 기반 로깅이 카운트 기반 로깅보다 낫다

2025-07-21

소프트웨어 엔지니어링에서 로깅 전략은 매우 중요합니다. 이 글에서는 많은 이벤트를 처리할 때 시간 기반 로깅(예: X초마다 로깅)이 카운트 기반 로깅(예: X메시지마다 로깅)보다 낫다고 주장합니다. 카운트 기반 로깅은 부하에 따라 로깅 빈도가 크게 달라져 로깅이 너무 적거나 너무 많을 수 있습니다. 시간 기반 로깅은 일정한 로깅 속도를 유지하여 로깅이 과다함으로 인한 성능 저하나 로깅이 부족함으로 인한 관측 가능성 문제를 방지합니다. 저자는 의사 코드 예시와 비용편익 분석을 사용하여 주장을 뒷받침하고 효율적인 로깅 전략에 대한 새로운 관점을 제시합니다.

개발

connmap: 세계 지도에서 네트워크 연결 시각화

2025-07-21
connmap: 세계 지도에서 네트워크 연결 시각화

connmap은 현재 네트워크 피어의 지리적 위치를 세계 지도에 표시하는 X11 데스크톱 위젯입니다. Wayland에서도 작동합니다! 설치는 간단합니다. 저장소를 복제하고, 종속성(README에 나열됨)을 설치하고, 실행 파일을 실행하십시오. 지도 크기, 위치 및 업데이트 간격을 사용자 지정할 수 있습니다. 현재 IPv4만 지원하며, 주로 i3wm에서 테스트되었습니다.

동적 계획법: 당신이 생각하는 것이 아니다

2025-07-21

알고리즘 학습에서 "동적 계획법"이라는 용어는 종종 혼란을 야기합니다. "동적"이란 그 변화성을 의미하는 것이 아니라 "계획"이라는 프로그래밍의 의미를 가리킵니다. 이는 1950년대 엔지니어들이 건설 프로젝트를 "프로세스 스케줄링"으로 계획했던 데서 유래합니다. 컴퓨터 과학에서 동적 계획법이란 문제를 해결하는 데 필요한 하위 단계의 순서를 계획하는 것을 의미합니다. 예를 들어 피보나치 수열을 계산하는 경우 "프로그램"이란 의존 관계 순서대로 fib(2)부터 fib(10)까지 계산하는 단계의 시퀀스입니다. 이는 상향식 또는 하향식으로 계획할 수 있습니다. 최종 계획은 동일하며, 둘 모두 동적 계획법으로 간주됩니다. 리처드 벨만은 국방 장관의 "수학 연구"에 대한 혐오감을 피하기 위해 이 용어를 만들었으며, "동적"이라는 형용사는 경멸적으로 사용할 수 없기 때문에 "동적 계획법"이라는 용어를 선택했습니다.

개발

GitHub 코드 제안 적용 제한 사항

2025-07-20
GitHub 코드 제안 적용 제한 사항

GitHub에서 코드 제안을 일괄 적용할 때 여러 제한 사항이 있습니다. 제안에는 코드 변경이 필요하며, 닫힌 풀 리퀘스트, 변경 사항의 일부, 한 줄에 여러 제안이 있는 경우, 이미 적용되거나 해결된 제안, 보류 중인 검토, 여러 줄의 주석, 병합 대기 중인 풀 리퀘스트에는 적용할 수 없습니다. 또한, 일시적으로 제안을 적용할 수 없는 경우도 있습니다.

개발

GitHub 코드 제안 적용 제한: 단일 커밋 제약

2025-07-20
GitHub 코드 제안 적용 제한: 단일 커밋 제약

GitHub에서 코드 제안을 일괄 적용하는 데에는 여러 가지 제한이 있습니다. 코드 변경이 없거나, 풀 리퀘스트가 닫혀 있거나, 변경 사항의 일부를 보고 있거나, 한 줄에 여러 제안이 있거나, 삭제된 줄이거나, 제안이 적용되었거나 해결됨으로 표시되었거나, 보류 중인 검토에서 오거나, 여러 줄의 주석이거나, 풀 리퀘스트가 병합 대기열에 있는 경우에는 제안을 적용할 수 없습니다. 또한 알 수 없는 이유로 "현재 이 작업을 수행할 수 없습니다."라는 오류가 발생할 수 있습니다.

개발

Arch Linux에서 macOS로: 박사과정 학생의 '게으른' 설정

2025-07-20

신경 AI 연구 박사 과정 학생이자 컴퓨터 엔지니어인 저자는 9년 동안 Arch Linux를 사용한 후 새로운 MacBook Pro로 전환했습니다. 이 글에서는 이들이 하루 만에 새 기기를 설정하여 이전 워크플로우를 최대한 재현한 방법을 자세히 설명합니다. 그들은 패키지 관리자로 Nix, 윈도우 관리자로 AeroSpace, 런처로 Raycast를 사용하고 zsh 쉘과 Zed 에디터와 같은 익숙한 도구를 유지했습니다. macOS의 패키지 관리는 Arch Linux만큼 편리하지 않지만, 더 안정적인 하드웨어와 향상된 사용자 경험을 위해 타협했습니다.

io_uring과 듀얼 WAL을 사용한 데이터베이스 처리량 10배 향상

2025-07-20
io_uring과 듀얼 WAL을 사용한 데이터베이스 처리량 10배 향상

복잡한 데이터베이스를 구축하는 과정에서 저자는 io_uring과 듀얼 WAL 설계를 사용하여 성능 향상을 시도했습니다. 기존 WAL 접근 방식(쓰기 후 적용)은 성능 병목 현상을 유발합니다. '쓰기 의도'와 '쓰기 완료'를 두 개의 WAL로 분리하고 io_uring의 비동기 I/O를 활용하여 처리량을 10배 향상시켰습니다. 이 설계는 의도를 비동기적으로 쓰고 완료 후 완료 레코드를 씁니다. 복구 시에는 의도와 완료 레코드를 모두 갖는 작업만 적용되어 데이터 일관성이 보장됩니다. 저자는 Zig 언어와 Poro 프로젝트(실험적인 키-밸류 데이터베이스)를 사용하여 이 방법의 효과를 검증하고 하드웨어 병렬 처리, 배치 처리, 유연한 일관성 모델의 중요성을 강조했습니다.

개발

A9/A11 기기에서의 결정론적 커널 악용을 위한 코프로세서 활용

2025-07-20

Trigon 커널 악용의 업데이트된 버전이 출시되어 A9(X) 및 A11 기기 지원이 확장되었습니다. 이 블로그 게시물에서는 KTRR 제한을 극복하고 다양한 기기에서 커널 기본 주소를 찾는 데 사용된 어려운 기술을 자세히 설명합니다. 새로운 접근 방식은 IORVBAR 레지스터와 코프로세서(특히 Always-On 프로세서)를 활용하여 코프로세서 펌웨어를 조작하여 커널에 대한 임의 읽기/쓰기를 달성하고, 최종적으로 A9 및 A11 기기에서의 성공적인 악용을 위해 커널 보호를 우회합니다.

Go 1.24 메모리 누수 조사: 예상치 못한 발견과 스위스 테이블의 놀라움

2025-07-20
Go 1.24 메모리 누수 조사: 예상치 못한 발견과 스위스 테이블의 놀라움

Go 1.24 출시 후 데이터 처리 서비스에서 예상치 못한 메모리 사용량 증가가 관찰되었습니다. 조사 결과, Go 런타임의 메모리 할당 함수 리팩토링으로 인해 최적화가 의도치 않게 제거되어 큰 객체 할당 시 불필요한 메모리 영역 초기화가 발생하여 상주 집합 크기(RSS)가 증가한 것으로 나타났습니다. Go 런타임 내부 메트릭은 변화가 없었지만, 시스템 레벨 메트릭은 메모리 사용량의 현저한 증가를 보였습니다. Go 커뮤니티와의 협업을 통해 최종적으로 문제를 파악하고 수정했습니다. 놀랍게도 Go 1.24의 새로운 "스위스 테이블" 기능은 고 트래픽 환경에서 메모리 사용량을 크게 줄여 이전의 회귀를 상쇄할 뿐만 아니라 추가적인 메모리 절약 효과를 가져왔습니다.

개발

Rust의 보로우 체커: 축복인가 저주인가?

2025-07-20

보로우 체커 덕분에 속도와 안전성을 모두 갖춘 언어로 찬사를 받는 Rust이지만, 이 글에서는 비판적인 시각을 제시합니다. 저자는 보로우 체커가 지나치게 보수적인 규칙 때문에 완벽하게 정상적인 코드를 거부하여 심각한 인체 공학적 문제를 야기한다고 주장합니다. 여러 예시를 통해 불필요한 리팩토링이 필요함을 보여줍니다. 이 글에서는 Rust의 안전성에서 보로우 체커의 역할이 과대평가되었다는 의문을 제기하고, Python이나 Julia와 같은 가비지 컬렉션 언어와 비교합니다. 동시 처리에서 보로우 체커의 이점을 인정하면서도, 저자는 단일 스레드 컨텍스트에서는 오버헤드가 장점을 능가한다고 주장합니다. 강력한 타입 시스템과 풍부한 표준 라이브러리 등 Rust의 장점이야말로 진정한 성공 요인이라고 강조합니다.

Rust에서 specialization 우회하기: 함수 포인터의 영리한 활용

2025-07-20
Rust에서 specialization 우회하기: 함수 포인터의 영리한 활용

Rust로 FAT 드라이버를 개발하는 동안 저자는 specialization이라는 문제에 직면했습니다. 이 기능은 현재 안정적인 Rust 버전에서는 사용할 수 없습니다. 매크로와 제네릭 열거형을 사용한 시도는 실패했고, 최종적으로 함수 포인터를 영리하게 사용하여 specialization과 유사한 효과를 달성했습니다. 이 방법은 성능과 메모리 오버헤드가 있지만, 특정 상황에서는 안정적인 Rust 버전에서 대안을 제공합니다. 저자는 더 효율적이고 깔끔한 솔루션을 제공하는 specialization 기능의 안정화를 촉구합니다.

LLM 에이전트를 위한 CLI 도구 및 API 개선

2025-07-20
LLM 에이전트를 위한 CLI 도구 및 API 개선

저자는 리버스 엔지니어링 작업 자동화에 대규모 언어 모델(LLM) 에이전트를 사용할 때 기존 명령줄 도구 및 API 설계의 한계를 발견했습니다. 특히 로컬 모델의 작은 컨텍스트 창을 사용하는 경우 더욱 그러했습니다. API는 도구 호출을 줄이기 위해 충분한 정보를 제공하는 것과 컨텍스트 창 오버플로를 방지하는 것 사이의 균형을 맞춰야 합니다. 고려된 해결책에는 개선된 docstring, 헬퍼 함수, 프리커밋 후크 등이 포함됩니다. 또한 출력을 캐싱하고, 구조화하고, 남은 줄 수를 보고하는 래퍼와 디렉토리 정보를 제공하는 쉘 후크 등 추가적인 개선 사항이 제안되었습니다. 저자는 기존 CLI가 LLM 개선이 필요하며, LLM 에이전트의 사용자 경험을 향상시키기 위해 LLM 확장 CLI의 전체 세트나 사용자 지정 LLM 쉘이 필요할 수 있다고 결론지었습니다.

개발

BorgBackup: 효율적이고 안전한 중복 제거 아카이브 도구

2025-07-20

BorgBackup(Borg)는 압축과 인증된 암호화를 결합한 오픈소스 중복 제거 아카이브 도구입니다. 공간 효율적인 스토리지와 강력한 보안을 제공합니다. lz4, zstd, zlib, lzma 등 다양한 압축 알고리즘을 지원하며 Linux, macOS, BSD 등 여러 플랫폼에 쉽게 설치할 수 있습니다. 대규모 활성 커뮤니티의 지원을 받는 Borg는 마운트 가능한 백업을 제공합니다. 그리고 매우 중요한 점은 항상 백업을 확인하는 것입니다!

개발

백업: 단순 복사를 넘어서

2025-07-20
백업: 단순 복사를 넘어서

데이터 백업의 중요성은 종종 과소평가됩니다. 이 글은 저자의 경험을 바탕으로 다양한 데이터 손실 시나리오를 설명하고, 백업이 단순한 복사가 아니라 포괄적인 계획과 전략이 필요함을 강조합니다. 전체 디스크 백업과 개별 파일 백업의 장단점, 데이터 일관성을 보장하는 데 스냅샷이 하는 중요한 역할을 탐구합니다. 또한 저자는 중앙 집중식 백업 서버 아키텍처와 효율적인 백업 시스템을 위한 지침 원칙을 공유하고, FreeBSD 기반 백업 서버 구축에 대해 자세히 설명하는 후속 글을 예고합니다.

개발

Zig에서 동적 디스패치를 통한 다형성 구현

2025-07-19

많은 언어와 달리 Zig는 내장 인터페이스가 없습니다. 하지만 이는 다형성을 배제하는 것이 아닙니다. 이 글에서는 vtable 인터페이스를 사용하여 Zig에서 동적 디스패치를 통한 다형성을 구현하는 방법을 자세히 설명합니다. 이 접근 방식은 인터페이스와 구현을 명확하게 분리하여 구현 유형을 변경할 필요 없이 동적 디스패치를 가능하게 합니다. 함수 포인터를 사용하여 vtable을 구성하고 `implBy` 함수를 사용하여 구현과 인터페이스를 연결함으로써 객체 지향 언어의 인터페이스 기능을 효과적으로 모방합니다. 따라서 서로 다른 구현을 배열이나 맵에 저장할 수 있습니다. 약간의 보일러플레이트 코드가 필요하지만, 장점은 구현 유형에 대한 영향을 최소화하면서 깔끔하고 유연하며 재사용 가능한 접근 방식입니다.

개발 다형성

AI를 활용한 소프트웨어 개발: 4개의 문서와 영원한 초보자

2025-07-19
AI를 활용한 소프트웨어 개발: 4개의 문서와 영원한 초보자

저자는 AI 페어 프로그래머인 Claude를 사용하여 4일 만에 Protocollie라는 소프트웨어를 개발했습니다. 이는 숙련된 프로그래밍 기술이 아닌, 4개의 문서(아키텍처 개요, 기술적 고려 사항, 워크플로우 프로세스, 스토리 분해)를 통해 AI를 안내하여 모호한 아이디어를 작동하는 코드로 변환한 것입니다. '벽에 스파게티를 던지는' 것에 비유되는 이 프로세스는 계획보다 실험을 중시하며, AI 지원 프로그래밍 환경의 변화를 보여줍니다. 이는 프로그래머 역할의 변화와 기술 발전이 전문 지식 축적을 앞서는 이 새로운 시대의 불확실성을 받아들이는 것을 보여줍니다.

개발

Linux Secure Boot의 Microsoft 키 만료 임박: 시간과의 싸움

2025-07-19

Linux Secure Boot 시스템은 9월에 만료되는 Microsoft 키에 의존합니다. 이 키는 Linux 커널을 부팅하는 데 사용되는 1단계 UEFI 부트로더(shim)에 서명하는 데 사용됩니다. 2023년부터 대체 키가 제공되었지만, 많은 시스템에 아직 설치되지 않았으며 하드웨어 공급업체의 펌웨어 업데이트가 필요할 수 있습니다. 이는 Linux 배포판과 사용자에게 추가 작업을 부과합니다. LVFS와 fwupd를 통한 펌웨어 업데이트가 필요할 수 있지만 성공이 보장되지는 않습니다. 오래된 BIOS 시스템에서는 용량 부족 문제가 발생하여 BIOS를 재설정해야 할 수도 있습니다. 공급업체의 업데이트에도 문제가 있으며 일부 제조업체는 플랫폼 키에 대한 액세스 권한을 잃었습니다. 궁극적으로 Secure Boot를 비활성화하는 것이 일부 경우 유일한 옵션이 될 수 있습니다.

개발

신경 데이터의 미래를 구축할 소프트웨어 엔지니어 채용

2025-07-19
신경 데이터의 미래를 구축할 소프트웨어 엔지니어 채용

Piramidal은 획기적인 신경 데이터 플랫폼의 백엔드 인프라를 구축하고 유지 관리할 소프트웨어 엔지니어를 모집하고 있습니다. 이 역할에는 최첨단 모델 배포에 대한 ML 엔지니어와의 긴밀한 협력과 제품 및 내부 팀과의 직접적인 협력을 통한 중요한 문제 해결이 포함됩니다. 이상적인 지원자는 제품 중심 회사에서 5년 이상의 경험, Python 및 기타 백엔드 언어 능숙도, 컨테이너화(Kubernetes), 관계형 데이터베이스(Postgres/MySQL) 및 웹 기술(JavaScript, React)에 대한 전문 지식을 갖추고 있습니다. Piramidal은 기술을 사용하여 인간의 잠재력을 향상시키고 인지적 자유를 지지하는 데 전념하고 있습니다.

개발

AI 글쓰기를 거부하는 이유

2025-07-19
AI 글쓰기를 거부하는 이유

한 작가가 대규모 언어 모델(LLM)을 사용한 글쓰기를 거부하는 이유를 설명합니다. LLM에 과도하게 의존하면 독창성이 떨어지고, 자기 주도적 사고력이 약해지며, 심오한 사고와 개인적인 연상이 글쓰기에서 사라진다고 주장합니다. MIT와 영국의 연구를 인용하여 LLM이 인지적 게으름과 학습 동기 저하로 이어질 수 있음을 시사합니다. 또한, 작가는 LLM이 생성한 텍스트는 개성과 감정이 부족하며, 독서 중에 생겨나는 독특한 연상과 통찰력을 포착하지 못한다고 생각합니다. 이는 작가가 추구하는 깊이 있는 독서 경험과 모순됩니다. 결국 그는 독립적인 글쓰기를 선택하며, 이것이 진정한 독창성과 신뢰성을 유지하는 유일한 방법이라고 생각합니다.

YouTube 자동 번역 방지 Firefox 확장 프로그램

2025-07-19
YouTube 자동 번역 방지 Firefox 확장 프로그램

이 오픈소스 Firefox 데스크톱 애드온은 YouTube의 자동 번역을 방지합니다. 비디오 제목, 오디오 트랙, 설명은 원래 언어로 유지되며 선택한 언어의 실제 자막만 표시됩니다(자동 생성된 자막은 항상 무시됩니다). 이 애드온은 무료로 사용할 수 있지만 Ko-fi를 통해 개발을 지원할 수 있습니다. Chrome 웹 스토어에서도 사용할 수 있습니다.

Ilograph 팀 및 팀+ 구독 비교

2025-07-19
Ilograph 팀 및 팀+ 구독 비교

Ilograph는 팀 협업 다이어그램을 위한 두 가지 구독 플랜인 팀 및 팀+를 제공합니다. 팀 플랜은 최대 5명의 편집자와 20명의 뷰어를 지원하며, 무제한 팀 다이어그램, 다이어그램 기록 및 사용자 지정 아이콘을 제공합니다. 팀+ 플랜은 6명 이상의 편집자와 무제한 뷰어를 지원하며, 싱글 사인온, 다이어그램 내보내기, API 액세스 및 공유 가능한 링크와 같은 프리미엄 기능을 추가합니다. 가장 적합한 플랜은 팀 규모와 고급 기능 요구 사항에 따라 다릅니다.

폴리곤 수가 아닌 마이크로 트라이앵글이 렌더링 성능의 진정한 적이다

2025-07-19
폴리곤 수가 아닌 마이크로 트라이앵글이 렌더링 성능의 진정한 적이다

폴리곤 수가 렌더링 성능을 결정한다는 기존의 생각은 구식입니다. 현대 렌더링은 마이크로 트라이앵글의 영향을 크게 받습니다. 이 글에서는 매우 작은 삼각형(10x10픽셀 미만)은 GPU가 삼각형이 1픽셀만 차지하더라도 2x2픽셀 블록 전체를 계산하기 때문에 기하급수적으로 렌더링 비용이 증가한다고 주장합니다. 저자는 "와이어프레임 뷰 밀도"에 주목하여 뷰가 솔리드에 가까워지면 낮은 LOD로 전환하거나, 먼 객체에는 단일 LOD와 임포스터를 사용할 것을 제안합니다. 에픽의 나나이트 기술은 컴퓨트 셰이더와 스크린 공간 셰이더를 사용하여 마이크로 트라이앵글의 렌더링 비용을 최소화합니다.

개발 LOD 최적화

14KB 규칙: 웹사이트 크기가 생각보다 중요한 이유

2025-07-19

14KB 웹페이지가 15KB 웹페이지보다 훨씬 빠른 이유는 무엇일까요? 그 답은 서버가 처음 데이터를 전송하는 방식을 제어하는 알고리즘인 TCP 슬로우 스타트에 있습니다. 이 기사에서는 TCP가 신뢰할 수 있는 데이터 전송을 어떻게 보장하고 슬로우 스타트가 대역폭 사용을 어떻게 최적화하는지 설명합니다. 위성 인터넷과 같은 고지연 네트워크에서는 그 영향이 극적으로 나타납니다. 왕복 시간마다 상당한 지연이 추가되기 때문입니다. 이 기사에서는 최적의 사용자 경험을 위해 웹사이트 크기를 14KB 미만으로 줄이거나, 적어도 처음 14KB에 중요한 콘텐츠를 포함할 것을 제안합니다. HTTP/2 및 HTTP/3이 언급되지만 이 원칙의 중요성을 부정하는 것은 아닙니다.

개발

Wii U Boot1 악용: 데이터 복구를 통한 'Paid the Beak' 발견

2025-07-19

이 글에서는 파손된 닌텐도 Wii U 공장 테스트용 SD 카드의 데이터 복구를 통해 예상치 못하게 Boot1 취약점을 발견하고 악용한 팀의 과정을 자세히 설명합니다. WiiCurious가 많은 손상된 SD 카드를 수집했고, DeadlyFoez는 뛰어난 납땜 기술을 사용하여 데이터를 복구하고 읽었습니다. 리버스 엔지니어인 Rairii는 이 데이터에서 Boot1 취약점을 발견하고 'Paid the Beak'이라는 악용 코드를 개발했습니다. 이를 통해 대부분의 Wii U 소프트웨어 브릭을 복구할 수 있습니다. 또한, 팀은 Raspberry Pi Pico와 PICAXE 08M2를 사용하여 취약점을 트리거하는 데 필요한 공장 전용 도구를 모방하는 방법을 개발했습니다. 이 악용 코드는 콘솔을 분해하거나 납땜할 필요가 없으므로 Wii U 브릭 복구를 더욱 쉽게 합니다.

개발 악용 코드

Guix 사용 후기: Nix 사용자의 관점

2025-07-19

숙련된 Nix 사용자가 Guix 시스템을 사용해 본 경험을 공유합니다. Guix는 GNU 시스템이므로 소프트웨어 자유를 중시하며, 최신 하드웨어를 지원하려면 nonguix를 사용해야 합니다. 이 글에서는 Guix와 Nix의 아키텍처 차이점에 중점을 둡니다. Nix는 모듈식 설계를 채택하여 패키지 버전의 유연한 조합을 가능하게 하지만, Guix는 모든 패키지를 고정된 프로파일에 통합하므로 업데이트하려면 시스템을 다시 빌드해야 합니다. 문서, 성능, init 시스템을 비교한 결과, Guix의 문서는 우수하지만 성능은 느린 것으로 나타났습니다. systemd 대신 Shepherd를 사용합니다. 전반적으로 Guix는 매력적인 대안이지만, 학습 곡선이 가파르며 Scheme에 대한 지식이 필요합니다.

개발

cuBLAS와 CUTLASS를 뛰어넘는 새로운 행렬 곱셈 커널 엔진

2025-07-19
cuBLAS와 CUTLASS를 뛰어넘는 새로운 행렬 곱셈 커널 엔진

행렬 곱셈은 특히 AI 분야에서 속도가 모델 성능에 직접적인 영향을 미치기 때문에 현대 컴퓨팅의 핵심입니다. NVIDIA의 Tensor Core와 같은 하드웨어 가속기는 효율적이지만 유연성이 부족합니다. 본 논문에서는 다양한 플랫폼에서 최적화된 행렬 곱셈 커널을 생성하는 새로운 엔진인 CubeCL을 소개합니다. CubeCL은 계층적 추상화(Tile, Stage, Global, Batch Matmul)와 다양한 알고리즘(Simple, Double Buffering, Ordered 등)을 사용하여 이를 달성합니다. GPU 아키텍처의 특징, 예를 들어 플레인 동기 실행 및 결합된 메모리 액세스를 효과적으로 활용하고, 더블 버퍼링과 같은 기술을 사용하여 메모리 대기 시간을 숨깁니다. 벤치마크 결과는 다양한 GPU(NVIDIA, AMD, Apple Silicon)에서 상당한 성능 향상을 보여주며, 경우에 따라 cuBLAS 및 CUTLASS를 능가하는 결과를 보입니다.

개발
1 2 38 39 40 42 44 45 46 214 215