Category: 개발

Ghostty 1.1.0 출시: 심각한 버그 수정 및 사용자 경험 개선

2025-01-31
Ghostty 1.1.0 출시: 심각한 버그 수정 및 사용자 경험 개선

Ghostty 1.1.0은 한 달간의 개발 기간을 거쳐 84명의 기여자의 564개 커밋을 통합했습니다. 이번 릴리스는 초기 1.0 릴리스에 대한 피드백을 바탕으로 심각한 버그 수정과 사용자 경험 개선에 중점을 둡니다. 주요 개선 사항은 다음과 같습니다. 파일 디스크립터 누수 수정; Linux에서 서버측 장식(SSD) 지원을 통해 다양한 데스크톱 환경에서 더욱 자연스러운 모양 제공; IME의 신뢰성 및 일관성 대폭 향상; 새로운 `performable:` 키 바인딩 접두사; macOS의 알파 블렌딩 개선으로 더욱 정확한 색상 표현; 네이티브 전체 화면 창을 지원하는 등의 빠른 터미널 기능 대폭 향상. 향후 버전에서는 안정성 및 유지 관리를 개선하기 위해 `gtk-adwaita` 옵션을 제거하고 `libadwaita` 종속성을 강제 적용할 예정입니다.

Go 언어 설계: 의도적인 절충

2025-01-31

이 글은 Go 프로그래밍 언어의 설계 철학과 장단점을 탐구합니다. Google에서 탄생한 Go는 대규모 동시 서버 코드의 작성 및 유지 관리를 단순화하는 것을 목표로 했습니다. 저자는 Go의 특징, 즉 단순화된 파일 시스템 API, 연산자 오버로딩 부재, 명시적인 오류 처리, 다른 언어와의 상호 운용성을 분석하여 설계 선택의 절충점을 설명합니다. 이전에는 제네릭이 없었던 점이나 Windows 지원이 그다지 좋지 않다는 점 등 비판받는 부분도 있지만, 저자는 이러한 점들이 주요 설계 목표를 달성하기 위한 의도적인 절충이며, 궁극적으로 Go를 대규모 엔지니어링 프로젝트에 적합한 효율적이고 사용하기 쉬운 언어로 만들었다고 주장합니다.

Hydro: Rust 기반 고성능 분산 프로그래밍 프레임워크

2025-01-31
Hydro: Rust 기반 고성능 분산 프로그래밍 프레임워크

Hydro는 Rust를 위한 고급 분산 프로그래밍 프레임워크로, 확장 가능하고 구성에 의해 정확한 분산 서비스를 생성할 수 있도록 합니다. 액터나 RPC와 같은 기존 아키텍처와 달리 Hydro는 코레오그래픽 API와 고성능 단일 스레드 DFIR 런타임을 사용합니다. Hydro Deploy를 통해 로컬 환경과 클라우드 환경 모두를 지원하는 배포를 간소화합니다. 2단계 컴파일 프로세스를 사용하여 로컬에서 배포 계획을 생성한 다음 각 머신에 대한 DFIR 바이너리로 컴파일하고 계획과 클라우드 리소스 사양에 따라 클라우드에 배포합니다. Hydro는 2단계 커밋 및 Paxos와 같은 클래식 프로토콜의 구현을 포함하여 다양한 고성능 분산 시스템을 구축하는 데 사용되었습니다.

개발

sixos: systemd 대신 s6을 사용하는 Nixpkgs 기반 OS

2025-01-31
sixos: systemd 대신 s6을 사용하는 Nixpkgs 기반 OS

Adam Joseph는 Nixpkgs 기반의 새로운 운영 체제 sixos를 발표했습니다. sixos는 systemd 대신 s6을 사용하며, systemd의 단일 아키텍처를 거부하고 서비스 관리를 위해 더 간단한 infuse 조합기를 사용합니다. Nixpkgs의 패키지 관리 방식과 유사하게 작동합니다. 또한 ownerboot를 통합하여 펌웨어의 완벽한 버전 관리 및 보안 관리를 제공하며, 펌웨어와 소프트웨어 간의 인위적인 구분을 없앱니다. 현재 워크스테이션, 서버, 라우터 등 다양한 기기에서 실행되고 있습니다.

