Category: 개발

NoDB: 데이터베이스 없이 결제 처리하기

2024-12-21

알바로 두란의 "결제 엔지니어 플레이북"에서는 데이터베이스 없이 결제를 처리하는 혁신적인 결제 시스템 설계 개념을 소개합니다. 비동기 프로그래밍의 보편화는 데이터베이스의 필요성이라는 전제에 기반한다고 주장합니다. 이벤트 소싱을 사용하면 결제 프로세스의 각 단계는 영속적인 상태가 아니라 이벤트로 기록됩니다. 이러한 이벤트는 일시적으로 메모리에 저장되고 시스템은 이벤트 스트림에서 결제 상태를 재구성하므로 영속적인 스토리지는 필요하지 않습니다. 고주파 거래에서 영감을 얻은 이 고성능, 고신뢰성 접근 방식을 통해 핫 백업을 통한 신속한 장애 복구가 가능합니다. 이 기사에서는 결제 흐름의 예를 사용하여 이 개념을 자세히 설명하고 미래 결제 시스템에 대한 적용을 살펴봅니다.

@celine/bibhtml v3.0.3: Web Components 기반 참고문헌 시스템

2024-12-21

HTML 문서를 위한 Web Components 기반 참고문헌 시스템인 @celine/bibhtml이 3.0.3 버전을 출시했습니다. LaTeX/BibTeX 참조와 유사한 사용자 경험을 제공하는 것을 목표로 하며, Citation.js를 백엔드로 사용하고, 인용이나 참고문헌이 잘못된 형식이거나 JavaScript가 비활성화된 경우에도 적절히 동작합니다. BibTeX, 비정형 텍스트, DOI, Wikidata의 4가지 참고문헌 형식을 지원하며, ``, ``, ``의 3가지 사용자 정의 요소를 제공하여 HTML에서의 참고문헌 관리를 간소화합니다.

획기적인 발전: C 코드를 안전하게 Rust로 컴파일

2024-12-21

연구자들은 C 코드를 안전하게 Rust로 컴파일하는 새로운 방법을 개발했습니다. 이 기술은 정적 분석과 형식 지향 변환을 사용하여 Rust의 `unsafe` 블록에 대한 의존성을 피함으로써 메모리 안전성을 보장합니다. 이 방법은 HACL* 암호 라이브러리와 EverParse 라이브러리의 코드에 성공적으로 적용되어 8만 줄의 순수 Rust로 작성된 검증된 최신 암호 라이브러리가 생성되었습니다. 이는 업계 최초의 성과입니다.

개발 C 컴파일

Bash로 의사 3D 게임을 만든 프로그래머

2024-12-20

izabera라는 프로그래머가 Bash 스크립팅 언어를 사용하여 놀라울 정도로 정교한 의사 3D 게임을 개발했습니다. 이 프로젝트는 고전 게임 Wolfenstein 3D에 대한 오마주이며, GitHub에서 오픈 소스로 공개되어 있습니다. 코드는 간결하지만 결과는 훌륭하며, Bash의 기능과 프로그래머의 창의성을 보여줍니다. 저장소에는 게임 소스 코드와 데모 비디오가 포함되어 있습니다. 관심 있는 개발자는 GitHub에서 확인할 수 있습니다.

개발 게임 개발

모노레포 빌드 도구: 코드베이스 확장

2024-12-20

기존 빌드 도구는 대규모 코드베이스(100~10,000명의 활동 개발자)에서 어려움을 겪습니다. Bazel이나 Mill과 같은 모노레포 빌드 도구는 여러 언어, 사용자 정의 빌드 작업, 자동 캐싱 및 병렬 처리, 원격 캐싱 및 실행을 지원하여 빌드 속도와 효율성을 크게 향상시킵니다. 또한 종속성 기반 테스트 선택 및 빌드 작업 샌드박싱 기능을 통해 테스트 시간과 비결정성을 줄입니다. 이러한 기능은 소규모 프로젝트에서는 불필요해 보일 수 있지만, 대규모 프로젝트의 대규모 협업과 지속적 통합에는 필수적이며, 빌드 시간이 병목 현상이 되는 것을 방지합니다.

DOS APPEND 명령어: 과거와 현재의 간극을 메우다

2024-12-20

