Category: 개발

C++20의 Strongly Happens Before: 메모리 모델 풀어보기

2025-09-01

이 글에서는 C++20에 새롭게 도입된 "Strongly Happens Before" 관계를 자세히 살펴보고 C++ 메모리 모델의 어려운 문제를 해결하는 방법을 설명합니다. 간단한 멀티스레드 프로그램 예제를 사용하여 수정 순서, 일관성 순서, "Strongly Happens Before" 관계가 동시 실행 순서를 어떻게 제약하는지 단계적으로 설명합니다. 또한 C++ 메모리 모델을 위반하는 것처럼 보이는 실행이 Power 아키텍처에서 허용되는 이유를 분석하고, "Strongly Happens Before"가 이러한 불일치를 어떻게 수정하여 최종적으로 모든 `memory_order::seq_cst` 연산에 대해 단일 전역 순서를 보장하는지 설명합니다.

개발

시니어 개발자, AI 코드 채택 증가…하지만 효율성 향상은 녹록지 않아

2025-09-01
시니어 개발자, AI 코드 채택 증가…하지만 효율성 향상은 녹록지 않아

Fastly 조사에 따르면, 시니어 개발자들이 주니어 개발자보다 AI 생성 코드를 더 적극적으로 사용하며, 배포된 코드의 절반 이상이 AI 생성 코드라는 결과가 나왔습니다. AI는 코딩 속도를 크게 향상시킬 수 있지만, 시니어 개발자들은 AI가 생성한 버그 수정에 많은 시간을 할애하여 시간 절약 효과의 일부를 상쇄하고 있습니다. 이 조사는 AI 코딩의 숨겨진 비용, 즉 높은 에너지 소비와 잠재적인 취약성도 드러내고 있습니다. 그럼에도 불구하고 AI는 개발자의 업무 만족도를 높이고 있습니다.

개발

오픈소스의 무명 영웅들: 취미 개발자들의 유지보수

2025-09-01
오픈소스의 무명 영웅들: 취미 개발자들의 유지보수

이번 팟캐스트에서는 오픈소스 소프트웨어를 사용하는 기업 세계와 실제로 오픈소스를 만드는 취미 개발자 커뮤니티 사이의 엄청난 괴리를 탐구합니다. 대화를 통해 이것이 새로운 문제가 아니라, 보안, 안정성, 그리고 소프트웨어의 미래에 영향을 미치는 오래된 현실임을 알 수 있습니다. 데이터는 활발하게 사용되는 오픈소스 코드의 상당 부분이 무급 또는 파트타임 취미 개발자들에 의해 유지 관리되고 있음을 시사하며, 기업들은 종종 이러한 불일치를 간과합니다. 토론에서는 단순히 자금을 지원하는 것이 아니라, 이러한 취미 개발자들의 제약과 요구를 이해하고 효과적인 해결책을 찾는 데 중점을 둡니다.

거대한 단일 서버: 마이크로서비스와 클라우드 재고찰

2025-09-01
거대한 단일 서버: 마이크로서비스와 클라우드 재고찰

본 글은 마이크로서비스에 대한 일반적인 통념에 이의를 제기하며, 오늘날 강력한 서버들은 대부분 단일 대규모 서버 아키텍처가 더욱 비용 효율적임을 주장합니다. 현대 서버의 기능을 자세히 설명하고 클라우드, 자체 호스팅, 임대 옵션의 비용을 비교합니다. 저자는 대부분의 웹 서비스에서 고성능 서버(백업 포함)로 충분하며, 극도로 높은 QPS 또는 버스트성 부하가 없는 한 복잡한 클라우드 네이티브 아키텍처로 인한 추가 비용과 유지 관리의 복잡성이 이점을 능가하는 경우가 많다고 주장합니다. 수직적 확장(서버 업그레이드)은 수평적 확장(서버 추가)보다 종종 더 효율적이며, 기존의 상식을 재고찰하도록 촉구합니다.

C++ 모듈: 깨진 약속?

2025-09-01

