read: fail

XMPP: 즉시 메시징의 잊혀진 보석

XMPP는 강력하고 개방적이며 프라이버시를 존중하는 대안적인 즉시 메시징 프로토콜입니다. 이는 분산형이며, 사용자가 자신의 데이터를 통제할 수 있습니다. 그러나 XMPP는 널리 알려지지 않은 상태로 남아 있습니다. XMPP가 여전히 중요한 이유는 데이터의 분산 제어프라이버시 보호 때문입니다.

클라이언트 측에서의 살균: 서버 측 HTML 살균의 실패 이유

웹 애플리케이션의 보안 취약점인 크로스 사이트 스크립팅(XSS)을 방지하기 위해 HTML 살균기가 사용되지만, 서버 측에서의 HTML 파싱과 클라이언트의 브라우저 파싱 사이의 차이로 인해 종종 실패합니다. 개발자들은 클라이언트 측에서 DOMPurify와 같은 강력한 라이브러리를 사용하여 살균을 구현하는 것이 좋습니다.

구글의 쇠퇴

구글 검색 엔진 결과의 쇠퇴와 독립 웹 출판사들이 직면한 도전에 대해 다룬 기사입니다. 구글과 페이스북의 트래픽 의존도가 낮아지면서 많은 독립 출판사들이 문을 닫았습니다. 또한, 구글이 기계 학습을 이용해 검색 결과를 '수정'하려 했으나, 오히려 스팸과 저품질 콘텐츠가 증가하는 결과를 낳았습니다. 이로 인해 소규모 블로그와 웹사이트는 사실상 목록에서 제외되었고, 일부 출판사는 트래픽이 97% 감소했다고 보고합니다.

Podia에서 사건 대응의 진화

Podia에서는 초기에 모니터링이나 정해진 처리 절차 없이 개발자들이 슬랙을 지속적으로 확인하며 스트레스를 받았습니다. 이후 24시간 온콜 제도를 도입하여 생산 사건을 효과적으로 관리하게 되었고, 이는 개인 생활에 미치는 영향을 최소화하고 팀워크를 증진시키는 데 중점을 두었습니다.

인터넷의 분산 시스템과 피어 투 피어 연결성의 기본적 손실

초기 컴퓨터 네트워크는 피어 투 피어 방식으로 설계되었으나, NAT와 방화벽의 등장으로 인터넷은 점차 중앙집중식 클라이언트-서버 구조로 변화했습니다. 이로 인해, 초기 인터넷 프로토콜과 응용 프로그램은 직접 연결을 재활성화하기 위한 대안적인 방법들을 필요로 하게 되었습니다.

2NF: 누락된 사용 사례

이 기사는 데이터 정규화 과정에서 종종 간과되는 2NF(두 번째 정규 형태)의 중요한 측면을 다룹니다. 특히, 튜플 내 데이터 항목 간에 관계가 없는 경우도 2NF 위반으로 간주해야 한다는 점을 강조하며, 이를 통해 데이터 모델을 더욱 견고하고 일관성 있게 만들 수 있음을 설명합니다.

oss-sec: 쉘 와일드카드 확장의 (안전하지 않은) 특성

쉘 와일드카드 확장의 안전성에 대한 논의에서 버그가 아닌 알려진 정상 동작이라는 점, 특수 문자가 포함된 파일명을 처리할 때 발생할 수 있는 문제, 그리고 이를 해결하기 위한 -- 인자 구분자 사용법 등이 주요 포인트입니다. 이러한 지식은 개발자들이 보다 안전하게 파일명을 처리할 수 있도록 도와줍니다.

더블 래칫 알고리즘의 구현 (2020)

더블 래칫 알고리즘전방 기밀성, 최종 침입 복구, 기밀성, 그리고 부인 방지와 같은 중요한 암호학적 보장을 제공합니다. 이 알고리즘은 Signal, Facebook Messenger, WhatsApp, Matrix 등 주요 메시징 플랫폼에서 끝에서 끝까지 암호화를 제공하기 위해 사용됩니다.

레슬리 램포트의 '동시 프로그램의 과학'

레슬리 램포트의 책 '동시 프로그램의 과학'이 케임브리지 대학 출판사에서 출판됩니다. 최종 초안 PDF 버전이 공개되었으며, 책의 예제를 설명하는 TLA+ 사양과 사용 방법이 포함된 지원 자료도 제공됩니다.

ImHex의 패턴 언어를 활용한 바이너리 파일 시각화

ImHex의 패턴 언어를 사용하여 복잡한 바이너리 파일을 쉽게 해석할 수 있습니다. 이 언어는 C++ 및 Rust의 문법을 혼합하여 구조체, 비트필드, 조건문 등을 정의할 수 있으며, 배열 종료 조건이나 내장 압축 해제 기능도 지원합니다. 개발자들은 이를 통해 파이썬 코드를 작성하지 않고도 데이터를 빠르게 볼 수 있습니다.

사용자 영역 디스크 I/O 학습하기

