Category: 개발

BPF 스케줄러를 사용한 동시성 버그 퍼징

2025-02-14

FOSDEM에서 Meta의 Jake Hillion과 OpenJDK 개발자인 Johannes Bechberger는 BPF 스케줄링 프레임워크인 `sched_ext`를 사용하여 구축한 동시성 퍼징 스케줄러를 발표했습니다. 이 스케줄러는 의도적으로 스케줄링에 무작위성을 도입하여 지연을 발생시키고 스레드 실행 순서를 변경하여 재현하기 어려운 동시성 버그를 드러냅니다. 현재 성능 오버헤드가 크므로 개발 단계 디버깅에만 사용되지만, 실제 로직 오류를 발견하는 효과적인 방법을 제공하며, 최적화 후 향후 프로덕션 환경에서 사용될 것으로 기대됩니다.

개발

Go 1.24: Wasm 기능 향상 - WASI 리액터와 내보내기 함수

2025-02-14

Go 1.24는 `go:wasmexport` 지시어와 WASI 리액터 구축 기능 추가를 통해 WebAssembly(Wasm) 지원을 크게 향상시켰습니다. 이를 통해 Go 개발자는 함수를 Wasm으로 내보내 호스트 애플리케이션과의 원활한 통합을 가능하게 합니다. 새로운 WASI 리액터 모드는 재초기화 없이 여러 이벤트나 요청에 반응할 수 있는 지속적으로 실행되는 Wasm 모듈을 용이하게 합니다. Wasm의 단일 스레드 특성 및 형식 제한과 같은 제약 사항이 있지만, Go 1.24의 개선으로 더욱 강력하고 다용도의 Go 기반 Wasm 애플리케이션을 위한 길이 열립니다.

(go.dev)
개발

Neovim에 번들된 tee.exe가 Windows 11에서 의심스러운 동작을 보임

2025-02-14
Neovim에 번들된 tee.exe가 Windows 11에서 의심스러운 동작을 보임

Windows 11 샌드박스 환경에서 Neovim의 보안 테스트를 수행하는 동안 번들된 tee.exe 바이너리가 맬웨어로 감지되었습니다. 조사 결과 의심스러운 DNS 조회 및 네트워크 연결이 발견되었으며, VirusTotal에서 하나의 IP 주소가 악성으로 확인되었습니다. 작성자는 근본 원인 분석을 수행하고 이러한 보안 위험을 완화하기 위해 Neovim의 종속성을 소스에서 빌드할 것을 권장합니다.

개발 맬웨어

Windows 정품 인증 취약점: TSforge가 SPP를 무력화

2025-02-14
Windows 정품 인증 취약점: TSforge가 SPP를 무력화

보안 연구원들이 Windows 소프트웨어 보호 플랫폼(SPP)의 심각한 취약점을 발견하고 TSforge라는 악용 도구를 개발했습니다. 이 도구는 Windows 7 이후 모든 Windows 버전과 2013년 이후 모든 Office 버전의 정품 인증을 우회합니다. 연구원들은 SPP의 내부 작동 방식을 분석하여 확인 ID(CID) 검증 및 "신뢰할 수 있는 저장소" 데이터에 중점을 두었습니다. 마침내 정품 인증 데이터를 복호화하고 수정하는 키를 찾았습니다. 이 발견은 SPP의 보안 결함을 드러낼 뿐만 아니라 Windows 정품 인증 메커니즘에 대한 귀중한 통찰력을 제공합니다.

Asahi Linux 창립자 사임, 프로젝트 지속가능한 미래로 나아가

2025-02-14
Asahi Linux 창립자 사임, 프로젝트 지속가능한 미래로 나아가