개발

최소주의 Ruby X11 윈도우 매니저: rubywm

2025-01-31
최소주의 Ruby X11 윈도우 매니저: rubywm

기존 윈도우 매니저에 불만을 품은 작성자가 1000줄도 채 되지 않는 순수 Ruby 코드(X11 드라이버 포함)로 최소주의 윈도우 매니저 rubywm을 만들었습니다. 타일 및 플로팅 윈도우 레이아웃을 지원하지만, 윈도우 장식 및 드래그 앤 리사이즈 기능은 없습니다. 모든 키보드 조작은 sxhkd와 같은 외부 도구에 위임되며, 통신은 X11 ClientMessage 이벤트를 통해 이루어집니다. 현재 단일 모니터만 지원하며, 실험 단계이므로 충돌이 발생할 수 있습니다. 작성자의 주요 목표는 개인적인 사용이며, 대규모 사용자 기반을 목표로 하지 않습니다.

671B 파라미터 DeepSeek R1 모델의 로컬 배포

2025-01-31

이 글에서는 Ollama를 사용하여 671B 파라미터 DeepSeek R1 대규모 언어 모델을 로컬로 배포한 경험을 자세히 설명합니다. 저자는 1.73비트와 4비트의 두 가지 양자화 버전을 실험했습니다. 각각 최소 200GB와 500GB의 메모리가 필요합니다. 4개의 RTX 4090과 384GB DDR5 RAM이 장착된 워크스테이션에서 테스트 결과, 1.73비트 버전이 생성 속도는 약간 더 빠르지만, 4비트 버전이 더 안정적이며 부적절한 콘텐츠를 생성할 가능성이 적은 것으로 나타났습니다. 저자는 모델을 더 가벼운 작업에 사용하고 속도가 크게 저하되는 긴 텍스트 생성을 피할 것을 권장합니다. 배포에는 모델 파일 다운로드, Ollama 설치, 모델 파일 생성, 모델 실행이 포함되며, 메모리 부족 오류를 방지하기 위해 GPU 및 컨텍스트 창 매개변수를 조정해야 할 수 있습니다.

개발 모델 배포

arXivLabs: 커뮤니티와 협력하는 실험 프로젝트

2025-01-31
arXivLabs: 커뮤니티와 협력하는 실험 프로젝트

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

Reaktiv: 파이썬을 위한 반응형 프로그래밍 라이브러리

2025-01-31
Reaktiv: 파이썬을 위한 반응형 프로그래밍 라이브러리

Reaktiv는 Angular의 반응형 모델에서 영감을 받아 일급 async/await 지원을 제공하는 파이썬용 반응형 프로그래밍 라이브러리입니다. 데이터에 종속적인 신호의 생성 및 관리를 용이하게 하고, 데이터가 변경되면 종속성을 자동으로 업데이트합니다. 간단한 API를 통해 동기 및 비동기 컨텍스트를 모두 지원하며, 자동 종속성 추적, 외부 종속성 없음, 효율적인 메모리 관리 등의 기능을 갖추어 비동기 프로그래밍의 복잡성을 크게 줄입니다.

Jane Street의 10년 여정: Jenga에서 Dune으로

2025-01-30
Jane Street의 10년 여정: Jenga에서 Dune으로

Jane Street는 처음에 OCaml 빌드 시스템인 Jenga를 개발했지만, 제한적인 기능으로 인해 채택률이 낮았고 오픈소스화도 취소되었습니다. 그 후 더 간단한 Jbuilder를 만들었는데, 속도 때문에 예상치 못한 인기를 얻었고, 결국 Dune으로 발전했습니다. 수년간의 노력 끝에 Jane Street 팀은 7000만 줄의 코드로 구성된 내부 빌드 시스템을 Jenga에서 Dune으로 성공적으로 마이그레이션하여 빌드 속도를 높이고 Dune의 미래 발전을 위한 견고한 기반을 마련했습니다.

개발

Distr: 엔터프라이즈 소프트웨어 배포 간소화

2025-01-30
Distr: 엔터프라이즈 소프트웨어 배포 간소화

