Category: 개발

YAML 지옥에서 탈출: 사람을 위한 설정 언어 KSON

2025-09-18
YAML 지옥에서 탈출: 사람을 위한 설정 언어 KSON

YAML 설정 파일로 인한 끝없는 두통에 지치셨나요? 이 글은 YAML의 달콤한 함정에서 고통의 심연으로 떨어진 프로그래머의 이야기를 들려주고, 설정 경험 개선에 전념하는 오픈소스 프로젝트인 KSON을 소개합니다. KSON은 JSON 및 YAML과 호환되며, 들여쓰기 오류 허용 및 강력한 코드 에디터 지원 등 여러 사용자 친화적인 기능을 추가하여 설정을 악몽이 아닌 즐거움으로 만들고자 합니다.

개발

Geizhals, Perl 5의 미래를 위해 1만 달러 기부

2025-09-18
Geizhals, Perl 5의 미래를 위해 1만 달러 기부

1997년 설립된 독일의 가격 비교 웹사이트 Geizhals Preisvergleich는 Perl 5 코어 유지보수 기금을 지원하기 위해 Perl 및 Raku 재단에 1만 달러를 기부했습니다. 설립 초기부터 Perl을 사용해 온 Geizhals의 기부는 오픈소스에 대한 헌신과 Perl의 장기적인 안정성에 대한 중요성을 보여줍니다. 이 기금은 중요한 버그 수정에 대응하여 Perl이 수많은 사용자와 조직에 대해 안정적이고 안전한 상태를 유지하도록 보장합니다. 이 관대한 기부는 필수적인 오픈소스 인프라 유지에 있어 커뮤니티 지원의 중요한 역할을 강조합니다.

개발

AI 지원 코딩: 작업 단위의 중요성

2025-09-18

효과적인 AI 지원 코딩은 단순히 지능적인 모델을 사용하는 것뿐만 아니라 작업 단위를 신중하게 관리하는 것이 중요합니다. 저자는 작업을 적절한 크기의 단위로 분할하는 것이 필수적이라고 주장합니다. 너무 작으면 효율성이 떨어지고, 너무 크면 컨텍스트 손실로 인해 오류가 누적됩니다. 이상적인 단위는 사용자 스토리처럼 명확한 비즈니스 가치를 지니고 있어야 하며, 사람의 검토와 오류 수정을 가능하게 하고, AI 오류의 누적을 최소화합니다. StoryMachine 프로젝트는 AI 지원 코딩의 효율성과 정확성을 높이기 위해 더 효과적인 작업 단위를 정의하는 것을 목표로 하며, 궁극적으로 AI 개발을 더 쉽고 효율적으로 만드는 것을 목표로 합니다.

개발

KDE Plasma: 놀랍도록 만족스러운 Linux 데스크톱 환경

2025-09-18

저자는 최근 게임용 PC의 데스크톱 환경을 KDE Plasma로 변경했습니다. 처음에는 아내가 게임 이외의 용도로 PC를 사용할 수 있도록 하기 위해서였지만, 실제로 사용해 본 결과 풍부한 기능과 놀라운 속도에 감탄했습니다. KDE Plasma의 네트워크 애플릿은 광범위한 네트워크 정보를 제공하며, 통합된 스크린샷 도구는 강력하고, 시스템 설정 내의 창 규칙은 애플리케이션 창을 고도로 사용자 정의할 수 있도록 해줍니다. 또한 KDE Plasma에는 Flatpak 권한 설정, 하드웨어 정보 표시, 절전 모드 방지 등 많은 사전 설치 도구가 포함되어 있습니다. 이러한 기능들은 Windows나 macOS에서는 일반적으로 별도의 소프트웨어를 설치해야 합니다. 초기 단계에서 작은 문제가 있었지만, 전반적으로 저자는 KDE Plasma를 매우 만족스러운 경험으로 여기며, 수년간 사용해 온 Linux 데스크톱 환경 중 최고라고 평가합니다.