창립자 Hector Martin의 사임 이후, Asahi Linux 팀은 프로젝트의 장기적인 지속가능성을 보장하기 위해 새로운 거버넌스 구조와 자금 조달 모델을 발표했습니다. 7명의 개발자가 의사 결정을 공유하고, Open Source Collective를 통해 기부금을 받아 이전 Patreon 모델을 대체합니다. 앞으로는 커널의 상류 병합과 지속적인 통합 테스트를 우선시하여 안정성과 유지 관리성을 향상시킬 것입니다. M3 및 M4 칩 지원은 당분간 보류되지만, M1 및 M2 장치에서는 DP alt 모드, Vulkan 드라이버의 스파스 이미지 지원, 내장 마이크와 같은 새로운 기능을 제공할 예정입니다.

개발

Doctor Droid: AI 기반 엔지니어링 팀을 위한 인시던트 대응 지원 도구

2025-02-14
Doctor Droid: AI 기반 엔지니어링 팀을 위한 인시던트 대응 지원 도구

Doctor Droid는 엔지니어링 팀이 프로덕션 인시던트 조사를 가속화할 수 있도록 돕는 스마트 어시스턴트를 개발하고 있습니다. 전 세계적으로 사용되는 이 오픈소스 플랫폼은 다운타임을 줄이고 개발자 생산성을 높이는 것을 목표로 합니다. 비전은 팀 구성원이 누구든 상급 엔지니어 없이 일반적인 프로덕션 문제를 디버깅할 수 있도록 하는 것입니다. Accel의 지원을 받고 Y Combinator W23 배치에 참여한 Doctor Droid는 열정적인 개발자를 팀에 초대하고 있습니다.

리눅스 커널 유지보수 담당자의 딜레마: 기술 부채와 커뮤니티 참여

2025-02-14

베테랑 리눅스 커널 유지보수 담당자인 Theodore Ts'o가 이메일에서 커널 유지보수의 어려움을 자세히 설명합니다. 그는 유지보수 담당자가 전지전능한 존재가 아니라 코드 품질을 유지하기 위해 노력하는 “가는 푸른 선”과 같다고 지적합니다. 기여자들은 코드가 승인된 후 사라지는 경우가 많아 유지보수 담당자가 뒷수습을 해야 하는 상황입니다. Ts'o는 개발팀에 커뮤니티에 적극적으로 참여하여 단기적인 목표뿐 아니라 코드 품질을 공동으로 유지 관리할 것을 촉구합니다. 그는 Rust for Linux를 커뮤니티 참여의 좋은 사례로 들면서 신뢰 구축과 코드 유지보수 부담 완화에는 더 많은 시간이 필요하다고 언급합니다.

피처 플래그: 함정과 구성 가능한 시스템 연구에서 얻은 교훈

2025-02-14

이 글에서는 소프트웨어 개발에서 널리 사용되는 피처 플래그의 잠재적인 문제점을 탐구합니다. 편리하지만 피처 플래그가 특히 피처 상호 작용, 플래그 제거, 테스트와 관련하여 유지 관리가 어려운 코드로 이어질 수 있다고 저자들은 주장합니다. 이 글에서는 구성 가능한 시스템과 소프트웨어 제품 라인에 대한 기존 연구를 검토하고, 구성 결정자의 명확한 정의, 적절한 바인딩 타임 선택, 표준화된 구현 및 문서화 사용, 조합 테스트와 같은 기법을 활용하여 소프트웨어 품질을 향상시키는 방법 등 얻은 교훈을 요약합니다.

Fedora의 손상된 OBS Studio Flatpak: 공식 패키지로 가장한 타사 패키지

2025-02-14
Fedora의 손상된 OBS Studio Flatpak: 공식 패키지로 가장한 타사 패키지

Fedora의 비공식 OBS Studio Flatpak 패키지는 고장난 것으로 보고되어 공식 개발자에게 사용자 불만이 제기되고 있습니다. 이는 단순한 일회성 사건이 아니며 많은 사용자가 Fedora의 공격적인 Flatpak 배포와 명확한 거부 옵션 부족에 대해 불만을 표시하고 있습니다. 작성자는 패키지 삭제 또는 타사로서의 명확한 라벨링을 요청하며, 작동하는 Flatpak 패키지를 고장난 것으로 교체한 결정에 의문을 제기하여 공식적인 노력을 훼손하고 있습니다.