Distr은 고객 제어 또는 공유 책임 환경에 대한 엔터프라이즈 소프트웨어 배포를 간소화합니다. 직관적인 웹 UI를 통해 모든 배포 및 연결된 에이전트를 볼 수 있습니다. 화이트 라벨 고객 포털을 통해 고객은 배포를 제어할 수 있습니다. 풍부한 SDK를 사용하여 API에 액세스할 수 있습니다. 완전히 오픈 소스이며 자체 호스팅이 가능합니다. Distr Hub는 Docker 이미지로 배포되며 Docker Compose를 사용한 배포 예제를 제공합니다. 포괄적인 문서에서는 자체 호스팅 및 소스에서 빌드하는 방법을 설명하며, JavaScript SDK를 사용하여 애플리케이션을 통합할 수 있습니다.

Git 저장소에서 가장 오래된 줄 찾기

2025-01-30

작성자는 Git 저장소에서 가장 오래된 코드 줄을 찾는 쉘 스크립트를 공유합니다. 이 스크립트는 `git blame` 명령어와 `find`, `awk` 명령어를 사용하여 이진 파일이 아닌 파일을 필터링하고 가장 오래된 커밋의 줄을 식별합니다. 이를 통해 프로젝트의 역사를 엿볼 수 있습니다. 현재 2000년 이후 커밋으로 제한되지만, 코드베이스의 진화를 엿볼 수 있는 흥미로운 방법입니다.

개발 코드 이력

고객 워크플로 자동화: 온보딩부터 규정 준수까지

2025-01-30

이 글에서는 세 가지 자동화된 고객 워크플로우를 설명합니다. 고객 온보딩(문서 수집, 신원 확인, 계정 설정, 환영 전화, 자동화된 환영 자료), KYC(고객 신원 확인, 위험 평가, 문서 수집, 배경 조사, 규정 준수 기록 유지), 계약 검토(초안 검토, 법률팀 승인, 이해 관계자 피드백, 개정 추적, 전자 서명 수집, 최종 문서 보관)입니다. 이러한 프로세스 자동화를 통해 효율성을 크게 높이고 위험을 줄이며 고객 경험을 향상시킬 수 있습니다.

Stats: 메뉴 바에 상주하는 macOS 시스템 모니터

2025-01-30
Stats: 메뉴 바에 상주하는 macOS 시스템 모니터

Stats는 메뉴 바에 상주하는 macOS 시스템 모니터링 애플리케이션입니다. CPU 및 GPU 사용률, 메모리 사용량, 디스크 I/O, 네트워크 활동, 배터리 레벨 등의 실시간 정보를 제공합니다. macOS 10.15(Catalina) 이상 버전과 호환되며, 센서 데이터(온도, 전압, 전력) 및 Bluetooth 기기 모니터링 기능도 제공합니다. M1 칩을 탑재한 Mac에서는 센서 데이터를 얻으려면 HID 센서를 수동으로 활성화해야 합니다. Intel 기반 Mac에서는 Intel Power Gadget을 설치하여 CPU 클럭 주파수를 표시할 수 있습니다. 전력 소모를 줄이려면 센서나 Bluetooth와 같은 모듈을 비활성화할 수 있습니다. MIT 라이선스하에 배포되며, 번역 및 기능 개선에 대한 기여를 환영합니다.

iterm-mcp를 사용하여 LLM으로 iTerm 제어하기

2025-01-30
iterm-mcp를 사용하여 LLM으로 iTerm 제어하기

iterm-mcp는 LLM이 iTerm 세션에 접근할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 모델에 필요한 출력만 읽음으로써 토큰을 효율적으로 사용합니다. LLM이 iTerm과 상호 작용하여 질문에 답하거나 작업을 수행할 수 있는 자연스러운 통합을 제공합니다. REPL 지원을 통한 완벽한 터미널 제어도 가능합니다. npx를 통해 쉽게 설치할 수 있으며 Claude Desktop과 같은 클라이언트와의 통합도 용이합니다. 단순성을 우선시하지만, 내장된 보안 제한이 없으므로 사용자는 모델의 활동을 모니터링하고 주의해야 합니다.

개발

APL 세계 탐구: 러시아 문헌 검토