DOS 2.11 소스 코드를 재구성하는 동안 저자는 어려움에 직면했습니다. 오래된 MASM 1.25 어셈블러는 디렉토리를 지원하지 않아 트리 구조를 사용하는 현대적인 파일 구성과 충돌했습니다. 단일 디렉토리를 피하기 위해 저자는 영리하게 DOS APPEND 명령어를 사용했습니다. APPEND는 TSR(Terminate and Stay Resident) 프로그램으로, 파일 열기 등의 시스템 호출을 가로채고 현재 디렉토리에 파일이 없으면 미리 정의된 경로 목록을 검색합니다. 이를 통해 MASM 1.25는 계층 구조 내에서 파일을 찾을 수 있었고, 비호환성이 해결되어 특정 시나리오에서 APPEND의 놀라운 유용성이 강조되었습니다.

개발

io_uring에 새로운 프로세스 생성 기능 추가

2024-12-20

LWN.net은 io_uring 서브시스템에 새로운 프로세스 생성 기능이 개발 중이라고 보도했습니다. 이 기능은 새로운 io_uring 연산인 IORING_OP_CLONE(새 프로세스 생성)과 IORING_OP_EXEC(새 프로그램 로드를 위한 execveat() 시스템 콜 실행)을 통해 구현됩니다. 이를 통해 효율성이 향상되고 경로 검색 등 복잡한 로직을 커널 내에서 비동기적으로 실행할 수 있습니다. 그러나 이 기능은 아직 초기 단계이며, 새 프로세스 내에서 io_uring 연산을 동기적으로 실행해야 하는 등 몇 가지 제약이 있습니다. 향후 개발에서는 유연성을 높이고 최종적으로 메인라인 Linux 커널에 병합하는 것을 목표로 합니다.

Grayjay 앱: 플랫폼이 아닌 크리에이터를 팔로우하세요

2024-12-20

Grayjay는 YouTube, PeerTube, Twitch 등 여러 플랫폼의 비디오 콘텐츠를 통합하는 멀티 플랫폼 비디오 플레이어입니다. 다른 플랫폼 간에 전환할 필요가 없습니다. 사용자의 개인 정보 보호를 우선시하여 시청 기록은 로컬에 저장되며 데이터 가져오기/내보내기 및 자동 백업을 제공합니다. 개인 맞춤형 콘텐츠 피드, 스크린 캐스팅 및 팔로워와 연결하고 콘텐츠를 수익화하기 위한 Harbor 통합 등의 기능이 있습니다.

구글 지미니 코드 어시스트, 서드파티 툴 통합

2024-12-20

구글은 기업 중심 AI 코드 완성 서비스인 지미니 코드 어시스트에 서드파티 툴 지원을 발표했습니다. Jira, GitHub, Sentry 등의 툴을 플러그인을 통해 통합하여 컨텍스트 전환을 줄이고 개발자 생산성을 높입니다. 현재 구글 클라우드 파트너 대상의 비공개 프리뷰 단계이며, GitHub의 Copilot Enterprise와 직접 경쟁하지만 구글은 온프레미스 코드베이스 지원 등의 장점을 강조합니다. 툴 추가는 워크플로 간소화 및 개발자 효율 향상을 목표로 합니다.

주권 기술 펀드, OpenStreetMap에 투자

2024-12-20

OpenStreetMap 재단은 주권 기술 기관으로부터 핵심 소프트웨어의 안정성, 성장 및 현대화를 보장하기 위해 38만 4천 유로의 지원금을 받았습니다. 이 자금은 코드 업데이트, 문서 및 테스트 인프라 개선, 핵심 인프라 개선(파괴 행위 대응 및 새로운 데이터 상호 작용 방식 탐색 포함)에 사용됩니다. 또한 OSM 핵심 소프트웨어 개발 촉진자를 포함한 두 가지 새로운 역할이 생성됩니다. 이는 개발자의 노력을 조정하고 커뮤니티의 기여를 촉진하기 위한 것입니다.

Rerun 0.21 업데이트: 그래프 뷰, 드래그 앤 드롭, 실행 취소

2024-12-20