개발

오픈소스의 기업 장악: 미묘한 권력 게임

2025-02-14
오픈소스의 기업 장악: 미묘한 권력 게임

이 글은 오픈소스 소프트웨어에 대한 대규모 기업 참여의 현실을 탐구합니다. 처음에는 상업적 이익을 유치하기 위해 고안되었지만, 기업들은 주로 비용 절감을 위해 오픈소스를 활용하며 커뮤니티에 대한 환원은 미미한 수준입니다. Heartbleed 취약성은 오픈소스 프로젝트의 자원 부족을 보여주었습니다. 기업 투자가 증가하고 있지만, 이는 직원들의 기여를 통해 이루어지고 있으며, 권력 불균형을 초래합니다. 더 많은 시간과 영향력을 가진 기업 직원들은 프로젝트의 우선 순위를 왜곡하여 재라이선싱으로 이어질 수 있습니다. 이 글에서는 오픈소스 거버넌스 모델 업데이트, 유지 관리자를 위한 자금 조달 다양화, 재라이선싱 위험이 있는 프로젝트 거부, 그리고 오픈 거버넌스의 공통된 정의 확립을 제안하여 기업 장악에 대한 회복력을 강화하고 더욱 공정한 생태계를 보장하는 것을 목표로 합니다.

arXivLabs: 커뮤니티 협력자와 함께 새로운 arXiv 기능 구축하기

2025-02-14
arXivLabs: 커뮤니티 협력자와 함께 새로운 arXiv 기능 구축하기

arXivLabs는 개발자들이 협력하여 새로운 arXiv 기능을 웹사이트에서 직접 개발하고 공유할 수 있는 프레임워크입니다. 참여자는 arXiv의 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 가치를 준수해야 합니다. arXiv 커뮤니티를 향상시킬 아이디어가 있으신가요? arXivLabs를 살펴보세요.

개발

스타트업 소프트웨어 엔지니어 면접 과정 해독

2025-02-13
스타트업 소프트웨어 엔지니어 면접 과정 해독

이 스타트업은 전화 면접과 이틀간의 현장 면접이라는 두 단계의 면접 과정을 사용합니다. 전화 면접에서는 스타트업과 팀워크에 대한 관심, 기본적인 웹 프로그래밍 기술, 프로젝트 경험을 평가합니다. 현장 면접에서는 기술 역량, 제품 사고방식, 팀 적합성을 더 자세히 살펴보고, 작은 프로젝트를 통해 의사소통, 소유권, 자율성을 중시합니다.

개발 면접 과정

JesseSort: 새로운 O(n log n) 정렬 알고리즘

2025-02-13
JesseSort: 새로운 O(n log n) 정렬 알고리즘

JesseSort는 'Rainbow'라는 새로운 데이터 구조를 사용하여 요소를 효율적으로 정리하고 병합하는 새로운 정렬 알고리즘으로, O(n log n)의 실행 시간을 달성합니다. 이 알고리즘은 삽입 단계(Rainbow 생성)와 병합 단계(밴드를 하나 남을 때까지 병합)로 구성됩니다. 자세한 내용은 JesseSort.pdf와 ResearchGate를 참조하십시오.

개발

Mill이 빌드 구성에 Scala를 사용하는 이유

2025-02-13

YAML이나 XML과 같은 대안 대신 Mill 빌드 시스템의 구성 언어로 Scala를 선택한 것에 대해 의문을 갖는 사람들이 있습니다. 이 기사에서는 범용 프로그래밍 언어를 사용하는 이점, Scala의 구체적인 장점, Java 가상 머신을 활용하는 이유라는 세 가지 주요 이유를 탐구하여 이 점을 설명합니다. Scala는 틈새 언어이지만, 고유한 특성으로 인해 프로젝트 규모에 관계없이 빌드 시스템 구성에 특히 적합합니다.

개발

MapTCHA: AI의 불확실성을 활용한 새로운 봇 방지 CAPTCHA