원격 데스크톱 절전 모드 방지: 간단한 systemd-inhibit 사용법

2025-09-18
원격 데스크톱 절전 모드 방지: 간단한 systemd-inhibit 사용법

원격 데스크톱 세션이 컴퓨터 절전 모드로 인해 중단되는 문제로 힘드셨나요? 이 글에서는 `systemd-inhibit` 명령어와 bash 별칭을 사용한 영리한 해결책을 제시합니다. `block`과 `unblock`이라는 두 개의 간단한 명령어를 만듭니다. `block` 명령어는 절전 모드를 방지하는 백그라운드 프로세스를 시작하고, `unblock` 명령어는 해당 프로세스를 종료하여 시스템 절전 모드를 허용합니다. 복잡한 설정 없이 `.bashrc` 또는 `.zshrc`에 두 줄만 추가하면 이러한 일반적인 문제를 해결하고 작업 흐름을 개선할 수 있습니다.

개발

고속 푸리에 변환(FFT) 설명: Cooley-Tukey 알고리즘

2025-09-18

이 글에서는 고속 푸리에 변환(FFT) 알고리즘, 특히 Cooley-Tukey 알고리즘에 대해 자세히 설명합니다. 먼저 이산 푸리에 변환(DFT)의 정의를 제시하고, 단순한 O(n^2) 시간 복잡도를 지적합니다. 그런 다음 Cooley-Tukey 알고리즘을 자세히 유도하여 DFT를 더 작은 DFT로 분해함으로써 계산량을 줄이고, 입력 길이가 2^n인 경우 O(n log n)으로 감소시키는 것을 보여줍니다. 알고리즘의 동작을 시각적으로 보여주는 대화형 시각화도 포함되어 있습니다. 또한 FFT와 DFT를 혼동하는 일반적인 오용에 대해서도 수정하고, FFT는 변환 자체가 아니라 알고리즘을 가리킨다는 것을 명확히 합니다.

개발

C 프로그래밍 실무: 순수성, 속도, 정확성

2025-09-18

이 문서는 C 프로그래밍 실무에 대한 노트로, 코딩 스타일, 함수 및 변수 이름 지정 규칙, 형식, 주석, 비트 계산 및 루프 언롤링과 같은 C 언어의 유용한 트릭을 다룹니다. 저자는 코드의 순수성, 속도, 정확성을 추구하는 것이 중요하다고 강조하고, 헤더 파일, 컴파일러의 효과적인 사용, GOTO 문의 사용 등 일반적인 프로그래밍 패러다임에 대한 재검토에 대한 통찰력을 제공합니다. 목표는 C 프로그래밍의 품질과 효율성을 향상시키는 것입니다.

개발

CSS 클래스와의 작별: 클래스 없는 웹사이트 구축

2025-09-18
CSS 클래스와의 작별: 클래스 없는 웹사이트 구축

이전 게시물에서 브라우저 내장 요소 활용을 주장했던 저자는 이번에 그 철학을 실천에 옮겨 자신의 웹사이트에서 CSS 클래스를 완전히 제거했습니다. 더욱 세분화된 기본 스타일, 중첩된 선택자, `:where()` 및 `:has()`와 같은 최신 CSS 기능, 그리고 사용자 정의 요소 및 속성을 사용하여 CSS 클래스를 대체하는 실험을 진행했습니다. 신중한 계획이 필요하며 모든 프로젝트에 적합한 것은 아니지만, 이 실험을 통해 CSS 클래스의 필요성에 대한 의문을 품게 되었고, 향후 작업에 큰 영향을 미쳤습니다. 단, 클래스를 사용하는 구문 강조 플러그인은 예외적으로 남겨두었습니다.

Chez Scheme 프로그램 디버깅: 종합 가이드

2025-09-18

