read: fail

Java가 Rust처럼 변화하고 있으며, 이는 긍정적인 현상입니다

Java가 Rust의 강력한 기능을 도입하면서 더욱 발전하고 있습니다. 특히, 불변성 데이터대수적 데이터 타입의 개념을 받아들임으로써, 개발자들이 보다 안전하고 효율적인 코드를 작성할 수 있게 되었습니다. 이러한 변화는 Java의 장기적인 위치를 강화할 것입니다.

이상한 테스트를 사용하여 암묵 지식 포착하기

암묵 지식은 복잡한 코드베이스를 효과적으로 관리하는 데 필수적입니다. 예를 들어, 새로운 Django 모듈을 추가할 때 필요한 단계를 테스트로 캡처하는 것이 유용할 수 있습니다. 이 방법은 '래칫 테스팅'이라고도 하며, 코드의 일관성을 유지하는 데 도움이 됩니다. 테스트 주도 불변성은 자체 문서화 기능을 가지고 있어, 내부 지식 검색 없이도 작업을 수행할 수 있게 합니다.

Dada, Rust 창시자들의 새로운 실험

Dada는 Rust 창시자들이 새롭게 실험하는 프로그래밍 언어예요! 라이브 튜토리얼을 해보거나, Dada가 무엇인지 알아보세요. 혹은 바로 웹 플레이그라운드로 뛰어들 준비가 되셨나요?

C128에서 CP/M 실행하기

CP/M은 개인용 컴퓨터 혁명의 초기 운영 체제 중 하나로, 올해로 50주년을 맞이했습니다. 저자는 C128에서 WordStar와 같은 고대 소프트웨어 앱을 실행하는 방법을 공유합니다. CP/M은 주로 생산성 소프트웨어를 실행하는 데 사용되었으며, C128에서는 CPMFASTZPM3 BootDisk를 통해 개선된 성능으로 실행할 수 있습니다. 또한, Ultimate-II+ 카트리지와 CPMUTools를 사용하여 CP/M에서 디스크 이미지를 마운트하고 다양한 소프트웨어를 실행하는 방법도 소개합니다.

Golang을 사용하여 나를 살아있게 하는 방법

이 글에서는 Golang을 사용하여 개발자가 어떻게 자신의 업무와 삶을 효율적으로 관리하며 살아가는지에 대한 흥미로운 이야기를 나눕니다. Golang의 강력함과 유연성이 어떻게 일상을 변화시키는지 알아보세요!

소프트웨어 엔지니어링의 본질과 우연성에 대한 은탄환은 없다

프레더릭 P. 브룩스 주니어가 1987년에 발표한 '은탄환은 없다'는 글에서, 소프트웨어 개발의 본질적인 어려움을 극복할 수 있는 단일 기술이나 관리 기법이 존재하지 않는다고 주장합니다. 그는 복잡성, 일관성, 변화성, 불가시성이 소프트웨어 개발의 본질적인 어려움이라고 설명하며, 이러한 문제들을 해결하기 위한 혁신적인 방법들이 필요함을 강조합니다.

Swift에서 Rails API의 JSON 읽기

Swift의 Codable 인터페이스를 사용하면 Swift 타입을 JSON으로 변환할 수 있습니다. 하지만 Rails에서 생성된 JSON의 날짜 형식은 Swift의 기본 형식과 호환되지 않아 날짜 형식을 맞추기 위한 추가 작업이 필요합니다. 이를 해결하기 위해 DateFormatter를 사용하는 방법을 소개합니다. 이 방법은 Swift 앱 개발자들이 Rails API 백엔드와 원활하게 연동할 수 있게 도와줍니다.

데이터 유형의 미스터리: 그래프 탐색기

그래프는 소프트웨어 엔지니어링에서 흔히 볼 수 있는 구조이지만, 대부분의 프로그래밍 언어나 라이브러리에서는 내장 지원이 부족합니다. 이는 그래프의 다양한 종류와 복잡한 설계 결정 때문입니다. 그래프 알고리즘의 성능은 표현 방식에 매우 민감하며, 이는 그래프를 코드로 구현할 때의 큰 도전입니다. 그래프의 힘과 가능성을 이해하는 것은 중요하지만, 실제로 구현하는 것은 매우 어려울 수 있습니다.

pause(2)의 위험성 (2023)

pause(2) 함수를 사용할 때 발생할 수 있는 버그에 대해 알아보았습니다. 이러한 버그는 바로 나타나지 않고, 시스템 호출이 막혀 있어야 할 때 깨어나지 않는 '음, 이상하다'는 종류에 속합니다. 문제의 해결책은 시그널 마스크와 원자적으로 조작하는 호출을 사용하는 것입니다. 이 주제는 개발자들에게 매우 흥미로운 내용일 것입니다!

Alpine AJAX - 웹 요소가 서버로부터 콘텐츠를 요청할 수 있게 해주는 Alpine.js 플러그인

Alpine AJAX는 HTML 요소가 서버로부터 원격 콘텐츠를 요청할 수 있게 해주는 Alpine.js 플러그인입니다. 이를 통해 직관적이고 견고하며 상호작용이 풍부한 웹사이트를 구축할 수 있습니다. 서버의 동작을 확인하고 싶다면, 서버 요청 섹션을 확인하세요!

컴파일된 바이너리에서 Protobuf 정의 역공학하기