2025-02-13
MapTCHA: AI의 불확실성을 활용한 새로운 봇 방지 CAPTCHA

기존 CAPTCHA는 사용자 정보 유출 및 높은 유지 관리 비용이 문제였습니다. 본 논문에서는 AI 기반 컴퓨터 비전의 이미지 해석에서 불확실성을 활용한 새로운 CAPTCHA인 MapTCHA를 소개합니다. MapTCHA는 AI가 예측한 객체를 포함하는 이미지(알려진 양성, 알려진 음성, 알 수 없는 예시 혼합)를 사용자에게 보여주고, 정확하게 해석된 건물 윤곽 등의 객체를 식별하도록 요청합니다. 사용자 투표 결과에 따라 알 수 없는 이미지의 진위 여부가 결정되고, OpenStreetMap에 새로운 지도 데이터 소스를 제공합니다. 본 시스템은 오픈소스 AI 지원 매핑 시스템 fAIr을 사용하여 이미지 인식을 수행하며, 향후 더 많은 객체 및 이미지 유형으로 확장하고 다양한 로그인 시스템에 통합할 계획입니다.

개발

Turso와 Fly.io를 사용한 고성능 SQLite 에지 레플리카 구축

2025-02-13
Turso와 Fly.io를 사용한 고성능 SQLite 에지 레플리카 구축

이 튜토리얼에서는 Node.js와 Fly.io를 사용하여 Turso 데이터베이스 성능을 향상시키는 사용자 지정 SQLite 에지 레플리카를 구축하는 방법을 보여줍니다. 전 세계 여러 지역에 프록시 서버를 배포하고 Fly.io의 Anycast 네트워크를 활용하여 낮은 대기 시간의 데이터 액세스를 달성합니다. 이 솔루션은 데이터를 SQLite 파일에 로컬로 캐싱하고 기본 데이터베이스와 정기적으로 동기화하여 네트워크 대기 시간과 데이터 복제 비용을 줄이고 뛰어난 사용자 경험을 제공합니다. 튜토리얼에서는 Dockerfile 구성, Fly.io 배포, 프록시 서버 구현 세부 정보 및 보안 인증 메커니즘에 대해 설명합니다.

개발

40살 LibreOffice: 노병은 새로운 기술을 익힌다

2025-02-13
40살 LibreOffice: 노병은 새로운 기술을 익힌다

1985년에 탄생한 베테랑 오픈소스 오피스 스위트 LibreOffice가 FOSDEM 2025에서 놀라운 새로운 기능을 선보였습니다. Allotropia 팀이 개발한 CRDT 기술을 사용한 Writer의 분산형 실시간 협업 기능을 통해 Google Docs와 유사하게 여러 사용자가 동시에 편집할 수 있습니다. 하지만 중요한 점은 인터넷 연결 없이 로컬에서 작동한다는 것입니다. 또한 WebAssembly 버전인 ZetaOffice는 모든 OS와 CPU 아키텍처의 브라우저에서 작동하며, JavaScript를 통해 스크립트 제어 및 통합이 가능합니다. Web 애플리케이션에 강력한 리치 텍스트 편집 기능을 제공하며, Microsoft의 독점에 도전할 가능성을 가지고 있습니다.

커뮤니티 압력과 상위 프로젝트 기여의 어려움으로 Asahi Linux 개발 리더 사임

2025-02-13
커뮤니티 압력과 상위 프로젝트 기여의 어려움으로 Asahi Linux 개발 리더 사임

Apple Silicon에 Linux를 성공적으로 이식한 Asahi Linux 프로젝트의 주요 개발자가 사임했습니다. 인상적인 성과에도 불구하고, 개발자는 기능 추가 요구를 하는 커뮤니티의 끊임없는 압력, Linux 커널에 대한 상위 기여의 어려움, 그리고 개인적인 어려움을 사임 이유로 밝혔습니다. 이 사임은 대규모 오픈소스 프로젝트를 유지하는 어려움을 보여주며, 커뮤니티 역학과 Linux 커널 기여 프로세스에 대한 우려를 제기합니다.