R. Kent Dybvig의 이 가이드는 Chez Scheme 프로그램 디버깅을 위한 포괄적인 접근 방식을 제공합니다. 오류 메시지 이해, 코드 및 입력 단순화, 전략적인 print 문 배치와 같은 기본 기술부터 시작합니다. 그런 다음 Chez Scheme의 추적 기능과 디버거를 사용하여 프로그램 상태를 검사하고 찾기 어려운 버그를 식별하는 고급 방법으로 진행합니다. 초보자든 경험 많은 프로그래머든 이 가이드는 효율적인 디버깅을 위한 귀중한 통찰력을 제공합니다.

개발

pnpm 업데이트: 지연된 종속성 업데이트 및 고급 종속성 검색

2025-09-18
pnpm 업데이트: 지연된 종속성 업데이트 및 고급 종속성 검색

최신 pnpm 릴리스에서는 두 가지 중요한 기능이 도입되었습니다. 첫째, 새로 출시된 종속성의 설치를 지연시켜 보안 위험을 줄이는 새로운 `minimumReleaseAge` 설정입니다. 둘째, `.pnpmfile.cjs`에서 찾기 함수를 지원하여 `--find-by` 플래그를 사용하여 `pnpm list` 또는 `pnpm why`를 통해 사용자 지정 검색 규칙을 정의하고, 더욱 세분화된 종속성 검색을 가능하게 합니다. 예를 들어, `peerDependencies`에 특정 버전의 React를 가진 패키지를 찾을 수 있습니다. 버그 수정에는 Node.js 24의 사용 중지 경고 해결 및 Ctrl+C로 프로세스가 취소될 때 0이 아닌 종료 코드를 보장하는 것이 포함됩니다.

개발

웹사이트 쿠키 정책 설명

2025-09-18
웹사이트 쿠키 정책 설명

이 웹사이트는 두 가지 유형의 쿠키를 사용합니다. 기본 웹사이트 기능을 위한 필수 쿠키와 사용자 이름, 이메일, URL 등 여러 세션에 걸친 사용자 활동을 추적하기 위한 댓글 쿠키입니다. 필수 쿠키는 사용자의 쿠키 동의 설정을 30일 동안 저장합니다. 댓글 쿠키는 세션 쿠키이며 세션이 끝나면 만료됩니다.

개발

GZIP 수동 디코딩: Deflate 알고리즘 심층 탐구

2025-09-18

저자는 GZIP으로 압축된 문자열 "TOBEORNOTTOBEORTOBEORNOT"를 수동으로 디코딩하여 Deflate 알고리즘을 심층적으로 분석합니다. 이 글에서는 매직 넘버, 압축 방식, 타임스탬프 등의 필드를 포함한 GZIP 데이터 구조를 자세히 설명합니다. Deflate 압축의 핵심인 LZ77 알고리즘에 초점을 맞춥니다. LZ77은 문자와 복사 명령어(길이, 거리)를 사용하여 인코딩하여 데이터 크기를 효율적으로 줄입니다. 압축된 데이터를 수동으로 파싱하여 저자는 단계적으로 원래 문자열을 재구성합니다. 결론적으로, 비트 인코딩은 데이터 압축에서 바이트 인코딩보다 효율적이지만 수동 디코딩은 복잡합니다.

개발

손상된 GitHub Actions 워크플로를 통한 악성 npm 패키지 게시

2025-09-18
손상된 GitHub Actions 워크플로를 통한 악성 npm 패키지 게시

악성 GitHub Actions 워크플로가 공유 저장소에서 광범위한 게시 권한을 가진 npm 토큰을 유출하여 인기 있는 @ctrl/tinycolor를 포함한 20개 패키지의 악성 버전을 게시했습니다. 저자의 GitHub 계정과 저장소는 직접적으로 손상되지 않았지만, 공유 저장소에 대한 관리자 권한을 가진 공동 작업자가 공격을 성공적으로 수행할 수 있도록 했습니다. 공격자는 npm 토큰이 포함된 GitHub Actions 시크릿을 악용했습니다. GitHub 및 npm 보안 팀은 신속하게 대응하여 악성 패키지 게시를 중단했습니다. 저자는 캐시를 지우기 위해 정상 버전을 출시했습니다. 이 사건은 공유 저장소와 정적 토큰의 위험을 강조하며, 향상된 보안을 위해 npm의 신뢰할 수 있는 게시(OIDC)로 전환을 촉진하고 있습니다.