이 글은 C++ 모듈의 진행 상황을 비관적으로 평가합니다. 저자는 여러 기존 오픈소스 코드베이스에서 C++ 모듈이 5배(가능하면 10배)의 컴파일 시간 단축을 보여주지 못한다면 폐기해야 한다고 주장합니다. 이 글은 컴파일러와 빌드 시스템 간의 긴밀한 통합이 주요 장애물임을 지적하며 어려운 개발 과정을 강조합니다. 저자는 상대적으로 드문 문제인 매크로 누수를 해결하는 대신 컴파일 속도 향상에 초점을 맞춰야 한다고 강조합니다. 또한 구현의 어려움을 과소평가했던 점을 지적하며 표준화 과정을 되돌아봅니다. 마지막으로 저자는 대안으로 `import std`를 제안하지만, 그 개선 가능성은 제한적이라고 인정합니다.

Spotilyrics: VS Code에서 Spotify 가사와 함께 코딩하기

2025-09-01
Spotilyrics: VS Code에서 Spotify 가사와 함께 코딩하기

코딩하면서 음악을 듣지만 가사를 기억하기 어려우신가요? VS Code 확장 프로그램 Spotilyrics를 사용하면 Spotify 가사를 편집기에 동기화하여 표시할 수 있습니다! 앨범 재킷에서 테마 색상이 자동으로 설정되고 매끄러운 사이드 패널에 가사가 표시되므로 한쪽에서는 코딩하고 다른 쪽에서는 음악을 즐길 수 있습니다. Spotify 클라이언트 ID를 한 번 입력하기만 하면 됩니다. 코딩의 동기 부여와 생산성을 높여 보세요!

개발

Linux용 프로세스 모니터(미리 보기) 출시

2025-09-01
Linux용 프로세스 모니터(미리 보기) 출시

마이크로소프트는 Windows용 Sysinternals 제품군의 Procmon과 유사한 강력한 시스템 호출 추적 도구인 Linux용 프로세스 모니터(Procmon)를 출시했습니다. 개발자는 이 도구를 사용하여 Linux 시스템의 시스템 호출 활동을 편리하게 추적할 수 있습니다. 이 도구는 특정 프로세스와 시스템 호출을 모니터링하기 위한 명령줄 옵션을 지원하며 결과를 데이터베이스 파일에 저장하는 옵션도 제공합니다. 개발자는 GitHub에서 프로젝트에 기여하여 버그를 수정하고 새로운 기능을 추가할 수도 있습니다.

개발

Ultrassembler: 놀라울 정도로 빠른 RISC-V 어셈블러 라이브러리

2025-08-31

Ultrassembler는 GNU as보다 10배 이상, llvm-mc보다 20배 이상 빠른 초고속 RISC-V 어셈블러 라이브러리입니다. 이 놀라운 성능은 C++ 예외 처리(이상적인 경우 제로 오버헤드), 효율적인 데이터 구조 사용, 시스템 호출 오버헤드 제거를 위한 미리 할당된 메모리 풀 사용, 그리고 값 예측, 정교한 검색 알고리즘, 컴파일 타임 템플릿, 코드 생성과 같은 최적화 기술의 조합 덕분입니다. 이러한 최적화는 사용자 경험 향상은 물론 게임이나 JIT 컴파일러 같은 애플리케이션에서 저렴한 RISC-V 스크립팅의 가능성을 열어줍니다.

개발

C언어 전설 커니핸: Rust는 '고통', C를 대체할 가능성은 낮다

2025-08-31
C언어 전설 커니핸: Rust는 '고통', C를 대체할 가능성은 낮다

83세의 Brian Kernighan(C 프로그래밍 언어 서적 공동 저자)이 Rust 언어에 대한 솔직한 의견을 밝혔습니다. 최근 인터뷰에서 그는 Rust를 사용한 자신의 프로그래밍 경험을 '고통스러웠다'고 표현하며, 메모리 안전 메커니즘 이해의 어려움과 느린 컴파일/실행 속도를 지적했습니다. 'crates와 barrels' 등 Rust 생태계의 복잡성도 비판했습니다. 제한된 경험으로 인한 편견의 가능성을 인정하면서도, Rust가 C 언어를 곧바로 대체할 가능성은 낮다고 생각합니다. 인터뷰에서는 Linux 배포판, HolyC, 현재 소프트웨어 환경, 그리고 미래 프로그래머를 위한 조언(열정과 매력적인 업무 추구 강조) 등도 다루었습니다.