디스크 I/O에 대해 알아보세요. 데이터베이스는 종종 O_DIRECT를 사용하여 버퍼링되지 않은 I/O를 수행하고, fsync()는 데이터의 내구성을 보장하는 핵심 기능입니다. 또한, XFS 파일 시스템이 데이터베이스 관련 작업에 적합하다고 추천됩니다. 이러한 지식은 데이터 관리와 최적화에 매우 중요합니다.

Fruit Credits: hledger 기반 개인 회계 앱

개발자가 직장을 그만두고 재정 관리의 필요성을 느껴 hledger 회계 소프트웨어를 사용하기 시작했습니다. 기존 인터페이스의 불편함을 해결하기 위해 GTK4Vala 프로그래밍 언어를 사용하여 GUI 버전 'Fruit Credits'를 개발했습니다. 이 앱은 기본적인 사용자 요구를 충족시키며, 향후 트랜잭션 편집 및 보고 기능 확장을 계획하고 있습니다.

Postgres의 메모리 관리와 MemoryContext

Postgres는 MemoryContext라고 불리는 중첩된 아레나를 통해 메모리를 관리합니다. 이를 통해 메모리는 아레나가 해제될 때 자동으로 해제됩니다. 저자는 Postgres 확장 기능 내에서 간단한 HTTP 서버와 웹 프레임워크를 구축하여 MemoryContext 사용을 탐구합니다. 이 서버는 메모리 할당을 관리하기 위해 MemoryContexts를 사용하며, 적절한 메모리 관리의 중요성과 적절한 시기에 MemoryContexts를 리셋하는 기술을 강조합니다.

신뢰할 수 있는 불변 전송 프로토콜

신뢰할 수 있는 불변 전송 프로토콜(RITP)은 대용량 불변 파일을 안정적으로 다운로드하기 위한 간단한 프로토콜입니다. HTTP, Gemini, BitTorrent 등 기존 프로토콜의 단점을 해결하고자 합니다. RITP는 상태 유지 요청/응답 프로토콜로, 파일 다운로드 시 배치 토큰을 사용하여 요청을 파이프라인화하고, 오류 발생 시 전체 배치를 취소하는 방식으로 설계되었습니다.

NoteFlow: 웹 기반 마크다운 노트 앱

NoteFlow는 Markdown을 기반으로 한 가벼운 노트 앱으로, 업무 관리 기능을 제공합니다. 단일 Markdown 파일에서 모든 노트를 관리할 수 있으며, 개인 정보 보호를 최우선으로 하여 로컬에서 실행됩니다. 설치 후 바로 사용할 수 있는 간편한 시작이 가능합니다.

포디아가 리뷰 앱을 더 이상 사용하지 않는 이유

포디아는 개발 방식을 변화시키며 피처 플래그를 적극적으로 도입했습니다. 이를 통해 사용자에게 영향을 주지 않고 안전하게 작은 변경사항을 생산에 적용할 수 있게 되었고, 리뷰 앱의 필요성이 사라졌습니다. 또한, 디자이너가 로컬 설치를 진행하고 클라우드플레어 터널을 사용하는 등의 방법으로 변경사항을 검토합니다.

블로그 포스트: ASP.NET 모델/컨트롤러 웹 API에 블레이저 서버 앱 추가하기

이 글에서는 ASP.NET Web API 프로젝트블레이저 서버 앱을 추가하는 방법을 단계별로 설명합니다. 블레이저는 C#/.NET으로 웹 애플리케이션을 구축할 수 있는 프레임워크로, 서버에서 처리되고 브라우저로 스트리밍되는 DOM 업데이트를 지원합니다. 전체 소스 코드는 GitHub에서 확인할 수 있습니다.

메시징 프로토콜 개선에 대한 고찰 — 파트 2, Matrix

Matrix 프로토콜의 병합 작업을 간소화하고 가속화하기 위한 제안에 대해 다룹니다. 대규모 방에서의 병합 작업 비용을 줄이고, 처리 성능을 크게 향상시킬 수 있는 새로운 접근 방식을 제시합니다. 특히, 100,000명이 참여하는 방과 같은 매우 큰 방에서의 지연 시간과 서버 부하를 줄일 수 있습니다.

DNSSEC 루트 신뢰 앵커의 변경 예정 사항

2025년 1월 11일, 새로운 DNSSEC 신뢰 앵커인 KSK-2024가 루트 존에 추가됩니다. 이는 기존의 KSK-2017과 공존하며, 2026년 10월 11일부터 루트 존 서명을 시작할 예정입니다. 또한, IANA 신뢰 앵커 파일이 새로운 XML 형식으로 업데이트되었습니다. 이 변경사항은 인터넷의 보안과 안정성에 중요한 영향을 미칠 것입니다.

튜링이 우리를 천국에서 쫓아냈다 (2023)

컴퓨터 과학에서 정지 문제는 임의의 프로그램이 멈출지 계속 실행될지 결정할 수 있는 알고리즘이 없다는 것을 보여줍니다. 이는 많은 수학 문제들이 여전히 해결되지 않고, 프로그램 최적화와 버그 찾기 도구의 한계를 의미합니다. 이로 인해 우리는 프로그래밍의 자동화에 있어 근본적인 제한을 가지고 '지상에서 프로그래밍'을 해야 합니다.