Rerun 0.21에서는 오랫동안 기다려온 그래프 뷰와 드래그 앤 드롭 기능, 실행 취소 기능이 도입되었습니다. GraphNodes 및 GraphEdges 아키타입을 사용하여 구축된 새로운 뷰는 ROS 그래프 및 의미적 장면 그래프와 같은 다양한 그래프 구조를 시각화합니다. 이번 릴리스에서는 시간 여행 기반 실행 취소 기능도 구현되었으며, 새로운 포스 기반 그래프 레이아웃 엔진인 Fjädra를 통해 사용자 경험을 크게 향상시켰습니다.

개발 그래프 뷰

오픈소스 게임 엔진 boardgame.io: 턴 기반 게임 개발 간소화

2024-12-20

boardgame.io는 턴 기반 게임 개발을 간소화하는 오픈소스 JavaScript 게임 엔진입니다. 상태 관리, 멀티플레이어 네트워킹, AI 상대 등 복잡한 부분을 자동으로 처리하여 개발자는 게임 로직 작성에 집중할 수 있습니다. 이 엔진은 여러 게임 단계, 로비 매칭, 프로토타이핑 기능, 다양한 뷰 레이어 기술(React 및 React Native 등)을 지원합니다. 강력한 플러그인 시스템과 추적 가능한 게임 로그를 통해 개발 효율성과 게임 경험이 더욱 향상됩니다.

WordPress.org, 연휴 기간 일부 서비스 일시 중단

2024-12-20

자원봉사자들에게 휴가를 제공하기 위해 WordPress.org는 몇 가지 무료 서비스를 일시적으로 중단합니다. 새로운 계정 등록, 새로운 플러그인/테마 제출, 새로운 사진 디렉토리 제출 등이 포함됩니다. 포럼과 지역화는 계속 사용할 수 있습니다. 설립자 Matt Mullenweg는 WP Engine과의 법적 분쟁으로 인해 WordPress 개선 작업에 할애할 수 있는 시간이 크게 줄었다고 설명합니다. 그는 WordPress.org에 대한 지원을 요청하고 소송에 연루되지 않은 대체 웹 호스트를 사용할 것을 제안합니다.

동시성 시각화: 프로그램 상태 공간 이해를 위한 가이드

2024-12-20

동시 프로그래밍은 가능한 모든 상태를 열거하기 어렵기 때문에 매우 복잡합니다. 이 글에서는 시각화를 사용하여 동시 프로그램 실행 메커니즘을 이해하는 방법을 설명합니다. 변수 값과 명령어 위치의 조합인 프로그램 상태 개념을 소개하고, 간단한 C 언어와 유사한 프로그램 예시를 사용하여 프로그램 상태 전환과 상태 공간 생성을 보여줍니다. 그런 다음 동시 프로그램을 소개하고, 두 개의 동시 실행 프로그램 P와 Q를 사용하여 동시 프로그램의 상태와 상태 공간 구성 방법을 설명합니다. 마지막으로 모델 검사 도구 SPIN과 LTL 언어를 사용하여 동시 프로그램의 정확성을 검증하는 방법을 살펴보고, 동시 프로그램의 정확성을 보장하는 데 모델 검사가 중요한 역할을 한다는 점을 강조합니다.

브라우저가 'chucknorris'를 색상으로 해석하는 방법

2024-12-20

이 글에서는 브라우저가 HTML에서 잘못된 색상 값을 어떻게 처리하는지, 예를 들어 'chucknorris'를 빨간색으로 해석하는 방법을 설명합니다. 저자는 HTML을 파싱할 때 브라우저의 관용성에 대해 설명하고, 잘못된 값을 올바른 값으로 변환하려는 브라우저의 동작을 설명합니다. 잘못된 색상 값을 브라우저가 파싱하는 과정이 설명되어 있으며, 이 과정을 보여주는 CodePen 링크도 제공됩니다. 저자는 이러한 브라우저의 관용성이 웹의 매력이며, 잘못된 코드라도 실행될 수 있음을 보여주는 웹의 복원력을 보여준다고 주장합니다.

파이썬 주간 요약: Markitdown 출시, Conda 패키지 관리 논쟁 가열

2024-12-20