개발

eBPF: 커널 프로그래밍의 혁신

2025-08-31
eBPF: 커널 프로그래밍의 혁신

eBPF는 커널 소스 코드를 수정하지 않고도 Linux 커널 내에서 샌드박스화된 프로그램을 실행할 수 있는 혁신적인 기술입니다. 이 튜토리얼에서는 간단한 방화벽 예제를 통해 eBPF를 사용하여 특정 IP 주소의 트래픽을 모니터링하고 차단하는 방법을 보여줍니다. Python 및 C 코드 예제가 포함되어 있으며, 네트워크 모니터링 및 보안을 위한 eBPF의 효율성과 기능을 어떻게 활용할 수 있는지 보여줍니다. 오늘 eBPF를 사용하여 패킷 카운터와 방화벽을 만드는 방법을 배워보세요!

개발

ADHD 극복을 위한 전략과 전술

2025-08-31
ADHD 극복을 위한 전략과 전술

이 글은 ADHD 관리 방법에 대해 논하며, '전략'과 '전술' 두 부분으로 나뉩니다. '전략'은 약물 치료, 기억 관리, 에너지 배분, 자기 성찰 등 고차원적인 통제 시스템에 초점을 맞춥니다. '전술'은 작업 선택, 시각적 영역 관리, 프로젝트 정기 점검, 받은 편지함 관리 등 미시적 수준의 개선 방안을 제시합니다. 저자는 ADHD의 1차 치료법으로 약물 치료를 강조하고, 개인적인 경험에 기반한 실용적인 조언을 통해 독자가 효율적인 자기 성장 시스템을 구축하고, 궁극적으로 ADHD를 극복하도록 돕습니다.

개발

초보자를 위한 Jujutsu 버전 관리 튜토리얼

2025-08-31

이 튜토리얼에서는 Jujutsu 버전 관리 시스템을 소개합니다. Git이나 다른 VCS 경험이 필요 없습니다. 레벨별로 구성되어 있으며, 기본적인 개인 사용부터 협업, 고급 기술까지 진행됩니다. 예제 저장소와 리셋 스크립트를 통해 학습과 진행 상황 리셋이 용이합니다. Git에 익숙하더라도 이 튜토리얼은 Jujutsu를 마스터하는 더 쉬운 방법을 제공합니다.

개발

숙련된 개발자일수록 AI 코딩 활용도 높아: Fastly 설문조사 결과

2025-08-31
숙련된 개발자일수록 AI 코딩 활용도 높아: Fastly 설문조사 결과

Fastly가 791명의 미국 개발자를 대상으로 실시한 최근 설문조사에서 놀라운 경향이 드러났습니다. 10년 이상의 경력을 가진 숙련된 개발자들은 Copilot과 같은 AI 코드 생성 도구를 사용하는 비율이 초급 개발자의 두 배 이상이며, 생성된 코드가 전체 코드의 절반 이상을 차지합니다. 이는 게으름 때문이 아니라, 시니어 엔지니어의 다양한 업무 때문입니다. AI는 프로토타입 제작 속도를 높이지만 버그 수정에 더 많은 시간이 필요합니다. 대부분의 숙련된 개발자들은 AI가 효율성과 즐거움을 향상시킨다고 느끼는 반면, 초급 개발자들은 기존 코딩 방식을 선호하며 에너지 소비에는 그다지 신경 쓰지 않습니다. 이 설문조사는 AI가 생성한 오류를 감지하는 데 경험이 유리함을 보여줍니다. 전반적으로 AI 코딩 도구는 응답자의 70% 이상에게 업무 만족도를 높였습니다.

데이터베이스가 캐시를 완전히 대체할 수 있을까?