개발

Blender 창립자 Ton Roosendaal CEO 사임

2025-09-18

오픈소스 3D 소프트웨어 Blender의 창립자이자 CEO인 Ton Roosendaal이 2026년 1월 1일부로 CEO직에서 물러날 것이라고 발표했습니다. 그는 새롭게 설립된 Blender Foundation 감독 위원회로 이동할 예정입니다. 현 COO인 Francesco Siddi가 CEO직을 이어받고, 새로운 이사회 멤버로 Sergey Sharybin(개발 책임자), Dalai Felinto(제품 책임자), Fiona Cohen(운영 책임자)이 합류합니다. Roosendaal은 2019년부터 이를 준비해 왔으며, 팀이 Blender를 향후 10년 동안 이끌 것이라고 확신한다고 밝혔습니다.

개발

랜데부 해싱: 우수한 부하 분산 기능을 갖춘 분산 해싱 알고리즘

2025-09-18

랜데부 해싱은 각 키에 대해 우선 순위가 지정된 서버 목록을 생성하고 첫 번째 서버를 선택하여 분산 해시 테이블 문제를 해결합니다. 일관된 해싱과 달리 우수한 부하 분산을 제공하지만 조회 시간은 O(N)입니다. 소규모에서 중규모 분산 캐시 시스템에는 적합하지만 대규모 시스템에서 서버를 추가하는 경우 "첫 번째 선택" 불변량을 유지하기 위해 신중한 관리가 필요합니다. 인기는 일관된 해싱에 비해 뒤쳐졌지만, 이는 이전 발명과 고유한 장점에도 불구하고 "킬러 앱" 순간이 없었기 때문일 수 있습니다.

libxml2 주요 관리자 사임

2025-09-18
libxml2 주요 관리자 사임

libxml2의 주요 관리자인 Nick Wellnhofer가 사임을 발표하면서 프로젝트는 사실상 관리되지 않고 있습니다. 2025년 말까지 2.15 버전의 회귀 문제를 수정할 예정입니다. 이 소식은 커뮤니티에 감사와 우려를 불러일으켰습니다. 많은 개발자들이 libxml2의 장기적인 유지 관리에 대한 감사를 표명했고, 관리를 인계할 의사를 밝힌 사람도 있지만, 전임 관리자에게 기술적인 질문을 하는 사람들도 있습니다.

개발

arXivLabs: 커뮤니티 협력자와 함께 arXiv의 새로운 기능 개발

2025-09-18
arXivLabs: 커뮤니티 협력자와 함께 arXiv의 새로운 기능 개발

arXivLabs는 개발자와 연구자들이 arXiv 웹사이트에서 직접 새로운 arXiv 기능을 개발하고 공유할 수 있는 플랫폼입니다. 이 이니셔티브는 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 가치를 중시하며 모든 사용자를 위한 더 나은 arXiv 경험을 목표로 합니다. arXiv를 개선할 아이디어가 있으십니까? arXivLabs에 참여하세요!

개발

하루 만에 배우는 하이퍼바이저 내부 동작 및 고성능 퍼징

2025-09-18

이 1일 과정에서는 하이퍼바이저의 내부 작동 방식과 고성능 퍼징을 위한 하이퍼바이저 작성 기술을 빠르게 익힐 수 있습니다. VMCS/VMCB, 게스트-호스트 세계 전환, EPT/NPT 등 하드웨어 지원 가상화 기술의 기본 원리와 퍼징 중 가상 머신 내부 조사를 위한 예외 인터셉트 등 유용한 기능 및 기술을 다룹니다. 강의와 Hypervisor-101-in-Rust/hypervisor 디렉토리의 제공 자료 및 소스 코드를 활용한 실습으로 구성됩니다.