2025-01-30

1990년 모스크바에서 출판된 러시아어 문헌 검토인 "APL 언어의 세계"는 Kondrashev 등이 저술했으며, APL 프로그래밍 언어에 대한 개요를 제공합니다. 이 논문은 APL의 역사, 응용 프로그램 및 특징에 대한 통찰력을 제공하며 APL을 연구하는 연구자들에게 흥미로울 것입니다.

개발 문헌 검토

Audiocube: 혁신적인 독립형 3D DAW

2025-01-30
Audiocube: 혁신적인 독립형 3D DAW

복잡한 VST 플러그인 설정은 이제 그만! Audiocube는 사용자 정의 오디오, 물리 및 그래픽 엔진으로 구축된 독립형 3D 디지털 오디오 워크스테이션(DAW)으로, 비할 데 없는 깊이와 제어 기능을 제공합니다. 몰입형 오디오 제작 및 탐색을 가능하게 하여 어떤 플러그인에서도 얻을 수 없는 수준의 창의적인 자유를 제공합니다. 오디오 제작에 대한 현대적인 접근 방식을 찾는 음악가에게 완벽한 솔루션입니다.

LibreOffice 다운로드 수 4억 돌파! 데스크톱 오피스 스위트의 화려한 귀환

2025-01-30
LibreOffice 다운로드 수 4억 돌파! 데스크톱 오피스 스위트의 화려한 귀환

LibreOffice 다운로드 수 히스토그램은 놀라운 생명력을 보여줍니다. 2011년부터 2014년까지 치열한 경쟁 속에서도 다운로드 수는 3천만 건으로 급증했습니다. 그 후 몇 년간은 침체기를 겪었지만, 데스크톱 오피스 스위트가 시대에 뒤처지는 운명에 처해 있다고 여겨졌던 시기였습니다. 하지만 상황은 바뀌었고, 클라우드와 데스크톱 오피스 스위트의 공존을 사용자들이 인식하면서 LibreOffice 다운로드 수는 다시 급상승했습니다. 2019년에는 다운로드 카운터 공격이 있었지만, LibreOffice는 성장을 지속하여 2024년 3천5백만 다운로드를 돌파했고, 2011년 이후 누적 다운로드 수는 4억 건을 넘었습니다. 이는 개발팀, 기여자, 그리고 모든 사용자들의 지원을 증명하는 것입니다.

Temporal API: JavaScript의 날짜 및 시간 처리 혁신

2025-01-30
Temporal API: JavaScript의 날짜 및 시간 처리 혁신

Temporal API는 JavaScript에서 날짜 및 시간 조작을 간소화합니다. 중국 음력 등 다양한 달력 시스템을 지원하며, 시간대 변환을 매끄럽게 처리하고 직관적인 비교 메서드를 제공합니다. 예를 들어, 다음 중국 설날을 계산하거나 미래의 Unix 타임스탬프까지의 기간을 결정할 수 있습니다. `toLocaleString`의 동작은 브라우저 구현에 따라 약간 다르지만, Temporal API는 강력한 날짜 및 시간 연산을 제공하여 개발자에게 큰 도움이 됩니다.

개발 날짜 시간

teemoji: 터미널 출력에 이모지를 추가하는 CLI 도구

2025-01-30
teemoji: 터미널 출력에 이모지를 추가하는 CLI 도구

teemoji는 기존 tee 유틸리티에서 영감을 받은 명령줄 도구입니다. Core ML 모델을 사용하여 각 텍스트 행에 적절한 이모지를 예측하고 추가하여 명령줄 워크플로에 재미있고 맥락에 맞는 요소를 더합니다. 이모지 예측, 표준 입출력 지원, 파일 처리 옵션(추가 또는 덮어쓰기), 기존 쉘 파이프라인과의 쉬운 통합 등의 기능이 있습니다. Homebrew를 통해 간편하게 설치할 수 있으며, 사용법은 표준 tee 명령어와 유사하며 이모지 기능과 유용한 옵션이 추가되었습니다.

개발

자바스크립트 활성화 프롬프트: 작은 축하

2025-01-30
자바스크립트 활성화 프롬프트: 작은 축하