이번 주 파이썬 뉴스는 Microsoft에서 출시한 Markitdown(파일을 Markdown으로 변환하는 도구), PDFMathTranslate(과학 논문 번역 도구), docling(문서 준비 도구)를 포함합니다. 또한 PEP 768은 실시간 디버깅을 위한 CPython에 안전한 외부 디버거 인터페이스 추가를 제안합니다. Conda 패키지 관리의 복잡성에 대한 논쟁이 가열되면서 버전 충돌, 가상 환경 관리, pip 및 setuptools와의 상호 작용과 같은 문제들이 분석되었습니다. 마지막으로, Markdown 사용에 대한 논의가 있었고, 다양한 Markdown 파서 간의 차이로 인한 호환성 문제가 강조되었습니다.

개발

GribStream: 빠르고 효율적인 일기예보 기록 API

2024-12-20

GribStream은 National Blend of Models (NBM)과 Global Forecast System (GFS) 데이터를 활용한 빠르고, 효율적이며 사용하기 쉬운 일기예보 기록 API입니다. 방대한 양의 과거 기상 데이터에 대한 액세스를 제공합니다. 하나의 HTTP 요청으로 수만 개의 시간 단위 데이터 포인트를 몇 초 만에 가져올 수 있습니다. API는 다양한 출력 형식(CSV, Parquet, JSON 등)과 위치 쿼리를 지원합니다. 비용 효율적인 가격 책정과 강력한 기능을 통해 개발자는 다운로드나 아카이빙 없이 필요한 데이터에 쉽게 액세스할 수 있습니다.

NDEF 소개: NFC의 언어

2024-12-19

이 장에서는 근거리 무선 통신(NFC) 데이터 교환 형식(NDEF)을 소개합니다. 이것은 NFC 기기와 태그 간의 공통 언어입니다. NDEF는 메시지로 구성된 이진 형식이며, 각 메시지에는 여러 레코드가 포함되어 있습니다. 각 레코드는 헤더(메타데이터)와 페이로드(콘텐츠)로 구성됩니다. 이 장에서는 NDEF 레코드의 구조, 형식 이름 형식, 페이로드 유형, 페이로드 식별자, 페이로드에 대해 자세히 설명하고 Android 앱을 사용하여 NDEF 형식의 메시지를 쓰고 읽는 방법을 보여줍니다. 또한 NDEF 메시지의 크기 제한과 더 큰 페이로드를 위한 레코드 청크 처리에 대해서도 설명합니다. 마지막으로, PhoneGap-NFC 플러그인을 사용하여 간단한 NFC 태그 작성기 앱을 만들고 Foursquare 앱을 시작하기 위한 NDEF 메시지를 태그에 쓰는 방법을 보여주는 샘플 애플리케이션을 소개합니다.

개발

타입 주도 개발: 타입 시스템이 복잡한 프로그래밍 문제를 단순화하는 방법

2024-12-19

이 글에서는 "타입 주도 개발" 개념을 탐구합니다. 저자는 대규모 Heartbeat Typescript 프로젝트(30만 줄 이상)에서의 경험을 바탕으로, Typescript의 타입 시스템이 복잡한 프로그래밍 문제를 어떻게 단순화하는지 보여줍니다. 핵심 아이디어는 타입 시스템을 효과적으로 활용하여 타입이 애플리케이션의 모든 계층에서 자유롭게 흐르도록 하고, 타입 정의부터 새로운 기능 설계를 시작하며, 불법적인 상태를 표현할 수 없도록 하고, 데이터 검증 대신 구문 분석을 수행하며, 코드의 정직성과 특이성을 유지함으로써 버그를 대폭 줄이고 개발 효율성을 높일 수 있다는 것입니다. 또한 순수 함수를 타입 브리지로 사용하는 방법, 타입 시스템을 코드 내성 도구로 사용하는 방법 등을 공유하며, 필요에 따라 타입 시스템 제약을 우회하는 방법도 언급합니다.

Clay: 강력한 UI 레이아웃 라이브러리

2024-12-19

Clay는 반응형이고 접근성이 뛰어난 UI를 구축하기 위한 경량 UI 레이아웃 라이브러리입니다. 간결하고 직관적인 API를 통해 개발자는 복잡한 레이아웃을 쉽게 만들 수 있으며 코드의 유지 관리성과 가독성을 유지할 수 있습니다. Clay는 성능과 접근성을 우선시하여 효율적인 코드와 적절한 아키텍처를 통해 빠른 로딩 시간과 사용자 친화적인 환경을 보장합니다. 간단한 페이지 레이아웃부터 복잡한 대화형 애플리케이션까지 Clay는 개발자가 효율적으로 고품질 UI를 구축할 수 있도록 지원합니다.