개발

Wasm 3.0 출시: GC, 64비트 주소 공간 등

2025-09-18
Wasm 3.0 출시: GC, 64비트 주소 공간 등

3년의 개발 끝에 WebAssembly (Wasm) 3.0 표준이 마침내 출시되었습니다! 이 중요한 업데이트에는 64비트 주소 공간 지원(주소 지정 가능한 메모리를 16엑사바이트로 확장), 여러 메모리 인스턴스 지원(대규모 애플리케이션 및 데이터 세트 처리 개선), 가비지 컬렉션(GC) 메커니즘(고급 언어를 Wasm으로 컴파일하는 프로세스를 크게 간소화), 형식화된 참조(형식 안전성 향상), 테일 콜, 예외 처리, 개선된 벡터 명령어 등이 포함됩니다. 이러한 개선을 통해 Wasm은 Java 및 OCaml과 같은 고급 언어의 컴파일링에 매우 적합해지며 적용 범위가 확대됩니다.

개발

C# 14의 Null 조건부 할당 연산자: 불필요한 if 문과 작별

2025-09-18
C# 14의 Null 조건부 할당 연산자: 불필요한 if 문과 작별

C# 14는 획기적인 기능인 Null 조건부 할당 연산자를 도입합니다. 이를 통해 오랫동안 C# 개발자들을 괴롭혀 온 NullReferenceException 문제가 우아하게 해결됩니다. 이전에는 Null 값 확인에 여러 개의 if 문이 필요했지만, 이제는 한 줄로 할당이 완료되어 코드 가독성이 크게 향상되고, 불필요한 코드가 줄어듭니다. 예를 들어, `config?.Settings?.RetryPolicy = new ExponentialBackoffRetryPolicy();` 는 복잡한 if 문 체크를 대체합니다. 증감 연산자는 지원되지 않으며, 과도한 사용은 피해야 하지만, .NET 10이 출시된 후 고려해 볼 만한 C# 14의 귀중한 개선 사항입니다.

초고 코어 수 Intel Xeon 프로세서 상에서 ClickHouse 성능 최적화

2025-09-17
초고 코어 수 Intel Xeon 프로세서 상에서 ClickHouse 성능 최적화

인텔의 최신 프로세서는 수백 개의 코어를 자랑하며, ClickHouse와 같은 분석 데이터베이스에 엄청난 기회와 과제를 동시에 제공합니다. 인텔 상하이 엔지니어들은 초고 코어 수 서버에서 ClickHouse의 성능을 체계적으로 분석하여 잠금 경합, 메모리 최적화, 부족한 병렬 처리, SIMD 명령어 활용, 가짜 공유라는 5가지 주요 병목 현상을 식별하고 최적화했습니다. 잠금 유지 시간 단축, 메모리 할당 개선, 직렬 단계의 병렬화, 더욱 스마트한 SIMD 알고리즘 채택, 메모리 레이아웃 최적화를 통해 초고 코어 수 시스템에서 ClickHouse의 확장성을 크게 향상시켜 개별 쿼리에서 최대 10배의 속도 향상과 전반적인 기하 평균 10% 향상을 달성했습니다. 이 작업은 초고 코어 수 시대의 데이터베이스 최적화에서 알고리즘과 메모리 레이아웃 모두에 대한 접근 방식이 필요함을 강조합니다.

UUIDv47: 정렬 가능한 UUID로 데이터베이스 친화적이며 API 호환성도 보장

2025-09-17
UUIDv47: 정렬 가능한 UUID로 데이터베이스 친화적이며 API 호환성도 보장