개발

클라우드 네이티브 인프라의 딜레마: 확장성, 비용, 유지보수 문제

2025-02-13
클라우드 네이티브 인프라의 딜레마: 확장성, 비용, 유지보수 문제

많은 기업들이 클라우드 인프라 관련 문제에 직면하고 있습니다. 확장성 준비 부족으로 인해 리소스 낭비와 비용 증가가 발생합니다. 예측 불가능한 워크로드로 인해 콜드 스타트 시간이 길어집니다. 수백 또는 수천 개의 애플리케이션은 지속적인 유지보수 및 업데이트가 필요하며, 취약성 패치 및 종속성 관리가 어렵습니다. 여러 클라우드 공급업체, 멀티리전, 에지에서의 배포도 복잡성을 증가시킵니다. 이러한 문제는 비효율적인 인프라와 운영 비용 증가로 이어집니다.

개발

Microsoft Edge, Chromium 렌더링 엔진의 흐릿한 텍스트 렌더링 문제 해결

2025-02-13
Microsoft Edge, Chromium 렌더링 엔진의 흐릿한 텍스트 렌더링 문제 해결

Chromium 렌더링 엔진으로 마이그레이션한 후, Microsoft Edge에서 텍스트가 흐릿하게 보인다는 사용자 피드백이 있었습니다. 조사 결과, Skia 엔진의 텍스트 명암 및 감마 값 설정이 이전 DirectWrite 엔진과 다르며 Windows ClearType Tuner 설정도 읽지 않는다는 사실이 밝혀졌습니다. Edge 팀은 Google Chrome 팀과 협력하여 사용자 조사를 실시했습니다. 결과적으로 기본 텍스트 명암 값을 1.0으로 조정하여 문제를 해결하고, Chromium 브라우저의 Windows 환경에서 보다 자연스럽고 일관된 텍스트 표시를 구현했습니다. 이 수정 사항은 Chrome 132 이상 버전에서 사용할 수 있습니다.

arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

2025-02-13
arXivLabs: 커뮤니티와의 협업을 통한 실험 프로젝트

arXivLabs는 협력자들이 arXiv의 새로운 기능을 웹사이트에서 직접 개발하고 공유할 수 있는 프레임워크입니다. arXivLabs에 참여하는 개인 및 조직은 개방성, 커뮤니티, 우수성, 사용자 데이터 개인 정보 보호라는 arXiv의 가치를 수용합니다. arXiv는 이러한 가치에 전념하고 있으며, 이러한 가치를 공유하는 파트너와만 협력합니다. arXiv 커뮤니티를 개선할 아이디어가 있으십니까? arXivLabs에 대해 자세히 알아보세요.

개발

BigQuery의 새로운 파이프 쿼리 구문: 읽기 쉽고, 작성하기 쉽고, 유지 관리하기 쉬움

2025-02-13
BigQuery의 새로운 파이프 쿼리 구문: 읽기 쉽고, 작성하기 쉽고, 유지 관리하기 쉬움

Google BigQuery는 선형 구조를 사용하여 SQL 쿼리 작성 및 유지 관리를 간소화하는 새로운 파이프 쿼리 구문을 도입했습니다. 이 구문을 사용하면 SELECT, 집계, GROUP BY, JOIN, WHERE 등의 연산자를 임의의 순서로 원하는 만큼 적용할 수 있으므로 쿼리 로직이 더욱 명확하고 이해하기 쉬워집니다. 표준 SQL의 엄격한 절 순서, 복잡한 쿼리에서 CTE 또는 중첩된 하위 쿼리가 필요한 문제 등을 해결하며, 데이터 조작의 유연성을 높이기 위해 EXTEND, SET, DROP, RENAME 등의 새로운 파이프 연산자가 도입되었습니다.

오픈소스 라이선스 분쟁: 소프트웨어 자유를 위한 싸움

2025-02-13
오픈소스 라이선스 분쟁: 소프트웨어 자유를 위한 싸움