2025-08-31

이 글에서는 데이터베이스가 캐시를 완전히 대체할 수 있는지에 대한 가능성을 탐구합니다. 데이터베이스는 버퍼 풀과 읽기 복제본과 같은 일부 캐싱 기능을 제공하지만, 캐시는 특히 특정 데이터 하위 집합과 미리 계산된 데이터에 대해 낮은 대기 시간 데이터 액세스에서 뛰어납니다. 캐시를 대체하려면 데이터베이스는 많은 읽기 복제본을 효율적으로 처리하고, 부분적인 읽기 복제본을 활성화하고, 특정 데이터의 우선 순위를 지정하고, 효율적인 증분 뷰 유지 관리(IVM) 메커니즘을 구현하는 등 몇 가지 과제를 해결해야 합니다. 저자는 IVM과 부분적인 읽기 복제본을 결합하면 결국 데이터베이스가 캐시를 부분적으로 대체할 수 있을 것이라고 생각하지만, 여전히 격차가 남아 있다고 생각합니다.

(avi.im)

AI 코딩 어시스턴트: 능력 향상이냐 위협이냐?

2025-08-31
AI 코딩 어시스턴트: 능력 향상이냐 위협이냐?

저자는 자신의 경험을 통해 AI 코딩 어시스턴트의 영향을 탐구합니다. 처음에는 AI가 프로그래머를 대체할 것이라는 생각에 실망했지만, 몇 주간의 사용을 통해 AI 어시스턴트가 코딩 효율을 높일 뿐만 아니라 새로운 학습 기회와 창의적인 워크플로우도 제공한다는 것을 알게 되었습니다. 그러나 이 경험은 모순도 가져옵니다. AI 코드 제어, 버그에 대한 책임, 그리고 프로그래머 자신의 가치에 대한 불안감 등입니다. 저자는 AI 어시스턴트가 단순한 위협이나 이점이 아니라, 궁극적으로 인간이 말하는 코딩 파트너와 같은 복잡한 감정적 경험이며 코딩의 즐거움을 높이는 존재라고 결론짓습니다.

개발

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

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

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

개발

C++ shared_ptr의 비원자적 참조 카운팅: 마이크로 벤치마킹에서의 예상치 못한 발견

2025-08-31
C++ shared_ptr의 비원자적 참조 카운팅: 마이크로 벤치마킹에서의 예상치 못한 발견

Rust와 C++ 데이터 구조를 비교하는 마이크로 벤치마킹에서 C++의 `shared_ptr`에 예상치 못한 동작이 발견되었습니다. 단일 스레드 환경에서 GNU libstdc++는 `pthread_create`가 임포트되지 않은 경우 `shared_ptr`의 참조 카운팅을 비원자적으로 최적화합니다. 이 성능 최적화는 일반적으로 안전하지만, 동적으로 링크된 라이브러리가 정적으로 링크된 프로그램에 의해 로드되는 등의 드문 시나리오에서는 문제를 일으킬 수 있습니다. 저자는 다른 C++ 구현(libcxx 및 Visual C++)을 조사했고, 마침내 벤치마킹에서 `pthread_create`를 참조함으로써 성능 차이를 해결했습니다. 이 발견은 저수준 최적화의 복잡성과 잠재적인 의도하지 않은 결과를 강조합니다.

개발

Sniffly: Claude 코드 분석 대시보드

2025-08-31
Sniffly: Claude 코드 분석 대시보드

Sniffly는 로컬에서 실행되는 Claude 코드 로그 분석 도구로, Claude Code 사용을 개선하는 데 도움이 됩니다. 사용 패턴을 분석하여 Claude Code의 오류를 파악하고 지시 사항을 동료와 공유할 수 있습니다. Sniffly는 프로젝트 통계 및 지시 사항을 표시하는 공유 가능한 대시보드를 제공하며, 포트 및 자동 브라우저 열기 등의 옵션을 사용자 지정할 수 있습니다. 모든 데이터 처리가 로컬에서 이루어지므로 개인 정보와 보안이 보장됩니다.