UUIDv47은 데이터베이스에서 정렬 가능한 UUIDv7을 저장하면서 API 인터페이스에는 UUIDv4로 표시하는 독창적인 방법입니다. UUIDv7의 타임스탬프 필드를 UUID 자체의 랜덤 비트에 연결된 키가 있는 SipHash-2-4 스트림으로 XOR 마스크하여 구현합니다. 이를 통해 데이터베이스 효율성과 API 호환성을 모두 만족시킵니다. C 언어로 구현된 라이브러리는 통합이 용이하며 키 복구 저항성도 갖춰 높은 보안성을 확보합니다.

개발

대수형은 무섭지 않다: 집합론적 관점에서의 간단한 설명

2025-09-17

이 글에서는 집합론적 관점에서, 즉 자료형을 값들의 집합으로 보는 관점에서 대수형을 쉽게 설명합니다. 구조체나 클래스와 유사한 곱 자료형과 Option이나 Result 자료형과 같은 합 자료형을 자세히 설명하고, 대수형과 객체지향적 접근 방식(상속이나 방문자 패턴)을 사용한 인터프리터 구현의 차이점을 비교합니다. 저자는 대수형이 더 간결하고 가독성과 유지보수성이 높으며 불필요한 복잡성을 피할 수 있다고 주장합니다. 결론적으로 곱 자료형과 합 자료형은 자료형을 결합하는 기본적인 방법이며 대부분의 프로그래밍 작업에 충분하다고 강조합니다.

마이크로소프트: 소프트웨어 공급망의 '악당'?

2025-09-17
마이크로소프트: 소프트웨어 공급망의 '악당'?

이 글은 인터넷 익스플로러부터 npm까지 소프트웨어 공급망 보안 문제를 재검토하며, 마이크로소프트가 npm 보안을 확보하기 위한 충분한 노력을 기울이지 않아 악성 코드가 만연하고 소프트웨어 개발 회사들을 위협하고 있다는 주장을 펼칩니다. 저자는 npm의 postinstall 스크립트에 심각한 보안 취약점이 존재하며 공격에 쉽게 악용될 수 있음을 지적하지만, npm의 소유자인 마이크로소프트는 거의 조치를 취하지 않았습니다. 따라서 소프트웨어 개발은 재미없는 일이 되었고 단순한 잡일이 되었습니다. 이 글은 안전한 소프트웨어 공급망을 구축하기 위한 업계 전체의 노력을 촉구합니다.

개발

DataTables.net, 도메인 하이재킹으로 인한 대규모 서비스 중단

2025-09-17

DataTables.net 웹사이트는 도메인 하이재킹 공격으로 인해 대규모 서비스 중단을 경험했습니다. 공격자는 정교한 피싱 캠페인과 위조 신분증을 사용하여 도메인 이전에 성공했습니다. 서버와 코드는 안전했지만, CDN 중단은 사용자에게 큰 영향을 미쳤습니다. 작성자는 서비스를 복구했으며, Subresource Integrity(SRI)와 같은 보안 조치를 취할 것을 권장합니다.

Stategraph: Terraform 상태 관리를 분산 시스템 문제로 재고해보다

2025-09-17
Stategraph: Terraform 상태 관리를 분산 시스템 문제로 재고해보다

Terraform은 오랫동안 파일 시스템 의미론을 사용하여 분산 시스템 문제를 해결해 왔으며, 그 결과 상태 관리가 비효율적이었습니다. Stategraph는 Terraform 상태를 방향 비순환 그래프로 취급하고 그래프 데이터베이스의 기능을 활용하여 서브그래프 격리, 정확한 잠금, 증분 새로 고침을 구현함으로써 이 문제를 해결합니다. 이를 통해 동시 처리량이 극적으로 향상되고 잠금 경합 및 느린 새로 고침 시간이 해결되어 대규모 팀이 효과적으로 협업할 수 있습니다. Stategraph는 백엔드로 PostgreSQL을 사용하며 기존 Terraform 워크플로와 호환되므로 마이그레이션을 위한 설정 변경이 필요 없습니다.

개발

Tabby: 강력한 터미널 에뮬레이터 및 SSH 클라이언트

2025-09-17
Tabby: 강력한 터미널 에뮬레이터 및 SSH 클라이언트