웹페이지는 종이 가루 애니메이션을 표시하고 애플리케이션을 실행하려면 자바스크립트를 활성화하라는 메시지를 사용자에게 표시합니다. 이것은 사용자에게 필요한 조치를 재미있는 방식으로 상기시키는 일반적인 UX 디자인입니다.

개발

하드코어 Rust: 동적 메모리 할당 없는 광선 추적기

2025-01-30

이 글에서는 최소한의 인위적으로 제한된 API(동적 메모리 할당 없음)만 사용하여 Rust 애플리케이션을 작성하는 사례 연구를 설명합니다. 저자는 RAII(Resource Acquisition Is Initialization)가 지저분한 리소스 관리로 이어진다고 비판하며, "하드코어 모드"를 제안합니다. 이는 프로그램을 `std` 바이너리와 `#![no_std] no_alloc` 라이브러리로 분할하여 바이너리만 OS에서 직접 리소스를 요청하도록 허용하는 것입니다. 장난감 광선 추적기를 예로 사용하여 저자는 이 "하드코어 모드"에서 픽셀 버퍼, 병렬 처리, 메모리 할당기, 장면 파싱을 처리하는 방법을 자세히 설명하고, 궁극적으로 동적 메모리 할당 없이 광선 추적기를 구현합니다.

개발

디컴파일 연구의 부활: 2024년 회고

2025-01-30
디컴파일 연구의 부활: 2024년 회고

2024년은 디컴파일 연구의 눈에 띄는 부활의 해였습니다. 이 해에 발표된 학술 논문은 이 분야의 역대 최고 수준 논문의 약 30%를 차지합니다. 본 게시글에서는 2024년 디컴파일 연구의 학문적 및 이념적 발전을 요약합니다. 학술 논문이 급증했으며, 그중 4편은 '우수한' 디컴파일의 정의에 초점을 맞추었고, 4편은 심볼 예측 및 코드 단순화 등 AI의 역할을 탐구했습니다. 거의 모든 논문에 오픈소스 구현이 포함되어 산업계 채택을 촉진했습니다. 이 해에는 디컴파일 선구자인 크리스티나 시푸엔테스 박사의 강연 투어와 Recon 2024의 저명한 전문가 패널도 개최되어 이 분야를 더욱 발전시켰습니다.

개발 디컴파일

Mathesar: Postgres용 오픈소스 스프레드시트 유사 인터페이스

2025-01-30
Mathesar: Postgres용 오픈소스 스프레드시트 유사 인터페이스

Mathesar는 Postgres 데이터를 직관적인 스프레드시트 유사 인터페이스로 보고, 편집하고, 쿼리할 수 있는 오픈소스 애플리케이션입니다. 모든 기술 수준의 사용자가 데이터에서 직접 공동 작업할 수 있습니다. 100% 오픈소스, 자체 호스팅이며, 기본 Postgres 액세스 제어를 통해 보안을 유지합니다. Mathesar는 간편한 설치(Docker 사용), 모든 데이터 크기에 대응하는 확장성, 기존 인프라와의 원활한 통합을 특징으로 합니다. 사용자 친화적인 인터페이스는 데이터베이스 상호 작용을 간소화하고, 강력한 보안 기능은 데이터 보호를 보장합니다.

개발

showkey: 키보드 문제 해결을 위한 Linux 명령줄 도구

2025-01-30
showkey: 키보드 문제 해결을 위한 Linux 명령줄 도구

작성자는 ']' 키가 반복적으로 눌리는 이상한 문제를 겪었습니다. Linux 명령줄 도구인 `showkey`를 사용하여 원인을 발견했습니다. 책상 아래 IMSAI 8080 복제품에 두 번째 키보드가 눌려 있었던 것입니다. `showkey`는 키 코드와 스캔 코드를 표시하여 키보드 입력 문제 해결에 도움이 됩니다. -a 옵션을 사용하면 눌린 키의 ASCII, 10진수, 8진수, 16진수 값이 표시됩니다. 이 글에서는 `showkey`의 설치, 사용법, 옵션에 대해 자세히 설명하고 작성자의 문제 해결 경험을 공유합니다.