CCState: 경량화되고 유연한 상태 관리 라이브러리

2024-12-19

CCState는 복잡한 상태 관리가 필요한 중간 규모에서 대규모 단일 페이지 애플리케이션을 위해 설계된 경량화되고 의미론적으로 명확하며 유연한 상태 관리 라이브러리입니다. 계산된 값, 명령어, 상태라는 세 가지 기본 데이터 유형을 기반으로 하며, 간단하고 직관적인 API와 100% 테스트 적용 범위를 제공합니다. 프레임워크에 종속되지 않고 React, Vanilla JS 및 기타 UI 프레임워크와 원활하게 통합되며, 매우 빠른 성능을 자랑하며 다양한 시나리오에서 Jotai를 능가합니다. 핵심 API인 `state`, `computed`, `command`는 각각 기본 값 단위, 파생 계산 로직, 부작용 로직을 처리합니다. `useGet`, `useSet` 등의 React Hooks를 통해 데이터 가져오기 및 설정이 용이하며, `useLoadable` 및 `useResolved`를 사용하여 Promise 값을 처리할 수 있습니다. CCState는 반응형 업데이트를 위한 구독 기능도 제공합니다.

TideCloak 빠른 시작: 10분 만에 안전한 React 앱 구축

2024-12-19

TideCloak은 Keycloak 기반의 사용자 친화적인 ID 및 접근 관리 시스템으로, Tide의 사이버 보안 패브릭으로 보호됩니다. 이 가이드에서는 10분 이내에 TideCloak을 사용하여 안전한 단일 페이지 React 애플리케이션을 구축하는 방법을 보여줍니다. 먼저 Docker와 NPM을 설치한 다음 TideCloak-Dev Docker 컨테이너를 실행합니다. 무료 개발자 라이선스를 활성화한 후 React 프로젝트를 생성하고 종속성을 설치하여 애플리케이션을 실행합니다. 사용자는 미리 정의된 역할에 따라 로그인, 등록 및 사용자 지정 콘텐츠를 볼 수 있으며, 이 모든 것은 TideCloak에서 관리하고 Tide의 사이버 보안 패브릭으로 보호됩니다.

개발 ID 관리

mizu.js: 경량 HTML 템플릿 라이브러리 - 클라이언트 사이드 및 서버 사이드 렌더링 지원

2024-12-19

mizu.js는 클라이언트 사이드와 서버 사이드 렌더링을 모두 지원하는 경량 HTML 템플릿 라이브러리입니다. 간단한 구문으로 일반 자바스크립트와 HTML에 가까워 학습 곡선이 완만합니다. 조건부 렌더링, 루프, 데이터 바인딩, HTTP 요청 등 다양한 지시어를 제공하여 복잡한 빌드 프로세스 없이도 단일 페이지 애플리케이션, 정적 사이트, 동적 페이지 등 다양한 웹 애플리케이션을 구축할 수 있습니다. 유연성과 단순함 덕분에 소규모 프로젝트부터 대규모 프로젝트까지 광범위하게 사용할 수 있습니다.

WebGPU Sponza 데모: 놀라운 브라우저 그래픽 시연

2024-12-19

Georgi Nikolov가 만든 WebGPU Sponza 데모는 WebGPU API의 놀라운 그래픽 렌더링 기능을 보여줍니다. 키보드와 마우스를 사용하여 장면을 자유롭게 탐색할 수 있습니다. 하지만 이 데모를 실행하려면 WebGPU API를 지원하는 최신 브라우저가 필요합니다. 현재 Chrome 113 이상, 최신 Firefox Nightly 빌드, Safari Technology Preview에서 WebGPU를 지원합니다. 이 시각적으로 멋진 데모를 경험하려면 브라우저를 최신 버전으로 업데이트하십시오.

Proxmox 데이터센터 관리자 알파 버전 출시

2024-12-19