Tabby(이전 명칭 Terminus)는 Windows, macOS, Linux를 지원하는 고도로 구성 가능한 터미널 에뮬레이터, SSH, Telnet, 시리얼 클라이언트입니다. 테마, 사용자 지정 단축키, 분할 창, 탭 유지 기능을 갖추고 있으며 PowerShell, WSL, Git-Bash 등 다양한 쉘을 지원합니다. 또한 Docker 통합, 빠른 명령어 전송, 출력 저장 등 광범위한 플러그인을 지원하며, AI 어시스턴트와의 통합도 가능합니다. 기존 터미널 애플리케이션을 대체할 다용도 옵션이며, 개발자와 시스템 관리자에게 이상적인 도구입니다.

Fedora 43 Beta: 새로운 언어와 도구를 갖춘 세련된 업그레이드

2025-09-17
Fedora 43 Beta: 새로운 언어와 도구를 갖춘 세련된 업그레이드

Fedora 43 Beta가 출시되어 전반적인 개선을 제공합니다. 설치 프로그램은 Anaconda WebUI를 기본값으로 사용하고 DNF를 5로 업그레이드하며 모듈형 패키지를 제거하여 간소화되었습니다. GCC 15.2, glibc 2.42, LLVM 21 등 주요 개발 도구가 업데이트되었습니다. Python 3.14, Go 1.25, Idris 2, 그리고 실험적인 Hare 언어도 지원됩니다. 데이터베이스는 PostgreSQL 18과 MySQL 8.4(기본값)로 업그레이드되었습니다. GNOME은 Wayland로 완전히 전환되었으며 글꼴 렌더링이 개선되었습니다. 몇 가지 더 이상 사용되지 않는 구성 요소가 제거되어 더욱 깔끔하고 현대적인 Fedora 환경을 제공합니다.

개발 베타

Docker 컨테이너를 처음부터 만들기: 마운트 네임스페이스의 비밀 밝히기

2025-09-17
Docker 컨테이너를 처음부터 만들기: 마운트 네임스페이스의 비밀 밝히기

이 글에서는 표준 Linux 도구(unshare, mount, pivot_root)만 사용하여 간단한 Docker 스타일 컨테이너를 만드는 방법을 명확하고 간결하게 설명합니다. 컨테이너 격리에서 마운트 네임스페이스의 중요한 역할과 다른 네임스페이스(PID, cgroup, UTS, 네트워크)의 보완적인 역할에 중점을 둡니다. 단계별 실습 연습을 통해 독자는 마운트 네임스페이스가 마운트 테이블을 어떻게 격리하고 마운트 전파가 네임스페이스 간 상호 작용에 어떻게 영향을 미치는지 이해하게 됩니다. 최종적으로 독자는 표준 Linux 명령어만 사용하여 모든 기능을 갖춘 Docker 스타일 컨테이너를 만들 수 있습니다.

구문 규칙과 call/cc의 반복된 적용을 사용한 정규 순서 직접 스타일 베타 평가기

2025-09-17

이 논문은 위생적인 Scheme 매크로 내에서 call/cc의 덜 알려진 응용 프로그램, 특히 지루한 람다 계산을 돕는 데 사용하는 방법을 탐구합니다. 저자는 구문 규칙과 call/cc의 반복된 응용 프로그램을 교묘하게 결합한 정규 순서 직접 스타일 베타 정규화기를 제시하고, CPS 변환과 독창적인 직접 스타일 람다 계산기를 사용하여 그 정확성을 증명합니다. 이 논문은 또한 구분된 연속에 대해서도 논의하고, 간단한 매크로가 prompt 및 control과 같은 다양한 구분된 연속 연산자를 어떻게 구현할 수 있는지 보여줍니다. call/cc 기반 계승 함수 구현과 구분된 연속에 대한 논의는 이 접근 방식의 우아함과 실용성을 강조합니다.

개발
1 2 3 4 6 8 9 10 214 215