GitHub Actions: Bluesky에 RSS 피드 자동 게시

2025-01-30
GitHub Actions: Bluesky에 RSS 피드 자동 게시

Blueskyfeedbot은 RSS/ATOM 피드를 Bluesky에 자동으로 게시하는 GitHub Actions입니다. 사용자는 GitHub 저장소를 생성하고, 시크릿(Bluesky 사용자 이름 및 앱 비밀번호)을 설정하고, RSS 피드 URL과 Handlebars 템플릿을 지정한 워크플로 파일을 설정하기만 하면 자동 게시를 구현할 수 있습니다. Bluesky에 대한 콘텐츠 배포를 간소화하여 블로거 및 개발자에게 편리한 솔루션을 제공합니다.

개발

전 EA 엔지니어, Clojure와 C++을 결합한 새로운 프로그래밍 언어 Jank 개발

2025-01-29
전 EA 엔지니어, Clojure와 C++을 결합한 새로운 프로그래밍 언어 Jank 개발

전 EA 엔지니어 Jeaye Wilkerson이 Clojure의 인터랙티브한 특성과 C++의 네이티브 컴파일 속도 및 최소한의 런타임을 결합한 새로운 프로그래밍 언어 Jank를 개발하고 있습니다. LLVM 기반으로 C++, Clojure, Rust의 요소를 통합한 Jank는 Clojure의 네이티브 방언을 목표로 합니다. 이 프로젝트는 커뮤니티의 큰 관심을 받아 가장 인기 있는 미출시 Clojure 프로젝트 중 하나가 되었습니다. 동적 타이핑과 정적 타이핑 간의 유연한 전환이 특징이며, 빠른 개발과 성능 최적화를 모두 달성합니다. Jank는 게임 개발, GUI 개발, 데이터 과학 등 다양한 분야에서 강력한 도구가 될 것으로 기대됩니다.

개발

Zed 에디터 2025 로드맵: Vim 모드 및 사용자 경험 개선

2025-01-29
Zed 에디터 2025 로드맵: Vim 모드 및 사용자 경험 개선

Zed 에디터 팀은 2025년 로드맵을 발표했습니다. Vim 모드 개선과 전반적인 사용자 경험 향상에 중점을 두고 있습니다. 계획에는 명령 팔레트, 파일 이름 자동 완성, 명령어 기록 등 에디터 이외의 사용자 경험 개선, Neovim과의 병렬 테스트를 통한 Vim 모드 호환성 향상, 보다 매끄럽고 쉬운 사용을 위한 다중 커서 경험 개선이 포함됩니다. 이 로드맵은 Vim의 강력한 기능과 현대적인 사용자 경험을 결합한 에디터로서 Zed를 구현하는 것을 목표로 합니다.

개발 Zed 에디터

웹사이트 성능 향상: 증분 검색의 매력

2025-01-29

웹사이트 알림에는 사이트를 보려면 JavaScript가 필요하다는 내용이 있으며, 증분 검색 구현으로 서버 성능이 측정 가능할 정도로 향상되었다는 점을 자랑하고 있습니다. 이전 브라우저와의 호환되지 않는다는 언급은 사용자 경험과 성능을 향상시키기 위한 기술적 업그레이드를 강조합니다.

Dart 매크로 프로젝트 중단: 데이터 처리 및 빌드 속도 개선에 집중

2025-01-29

Dart 팀은 컴파일 시간 비용이 높아 개발자 환경(특히 Stateful Hot Reload)에 영향을 미치기 때문에 오랫동안 진행해 온 매크로 프로젝트를 중단한다고 발표했습니다. 팀은 극복할 수 없는 기술적 장벽이 있음을 인정하고, 매크로 개발을 계속하는 대신 데이터 처리 기능과 빌드 속도 향상을 우선시하기로 결정했습니다. 향후 작업은 데이터 직렬화/역직렬화 지원 개선, `build_runner` 도구 개선, 그리고 매크로 프로젝트의 일부로 처음 프로토타입으로 제작된 기능인 증강 기능의 독립적인 출시에 중점을 두어 개발자 워크플로우를 개선할 것입니다.

개발
1 2 173 174 175 177 179 180 181 214 215