Proxmox는 데이터센터 관리자의 알파 프리뷰 버전을 출시했습니다. 이 소프트웨어는 모든 노드와 클러스터를 중앙에서 관리하는 것을 목표로 하며, 클러스터 네트워크 없이 가상 머신 마이그레이션과 같은 기본적인 관리 기능을 제공합니다. 백엔드 API부터 CLI 도구, 완전히 새로운 프런트엔드까지 Rust 언어로 완전히 개발되었으며, 속도와 호환성을 개선한 최신 웹 UI를 갖추고 있습니다. 이 알파 버전은 사용자 피드백 수집, 핵심 기능 테스트 및 협업 촉진을 목표로 합니다. 일부 기능은 미완성이고 버그도 예상되지만, 이미 수천 개의 원격 및 가상 머신을 관리할 수 있습니다.

프로그래머, 영화 프레임을 AI 아트로 변환

2024-12-19

프로그래머가 Python, OpenCV, PIL 라이브러리를 사용하여 영화 프레임을 독특한 예술 작품으로 변환했습니다. "Movie Iris" 프로젝트는 비디오에서 프레임을 추출하고, 색상을 압축하고, 바코드와 원형 "홍채" 이미지를 생성하여 영화의 색상 테마 변화를 시각화합니다. 오픈소스 코드는 어떤 비디오도 처리할 수 있으며, 일상의 순간을 예술로 바꿀 수 있습니다.

Nullboard: 오프라인 사용 가능한 미니멀리스트 칸반 보드

2024-12-19

Nullboard는 간결함과 가독성을 중시하는 미니멀리스트 칸반 보드입니다. 단일 페이지 웹 애플리케이션으로, 모든 데이터는 로컬에 저장되며 JSON 가져오기/내보내기 기능을 통해 오프라인 사용이 가능합니다. 드래그 앤 드롭, 자동 저장, 실행 취소/다시 실행 기능을 갖추고 있어 효율적인 작업 관리를 제공합니다. 기존 도구에 대한 불만에서 시작되어 개발자 자신이 만든 솔루션을 오픈 소스로 공유하고 있습니다.

Retis: Linux 네트워킹 스택의 패킷 추적

2024-12-19

Retis는 eBPF 프로브를 사용하여 Linux 네트워킹 스택 내의 패킷을 추적하는 강력한 도구입니다. Open vSwitch 및 Netfilter와 같은 제어 경로 및 데이터 경로와 상호 작용하여 네트워크 문제 디버깅, Linux 네트워킹 스택 탐색 또는 네트워크 기능 테스트에 유용합니다. Retis는 패킷 필터링 및 추적 기능을 제공하며 패킷 자체를 넘어 메타데이터 및 컨텍스트 정보를 가져옵니다. 대상 시스템에서의 컴파일이 필요 없으며 패킷 경로 재구성 등의 후처리 기능도 포함되어 있습니다. 미리 정의된 프로필과 사용자 정의 프로브 및 필터 지원을 통해 Retis는 유연성과 사용 편의성을 제공합니다.

Botan: 현대적인 C++ 암호화 도구 키트

2024-12-19

Botan은 허가적인 Simplified BSD 라이선스하에 배포된 강력한 오픈소스 C++ 암호화 라이브러리입니다. C++에서의 암호화에 대한 최상의 옵션이 되는 것을 목표로 하며, TLS 프로토콜, X.509 인증서, 최신 AEAD 암호, PKCS#11 및 TPM 하드웨어 지원, 비밀번호 해싱, 양자 내성 암호 체계 등 다양한 시스템 구현에 필요한 도구를 제공합니다. Python 바인딩이 포함되어 있으며, 다른 언어 바인딩도 사용할 수 있습니다. 기능이 풍부한 명령줄 인터페이스도 제공됩니다. 최신 릴리스는 3.6.1이며, Fedora, Debian, Arch, Homebrew 등 여러 배포판을 통해 사용할 수 있습니다.

개발

Trofaf: Go 언어로 작성된 초간단 실시간 정적 블로그 생성기

2024-12-19

Trofaf는 Go 언어로 작성된 매우 간단한 실시간 정적 블로그 생성기입니다. posts, public, templates 세 개의 디렉토리만으로 작동하며, Markdown 파일과 프런트 매터로부터 정적 웹사이트를 생성합니다. 변경 사항을 감지하면 자동으로 업데이트되며, 명령줄 옵션을 통해 사용자 정의도 가능합니다. 광범위한 기능보다 단순성을 우선시하여 간편한 블로그 솔루션을 원하는 사용자에게 적합합니다.

2 4 5 6 7 8