개발 로컬 도구

Git으로만 dotfiles 관리하기

2025-08-31

chezmoi, stow, yadm과 같은 복잡한 dotfiles 관리자에 지치셨나요? 이 글에서는 Git을 사용하여 dotfiles를 간편하게 관리하는 방법을 보여줍니다. 홈 디렉토리에 Git 저장소를 만들고, .gitignore로 모든 파일을 무시한 다음, 추적하고 싶은 파일(예: ~/.bashrc)을 강제로 추가합니다. `git add -f`를 사용하거나 `track-file`과 같은 별칭을 만들어 기기 간 간편한 추적 및 동기화를 수행할 수 있습니다. 기기별 설정은 메인 dotfiles에서 간단한 호스트 이름 확인만으로 처리할 수 있습니다. 불필요한 도구를 버리고 Git으로 효율적으로 dotfiles를 관리하세요!

개발

Hugo: 정적 사이트 생성기 악몽

2025-08-31

저는 예전에 정적 사이트 생성기인 Hugo를 속도, 단순성, 사용 편의성 때문에 좋아했습니다. 하지만 끊임없는 업데이트로 인해 점점 더 복잡해졌고, 이전 버전과의 호환성이 반복적으로 깨졌습니다. 최근에 블로그 게시물을 작성하려고 했더니 Hugo 업데이트 때문에 사이트 빌드가 실패하여 몇 시간 동안 문제 해결에 매달려야 했습니다. Hugo의 내부 작동 방식에는 관심이 없습니다. 그저 작동하는 블로그가 필요할 뿐입니다. 따라서 Hugo를 포기하고 대안을 찾고, 이전의 불변 버전을 직접 컴파일할 계획입니다.

Bitwig Studio 6 베타: 편집 및 자동화 기능 강화

2025-08-31
Bitwig Studio 6 베타: 편집 및 자동화 기능 강화

Bitwig Studio 6 베타 버전이 출시되었습니다. AI나 특별한 기능보다는 편집 및 자동화 워크플로 개선에 초점을 맞추었습니다. 자동화 모드, 개선된 편집 제스처, 자동화 클립, 프로젝트 전체 키 시그니처, 업데이트된 UI 등이 새 기능입니다. 이 업데이트는 편집 경험을 크게 향상시켜 엔지니어와 사용자들의 오랜 요구를 충족합니다.

정적 구성 파일과의 작별: Cloud Life가 인프라 제공 시간을 절반으로 줄인 방법

2025-08-31
정적 구성 파일과의 작별: Cloud Life가 인프라 제공 시간을 절반으로 줄인 방법

Cloud Life는 System Initiative (SI)를 사용하여 정적 구성 파일을 제거하고 인프라 제공 시간을 절반 이상 단축했습니다. 이 글에서는 기존의 Terraform, 구성 저장소, PR 검토 및 CI/CD 파이프라인에서 전환하는 과정을 설명합니다. SI의 실시간 시각화 및 공동 편집 기능을 통해 인프라 변경에 대한 즉각적인 피드백과 테스트가 가능해져 효율성과 안정성이 크게 향상되었습니다. 그들은 문화적 변화의 어려움을 극복했고 놀랍게도 SI가 팀 사기를 높이고, 온보딩을 간소화하며, 거버넌스를 개선했다는 것을 발견했습니다.

개발

Qbix Q.js: React와 Vue에 도전하는 경량 프런트엔드 프레임워크

2025-08-31
Qbix Q.js: React와 Vue에 도전하는 경량 프런트엔드 프레임워크

Qbix는 불과 약 40KB(압축 후)의 초경량 프런트엔드 프레임워크 Q.js를 출시했습니다. 크기에 비해 컴포넌트, 라우팅, 캐싱, 국제화 등 다양한 기능을 갖추고 있습니다. 빌드 과정이 필요 없으며, DOM을 직접 조작하여 속도를 높이고, 점진적 향상과 SEO를 지원합니다. React, Vue, Angular와 비교했을 때 Q.js는 크기, 성능, 사용 편의성 면에서 상당한 이점을 제공하며, 고성능 애플리케이션 및 실시간 대시보드에 적합합니다.

