GitHub Actions 러너의 디스크 공간 확보 방법
GitHub Actions 러너에서 디스크 공간 부족으로 문제가 발생했을 때, Arrow 프로젝트의 스크립트를 활용해 Ubuntu 22.04 러너의 공간을 확보하는 방법을 소개합니다. 이 스크립트는 간단히 다운로드하여 실행만 하면 되며, macOS 러너에는 다른 해결책이 필요합니다.
GitHub Actions 러너의 디스크 공간 확보 방법
GitHub Actions 러너에서 디스크 공간 부족으로 문제가 발생했을 때, Arrow 프로젝트의 스크립트를 활용해 Ubuntu 22.04 러너의 공간을 확보하는 방법을 소개합니다. 이 스크립트는 간단히 다운로드하여 실행만 하면 되며, macOS 러너에는 다른 해결책이 필요합니다.
프랙탈의 단순함
소프트웨어는 프랙탈 기하학처럼 각 부분마다 독특한 '질감'을 가지며, 이는 많은 사용자에게 충분한 초점이 됩니다. 프랙탈을 생성하는 과정은 반복되며, 소프트웨어 이해도 점진적으로 이루어집니다. 이러한 프랙탈 메타포는 코드에 대한 이해를 돕는데 유용합니다.
close 함수에서 발생하는 오류
이 글은 간단한 명령줄 프로그램에서 close() 호출 시 발생할 수 있는 오류를 묵시적으로 무시하는 문제를 다룹니다. Unix 파일 시스템 API의 설계, NFS의 도입, 그리고 에러 처리의 책임에 대한 논의를 통해 이 복잡한 문제를 여러 각도에서 조명합니다. 이는 개발자와 시스템 설계자 사이의 책임 소재를 둘러싼 오랜 논쟁을 반영합니다.
yamlpath를 이용한 YAML 특성 추출
yamlpath는 YAML 문서를 통해 키와 인덱스의 경로를 선택하고 선택된 항목의 정확한 줄/열과 바이트 범위를 포함하여 얻을 수 있는 새로운 Rust 라이브러리입니다. 이 도구는 기존의 YAML 분석 도구들의 한계를 극복하고, 더욱 유연하고 강력한 방식으로 YAML 문서를 다룰 수 있게 해줍니다.
디자인 패턴은 일시적, 언어 기능은 영원하다
디자인 패턴은 유용할 수 있지만 때로는 과도하게 사용되며, Rust와 같은 언어의 새로운 기능들이 이를 대체할 수 있음을 배웠습니다. 특히 Java 21의 패턴 매칭 기능은 Visitor 패턴을 구식으로 만들었으며, 언어 자체가 더 나은 해결책을 제공함에 따라 일부 디자인 패턴의 필요성이 줄어들고 있습니다.
보이지 않는 도롱뇽에 대한 오해
2019년에 발표된 '보이지 않는 도롱뇽' 논문은 AEAD 구조와 그 가정들에 대한 연구에 다시 관심을 불러일으켰습니다. 이 논문은 특정 암호화 시스템에서 심각한 문제를 일으킬 수 있는 '보이지 않는 도롱뇽' 문제를 지적합니다. 이는 개발자들이 종종 간과하는 중요한 이슈로, 암호학자의 도움을 받는 것이 좋습니다.
멀티버스에서의 디버깅
디버깅을 범죄 현장 조사에 비유한 이 글에서, 작가는 '타임 머신'이 있었다면 소프트웨어 문제를 해결하는 데 얼마나 도움이 될지를 상상합니다. Antithesis라는 도구를 통해 개발자들은 시간을 되돌리고, 다양한 시나리오를 탐색하며 버그의 원인을 파악할 수 있습니다.
Radicle 1.0 출시
새로운 Radicle 1.0이 출시되었습니다! 이는 Git 기반의 동료 간 코드 협업 스택으로, 개인 정보 보호 기능, 토르 지원, 그리고 안전한 인증 방식을 포함합니다. Radicle은 앞으로도 호환 가능한 변경을 지속할 예정이며, 커뮤니티의 참여를 기다리고 있습니다.
리눅스, 실시간 'PREEMPT_RT' 지원 도입 임박
리눅스 커널이 실시간 'PREEMPT_RT' 지원을 곧 도입할 예정입니다. 주요 내용으로는, 마지막 장애물인 비차단 콘솔 지원이 해결되어 리눅스 6.12 버전에 포함될 가능성이 높습니다. 이는 X86, ARM64, RISC-V 아키텍처에서 PREEMPT_RT를 활성화할 수 있는 중요한 진전이며, 실시간 애플리케이션에 큰 변화를 가져올 것입니다.
엔지니어링 매니저의 현장: 그 의미와 역할
엔지니어링 매니저는 단순히 기술 관리뿐만 아니라 팀원들의 개성과 목표를 이해하고 조직의 미션과 일치시키는 역할입니다. 기술 선택, 리더십 유지, 그리고 적절한 문화적 적합성을 갖춘 인재 채용이 중요합니다. 이는 도전적이지만 보람 있는 여정입니다.
로컬-퍼스트 벡터 데이터베이스: RxDB와 transformers.js 활용하기
이 기사는 RxDB와 transformers.js를 사용하여 사용자의 디바이스에서 직접 벡터 데이터베이스를 구축하고 운영하는 방법에 대해 설명합니다. 특히, 브라우저에서 임베딩을 생성하고, RxDB에 저장하는 과정, 그리고 인덱싱과 쿼리 성능 향상 방법에 초점을 맞추고 있습니다. 또한, 벡터 데이터베이스의 성능 벤치마크와 미래 개선 가능성에 대해서도 논의합니다.
OpenSSH 키스트로크 난독화 우회 방법 발견
최근 OpenSSH 9.5 버전에서 키스트로크 타이밍 공격을 방지하기 위해 도입된 난독화 조치가 우회됐습니다. 이는 SSH 세션의 기밀성 보호에 중요한 영향을 미칩니다. 연구자는 'SSHniff' 도구를 사용하여 실제 키스트로크를 추출하는 새로운 방법을 개발했습니다.
Zig 프로그래밍 언어의 독립성을 지켜주세요!
Zig는 독립성과 커뮤니티 중심의 개발을 지향하는 오픈 소스 프로그래밍 언어입니다. Zig Software Foundation은 개발자들이 Zig에 전념할 수 있도록 기금을 모금하고 있습니다. Zig의 독립성을 지지하고 싶다면, 작은 기부라도 큰 도움이 됩니다.
서명은 백업과 같다
한 동료가 말했다, '백업은 중요하지 않다, 중요한 것은 복원이다'. 이는 암호화 서명에도 적용되며, 서명 자체보다는 서명의 검증이 중요하다. 서명 시스템 설계 시, 서명 생성보다는 검증이 용이하고 실용적이어야 한다. 많은 패키지 서명 시스템이 서명 과정에만 집중하는 경향이 있는데, 이는 검증 도구가 사용하기 불편하거나 실용적이지 않음을 의미한다.
암호학의 파멸 원칙
암호학의 파멸 원칙은 MAC을 검증하기 전에 암호화 작업을 수행하면 보안 취약점이 발생할 수 있다는 것을 설명합니다. 특히, '인증 후 암호화' 방식은 Vaudenay 공격에 취약하며, SSH에서는 플레인텍스트 복구가 가능하다는 점을 보여줍니다. 이 원칙은 암호화 설계 시 중요한 고려사항입니다.
TypeScript 5.6 발표
TypeScript 5.6이 새로운 기능과 개선사항을 도입했습니다. nullish 및 truthy 검사 금지, 반복자 도우미 메소드 추가, 엄격한 내장 반복자 검사, 임의 모듈 식별자 지원 등이 포함됩니다. 또한, 편집기에서의 대응성 향상과 자동 완성 제안의 지능적인 커밋을 지원합니다.
RCU 레이스 컨디션 분석: TCP-AO UAF (CVE-2024-27394) 취약점 분석
이 블로그 포스트는 RCU API의 잘못된 사용으로 인해 발생한 레이스 컨디션 취약점 CVE-2024-27394를 분석합니다. 특히, ExpRace 기술을 사용하여 이 취약점을 신뢰성 있게 유발하는 방법을 설명하며, RCU 관련 취약점을 다룰 때 주의 깊은 분석의 중요성을 강조합니다.
올드스쿨 데모 효과
터널 효과, 모아레 효과, 그리고 비 효과는 각각 화면의 픽셀과 텍스처를 이용하여 만들어진다. 이러한 효과들은 복잡한 계산 없이도 시각적으로 매력적인 결과를 만들어내며, 각각의 효과는 특정 배열을 사용하여 구현된다.
니켈에 대수적 데이터 타입 추가하기
니켈은 구성 언어이자 함수형 프로그래밍 언어입니다. 초기에는 대수적 데이터 타입(ADTs)과 패턴 매칭이 빠져 있었지만, 이제는 이러한 핵심 기능들을 포함하게 되었습니다. ADTs의 도입은 니켈의 코드를 더 깔끔하고 간결하게 작성하는 데 크게 기여하며, 특히 라이브러리 인터페이스에서 그 장점이 두드러집니다.
Nix 2.24+ 버전에서 발견된 심각한 보안 취약점
Nix 2.24 이상 버전에서 악의적인 NAR 파일을 통해 로컬 권한 상승이 가능한 취약점이 발견되었습니다. 이는 심볼릭 링크를 따라가 내용을 채우는 과정에서 발생하는 문제로, 공격자가 시스템의 민감한 위치에 파일을 작성할 수 있게 합니다. 이 취약점은 높은 심각도를 가지며, 사용자들은 이에 대해 주의해야 합니다.