컴파일된 바이너리에서 Protobuf 정의를 역공학하는 방법을 소개합니다. 이는 닫힌 소스 바이너리가 사용하는 API를 역공학하려는 경우 유용할 수 있습니다. Protobuf 정의를 추출하는 CLI인 protodump를 사용하는 방법과 원리에 대해 설명합니다. 프로그램 바이너리를 분석하여 FileDescriptor와 같은 바이트 시퀀스를 찾고, 이를 '.proto' 소스 정의로 디코딩하는 전략을 사용합니다.

Fastify에서 서버 액션 다루기

이 글에서는 Solid.jsFastify를 활용한 서버 액션의 구현에 대해 소개합니다. 특히, SolidStart의 서버 액션은 기본적으로 동형적이며, 'use server' 지시어를 통해 서버에서만 실행되도록 할 수 있습니다. 또한, @fastify/react를 사용한 동형 데이터 가져오기와 서버 액션을 설계하는 방법에 대해서도 다룹니다. 이 기능은 Fastify 사용자들에게 유용할 것입니다.

2022-2024년과 그 이후: AI에 대해 이야기해봅시다

이 글에서는 Go의 현재 상황과 특히 생성적 AI가 소프트웨어 개발을 어떻게 변화시키고 있는지에 대해 다룹니다. Go는 주류 사용자를 위한 플랫폼으로 성숙해왔으며, 이제는 AI를 활용한 개발자 지원과 애플리케이션 개발에 주목하고 있습니다. AI가 프로그래밍 언어를 대체할 것이라는 예측에도 불구하고, 프로그래밍 언어는 앞으로도 여전히 중요할 것입니다.

VSCode에서 Django 앱의 모든 활동을 확인하세요: kolo

VSCode를 떠나지 않고도 실행 중인 Django 앱에서 일어나는 모든 것을 볼 수 있는 kolo를 소개합니다. 베타 버전인 kolo는 Django 개발을 더욱 편리하게 만들어주며, 프레임 시각화코드 내 예외 처리 등의 주목할 만한 기능을 제공합니다.

블라이첸바허 RSA 공격 데모 구축하기

실제 세계의 암호학을 읽다가 블라이첸바허의 RSA 공격에 대해 알게 되었고, 이를 직접 구현해보기로 했습니다. RSA를 처음부터 구현하고, 메시지를 복호화하는 공격을 작성한 뒤, 웹 데모를 만들었습니다. 이 과정은 재미있고 교육적인 경험이었으며, 데모를 통해 직접 체험해볼 수 있습니다!

quiz: OpenZFS 개발을 위한 신속한 도구

OpenZFS 개발을 위한 quiz는 커널 코드 작업을 위한 빠른 편집-컴파일-테스트 주기를 가능하게 합니다. 마이크로VM을 사용하여 커널을 사용자 공간에 몇 초 만에 부팅하고, OpenZFS 모듈을 로드하여 개발 효율성을 대폭 향상시킵니다. 이 도구는 OpenZFS 개발을 더 접근하기 쉽게 만들어 줍니다.

컨테이너 일시정지 기능의 구축과 폐기

mirrord는 개발자들이 CI와 배포 과정 없이 클라우드 환경에서 코드를 테스트할 수 있게 해주는 도구입니다. 하지만, 원격 애플리케이션을 완전히 일시정지하여 로컬 프로세스와의 작업 경쟁을 방지하는 기능은 여러 문제로 인해 폐기되었습니다. 대신, '복사 팟' 기능과 '스케일다운'을 도입하여 새로운 방향을 모색했습니다. 이러한 변화는 개발자 경험을 개선하고 안정적인 대안을 제공하기 위한 결정이었습니다.

Windows 11과 Edge의 '깨끗한 설치'를 정리하는 방법

Windows XP나 Windows 7 시절처럼 PC를 개선할 수 있었던 '깨끗한 설치'에 대한 그리움을 공유하며, Windows 11에서 Microsoft 계정 로그인을 피하는 방법깨끗한 설치를 정리하는 팁을 소개합니다. 이는 불필요한 알림과 서비스, 앱을 최소화하는 데 도움이 됩니다.

모션 블러의 극한 탐구

모션 블러를 극단적으로 밀어붙이면 어떤 일이 발생할까요? 이 질문에 답하기 위해 피에르 쿠사는 실시간 셰이더를 이용한 절차적 애니메이션에 이를 적용해 보았습니다. 이 과정에서 자연스러운 장면과 카메라 시뮬레이션 사이의 차이, 그리고 이를 최소화하기 위한 모션 블러의 역할에 대해 탐구합니다. 특히, '토러스피어 가속기'라는 애니메이션을 통해 이론을 실제로 구현해 보이며, 모션 블러의 새로운 가능성을 제시합니다.

브라우저에 제출한 버그들

웹 개발자로서 브라우저에 버그를 제출하는 것은 매우 유용한 일입니다. 크로스 브라우저 호환성 문제를 해결하기 위해, 브라우저 개발 팀에게 명확한 재현 단계가 포함된 잘 작성된 버그 보고서를 제출하면 빠른 해결이 가능합니다. 저는 Chromium, Firefox, WebKit 등 주요 브라우저 엔진에 대해 10년간의 경력 동안 많은 버그를 제출했습니다. 이러한 활동은 브라우저 간 호환성 개선에 크게 기여합니다.