소프트웨어 자유 보존 협회(SFC)는 Neo4j, Inc. 대 PureThink, LLC 소송에서 Affero General Public License version 3(AGPLv3) 7조에 따른 하위 라이선시가 '추가 제한'을 제거할 권리를 지지하는 의견서(amicus brief)를 제출했습니다. 핵심 쟁점은 Neo4j가 추가한 'Commons Clause'를 제거할 수 있는지 여부입니다. SFC는 원 라이선서가 부과한 경우에도 하위 라이선시는 AGPLv3 7조 4항에 따라 이러한 제한을 제거할 권리가 있다고 주장합니다. SFC의 의견서는 AGPLv3 7조와 10조에 대한 상세한 법적 분석을 제공하며, 하급 법원이 Neo4j의 해석에 잘못 동의했다고 주장합니다. 이는 커뮤니티의 '추가 제한' 추가 및 제거에 대한 이해를 근본적으로 바꿀 수 있습니다. 이 판결은 소프트웨어 자유와 사용자 권리에 큰 영향을 미칠 것입니다.

개발

Wayland의 부활: 3년 후 회고

2025-02-13

3년 전, Wayland에 대한 비판적인 게시물이 뜨거운 논쟁을 불러일으켰습니다. 현재 저자는 과거를 돌아보며 Wayland가 놀라운 발전을 이루었음을 알게 되었습니다. 명시적 동기화나 렌더링 스레드 정지 등 이전의 문제점들이 효과적으로 해결되었습니다. Mesa의 개선, 프로토콜 개선 및 커뮤니티의 적극적인 참여가 Wayland의 발전을 주도해 왔습니다. 외부 표면 임베딩이나 다중 창 관리 등 여전히 과제는 남아 있지만, Wayland의 미래는 밝습니다.

개발 그래픽

Wger: 오픈소스 운동 및 다이어트 관리 앱

2025-02-13
Wger: 오픈소스 운동 및 다이어트 관리 앱

Wger는 개인 운동, 체중 및 식단 계획을 관리하기 위한 무료 오픈소스 웹 애플리케이션입니다. 간단한 헬스장 관리 도구로도 기능하며, 쉬운 통합을 위해 REST API를 제공합니다. Docker를 통해 쉽게 배포할 수 있으며, 빠른 테스트를 위한 데모 이미지가 있습니다. 코드와 콘텐츠는 오픈소스이며, 번역도 지원됩니다.

개발

Task Explorer: 강력한 크로스 플랫폼 작업 관리자

2025-02-13
Task Explorer: 강력한 크로스 플랫폼 작업 관리자

Task Explorer는 실행 중인 애플리케이션을 모니터링할 뿐만 아니라 해당 애플리케이션의 활동에 대한 심층적인 통찰력을 제공하는 강력한 작업 관리 도구입니다. 사용자 인터페이스는 속도와 효율성을 우선시하여 최소한의 상호 작용으로 실시간 프로세스 데이터를 제공합니다. 정보는 접근하기 쉬운 패널에 표시되며 프로세스를 선택하면 화면 하단에 자세한 정보가 표시되고 화살표 키를 사용하여 쉽게 탐색할 수 있습니다. 동적 데이터 새로 고침을 통해 시스템 성능 및 동작에 대한 실시간 통찰력을 얻을 수 있습니다.
고급 기능으로는 스택 추적을 표시하는 스레드 패널, 프로세스 메모리를 보고 편집하는 메모리 패널, 열려 있는 핸들을 표시하는 핸들 패널, 연결을 표시하는 소켓 패널, 로드된 DLL을 나열하는 모듈 패널 등이 있습니다. 강력한 시스템 모니터링 기능은 CPU, 핸들, 네트워크 트래픽, 디스크 액세스에 대한 실시간 그래프를 제공합니다. 시스템 정보 패널을 통해 시스템 서비스를 제어할 수 있습니다.
Qt 프레임워크를 사용하여 구축된 Task Explorer는 Windows 7 이상(32/64비트)과 호환되며 Linux 지원도 계획 중입니다.