개발

Vlang: Go의 매콤한 대안? 심층 분석

2025-08-31
Vlang: Go의 매콤한 대안? 심층 분석

이 글에서는 Go와 V라는 두 가지 프로그래밍 언어를 비교합니다. V는 구문 면에서 Go와 유사하지만, 더욱 유연한 오류 처리, 강력한 구조체, 열거형, 람다 표현식 등 추가 기능을 제공합니다. 저자는 코드 예시를 통해 V의 장점을 보여주는 동시에, V의 생태계가 아직 미성숙하고 컴파일/빌드 관련 몇 가지 문제점이 있다는 점도 지적합니다. 그럼에도 불구하고 저자는 V의 미래에 대해 낙관적이며, Go 개발자들에게도 한번 살펴볼 만한 가치가 있다고 제안합니다.

개발

SQL 서브쿼리 문제: 미묘한 차이가 예상치 못한 결과로 이어짐

2025-08-31
SQL 서브쿼리 문제: 미묘한 차이가 예상치 못한 결과로 이어짐

Dave라는 독자가 W3Schools의 Northwind 데이터베이스를 사용하여 Vadim의 책에 있는 SQL 서브쿼리 예제를 테스트하는 동안 사소한 문제를 발견했습니다. Dave의 코드는 책의 예제와 약간 달랐는데, '<=' 대신 '<'를 사용했고 '#'을 생략했습니다. 그럼에도 불구하고 그의 스칼라 서브쿼리는 책의 선행 쿼리와 달리 0을 반환했습니다. 이는 SQL 쿼리의 미묘한 차이가 결과에 어떻게 영향을 미칠 수 있는지에 대한 의문을 제기합니다.

개발 서브쿼리

OpenTelemetry 분산 추적: 트레이스와 스팬으로 애플리케이션 성능 파악하기

2025-08-31
OpenTelemetry 분산 추적: 트레이스와 스팬으로 애플리케이션 성능 파악하기

이 가이드는 OpenTelemetry의 핵심 분산 추적 개념인 트레이스와 스팬을 심층적으로 다룹니다. 트레이스는 단일 요청의 전체 과정을 나타내고, 스팬은 해당 과정 내의 개별 시간 단위 작업을 나타냅니다. 명확한 언어와 유용한 다이어그램을 사용하여 트레이스와 스팬의 구조, 컨텍스트 전파 및 Node.js/TypeScript에서의 구현 방법을 설명합니다. 모범 사례, 일반적인 안티 패턴 및 메트릭과 로그와의 상관 관계도 다루어 개발자가 효율적이고 안정적인 분산 시스템을 구축할 수 있도록 지원합니다.

개발

SQL을 사용한 효율적인 Datalog 쿼리 처리: 환경 관계 기반의 영리한 접근 방식

2025-08-31
SQL을 사용한 효율적인 Datalog 쿼리 처리: 환경 관계 기반의 영리한 접근 방식

이 기사에서는 Datalog 프로그램을 SQL 쿼리로 변환하는 새로운 방법을 제시합니다. 저자는 SQL의 관계 대수 기능을 효과적으로 활용하여 Datalog 프로그램 본문의 변수 바인딩 환경을 관계로 표현함으로써 기존 SQL 엔진을 사용하여 Datalog 쿼리를 효율적으로 실행합니다. 이 방법은 간결할 뿐만 아니라, 이중 숫자 기법을 사용한 반 순진적 평가도 가능하여 성능을 더욱 향상시킵니다. 이 기사에는 Python 및 SQL 코드 예제와 다른 Datalog 엔진과의 성능 비교가 포함되어 있습니다.

개발

Zellij 웹 터미널: 브라우저에서 터미널에 접속

2025-08-31
Zellij 웹 터미널: 브라우저에서 터미널에 접속

터미널 작업 공간 및 멀티플렉서인 Zellij는 최근 내장 웹 클라이언트를 출시하여 사용자가 브라우저를 통해 백그라운드에서 실행 중인 터미널 세션에 연결할 수 있도록 했습니다. 이 글에서는 기술 선택, 아키텍처 설계 및 직면한 과제를 포함하여 Zellij 웹 터미널 구축 프로세스에 대해 자세히 설명합니다. 클라이언트/서버 아키텍처를 사용하여 브라우저와 Zellij 서버 간의 양방향 통신을 WebSockets을 통해 구현했습니다. Rust와 axum을 사용하여 구축된 웹 서버는 보안 및 사용 편의성을 중시합니다. 향후 Zellij 계획에는 네이티브 UI 구성 요소 렌더링 및 여러 터미널 세션 병합과 같은 기능을 지원하기 위해 웹 인터페이스를 확장하는 것이 포함됩니다.

37signals, Docker Hub 및 ECR 대신 자체 호스팅 Harbor 레지스트리로 전환

2025-08-31
37signals, Docker Hub 및 ECR 대신 자체 호스팅 Harbor 레지스트리로 전환

Basecamp 및 HEY 개발사인 37signals는 Docker Hub 및 Amazon ECR과 같은 외부 컨테이너 레지스트리에서 자체 호스팅 Harbor 레지스트리로 전환했습니다. 비용(대역폭 초과 및 구독료), 성능(배포에 영향을 미치는 느린 풀 시간), 보안 위험 및 더 큰 독립성을 추구하는 이유로 설정의 용이성, 풍부한 기능, 오픈소스 특성 때문에 Harbor를 선택했습니다. 이 문서에서는 Kubernetes 이외의 단일 서버 배포, S3 스토리지 구성, 다중 인스턴스 설정, 복제 전략 및 Docker Hub에서 이미지 마이그레이션 프로세스를 자세히 설명합니다. 결과적으로 비용을 상당히 절감(연간 약 5,000달러)하고 성능을 향상(배포 시간 15초 단축, 이미지 풀 시간 25초 단축)시키며 보안을 강화했습니다.

Red: 강력한 자체 호스팅 크로스 플랫폼 시스템 프로그래밍 언어

2025-08-31
Red: 강력한 자체 호스팅 크로스 플랫폼 시스템 프로그래밍 언어

Red는 Rebol에서 영감을 받은 프로그래밍 언어이지만, 네이티브 코드 컴파일러 덕분에 시스템 프로그래밍부터 고급 스크립팅까지 광범위한 용도로 사용할 수 있으며, 동시성 및 다중 코어 CPU에 대한 최신 지원을 제공합니다. Red는 DSL 기반 접근 방식(방언이라고 함)을 사용하여 소프트웨어 구축의 복잡성을 해결합니다. 내장 방언에는 Red/System(C 레벨 시스템 프로그래밍 언어), Parse(강력한 PEG 파서), VID(간단한 GUI 레이아웃 생성 방언), Draw(벡터 2D 드로잉 방언), Rich-text(리치 텍스트 설명 방언) 등이 있습니다. Red는 자체 완벽한 크로스 플랫폼 툴체인을 갖추고 있으며, 인캡슐레이터, 네이티브 컴파일러, 인터프리터, 링커가 포함되어 있으며, 서드파티 라이브러리에 의존하지 않습니다(알파 단계 제외). 주요 기능으로는 사용자 친화적인 구문, 동형성, 다중 타이핑, 강력한 패턴 매칭 매크로 시스템, 풍부한 내장 데이터 유형, 정적 및 JIT 컴파일, 크로스 컴파일, 1MB 미만의 작은 실행 파일, 강력한 동시성 및 병렬 처리 지원, 저수준 시스템 프로그래밍 기능, 강력한 PEG 파서 DSL, 빠르고 컴팩트한 가비지 컬렉터, 내장 계측, 크로스 플랫폼 네이티브 GUI 시스템, JVM 브리징, 고급 스크립팅, REPL GUI 및 CLI 콘솔 등이 있습니다. 현재 알파 단계이며 32비트만 지원합니다.

1 2 13 14 15 17 19 20 21 214 215