비트 조작을 이용한 부동 소수점 곱셈 근사: 영리한 기법

2025-02-13
비트 조작을 이용한 부동 소수점 곱셈 근사: 영리한 기법

이 글에서는 비트 조작을 사용하여 부동 소수점 곱셈을 근사하는 영리한 방법을 설명합니다. 이 방법은 부동 소수점 수를 정수로 변환하고, 더하고, 지수를 조정하고, 다시 부동 소수점 수로 변환하는 것입니다. 지수의 오버플로우나 언더플로우가 발생하면 이 방법은 치명적인 오류를 일으키지만, 대부분의 경우 놀라울 정도로 정확하며, 정답의 7.5% 이내에 있습니다. 저자는 이 방법의 기본 원리를 자세히 설명하고, 단순한 덧셈이 왜 곱셈을 근사할 수 있는지 설명합니다. 실제로는 네이티브 부동 소수점 곱셈보다 효율적이지 않을 수 있지만, 간결성과 특정 상황에서의 전력 절감 가능성으로 인해 흥미로운 탐구 대상입니다.

나의 Vim 워크플로우: 10년간의 생산성 향상 팁과 자동화

2025-02-13

이 글에서는 10년간의 Vim(특히 Windows의 GVim) 사용 경험을 자세히 설명하며, 생산성을 높이는 팁과 사용자 지정 설정 모음으로 정리합니다. 핵심은 특정 Vim 스크립트가 아니라, 자신의 워크플로우를 파악하고 최적화하는 중요성에 있습니다. 저자는 간소화된 작업을 위한 사용자 지정 키 매핑을 보여줍니다. ``을 `` 대신 사용하는 것, 오류 처리를 통한 버퍼 자동 저장, 시스템 클립보드로의 빠른 복사 등입니다. 파일 저장 전 디렉토리를 자동으로 생성하고 :terminal 내에서 Git 명령을 실행하는 기술도 설명합니다. 이 글에서는 독자들에게 Vim 도움말 페이지를 탐색하고 자신의 워크플로우 최적화를 반복할 것을 권장합니다.

개발

자체 호스팅 웹 기반 코딩 환경

2025-02-13

Glitch의 제한에 지친 저자는 자신만의 웹 기반 코딩 환경을 구축했습니다. 백엔드는 Django이며, 프로젝트 파일은 로컬에 저장되고, 도메인은 Let's Encrypt 와일드카드 인증서로 관리됩니다. 템플릿 재사용, 실시간 미리보기, 자동 저장, Makefile 빌드는 물론 Elm 패키지 설치 및 쉘 명령어 실행 기능까지 통합되어 있습니다. Git 통합도 추가되어 Jujutsu를 사용하여 버전 관리를 간소화하고, Forgejo의 create-on-push 기능을 활용하여 매끄러운 배포를 실현했습니다. 현재 실험적인 작품부터 일상적인 도구까지 80개의 프로젝트를 호스팅하고 있습니다.

개발 코딩 환경

NESFab: NES 게임을 위한 고성능 프로그래밍 언어

2025-02-13

NESFab은 NES 게임을 만들도록 설계된 새로운 프로그래밍 언어입니다. 8비트 제한에 맞춰 최적화되어 C언어보다 사용하기 쉽고 더 빠른 어셈블리 코드를 생성합니다. 사용하기 쉬운 라이브러리를 갖추고 있어 첫 번째 NES 게임이든 100번째 게임이든 쉽게 시작할 수 있습니다. 자동 뱅크 스위칭, 간소화된 에셋 로딩, 개발 속도를 높이는 MapFab 레벨 에디터와의 통합 등의 기능이 있습니다. 현재 베타 버전이지만, NESFab은 GCC나 LLVM과 같은 컴파일러를 벤치마크에서 능가하며 최고의 6502 컴파일러가 될 가능성이 있습니다.

개발
1 2 161 162 163 165 167 168 169 214 215