Python httpx를 포크한 개발자 이야기: 오픈소스 거버넌스와 개발자의 선택
## 무슨 일이 있었냐면 파이썬 생태계에서 HTTP 클라이언트 라이브러리 하면 requests가 가장 유명하지만, 최근 몇 년간 **httpx**가 빠르게 자리를 잡아왔어요. httpx는 requests와 비슷한 API를 제공하면서도 async(비동...
Unity 엔진을 뜯어보다가 C++ 코루틴의 존재 이유를 깨달았다는 이야기
## C++ 코루틴, 왜 이렇게 복잡한 걸까? C++20에서 코루틴이 정식으로 들어왔는데요, 써보신 분들은 아시겠지만... 솔직히 처음 보면 "이게 대체 왜 이렇게 생겼지?"라는 생각이 드는 게 정상이에요. Python이나 JavaScript의 ...
Intel이 공개한 디바이스 모델링 언어(DML), 가상 플랫폼 개발의 새 도구
## 가상 플랫폼이 뭔데, 왜 필요한 걸까요? 칩을 설계하거나 시스템 소프트웨어를 개발할 때, 실제 하드웨어가 나오기 전에 소프트웨어를 먼저 테스트해야 하는 상황이 꽤 자주 생겨요. 반도체 하나 만드는 데 수개월에서 수년이 걸리는데, 그동안 손 ...
컴파일러를 직접 만들어보는 여정 — 'A Compiler Writing Journey' 프로젝트
## 컴파일러, 왜 직접 만들어봐야 할까 우리가 매일 쓰는 프로그래밍 언어 — C, Java, Python, Go — 이것들이 실행되려면 반드시 거쳐야 하는 과정이 있어요. 바로 컴파일(compile)이에요. 컴파일이 뭐냐면, 사람이 읽을 수 있...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
ARM이 직접 만드는 CPU 'AGI', 스펙과 SKU가 공개됐어요
## ARM이 설계만 하던 시대는 끝났다 ARM이라고 하면 보통 '칩 설계도를 만들어서 다른 회사에 파는 곳'으로 알고 계실 거예요. 퀄컴 스냅드래곤, 애플 M 시리즈, 삼성 엑시노스 — 이 칩들 안에 들어가는 CPU 코어의 원본 설계를 ARM이...
터미널 앱을 그대로 브라우저에서 돌린다 — Gridland라는 새로운 접근법
## 터미널과 브라우저, 두 세계를 하나로 개발자라면 터미널 기반 애플리케이션의 매력을 알 거예요. 가볍고, 빠르고, 키보드만으로 모든 걸 제어할 수 있잖아요. 하지만 터미널 앱에는 늘 아쉬운 점이 하나 있었어요. 다른 사람에게 보여주거나 공유하기가...
결정론적 테스팅의 끝판왕 Antithesis, 헤겔 변증법으로 버그를 찾는다
## 소프트웨어 테스팅, 철학을 만나다 소프트웨어를 만들면서 가장 골치 아픈 게 뭘까요? 아마 "재현이 안 되는 버그"일 거예요. 분명 프로덕션에서 터졌는데, 로컬에서는 아무리 해봐도 안 나오는 그런 버그요. Antithesis라는 회사가 바로 ...
LiteLLM 패키지가 공급망 공격에 뚫렸습니다 — 내 프로젝트는 괜찮을까?
## 무슨 일이 있었나요? LLM(대규모 언어 모델) 프록시 도구로 많이 쓰이는 Python 패키지 **LiteLLM**이 공급망 공격(supply-chain attack)에 노출된 사실이 확인됐어요. 공급망 공격이 뭐냐면, 우리가 평소에 `pi...
터미널에서 로그 파일 보기의 끝판왕, lnav를 아시나요?
## 로그 파일, 아직도 tail -f로 보고 계신가요? 서버 운영이나 백엔드 개발을 하다 보면 로그 파일을 들여다보는 시간이 정말 많아요. 뭔가 이상하면 일단 로그부터 확인하잖아요. 그런데 대부분은 `tail -f`, `less`, `grep`...
오픈소스 파라메트릭 3D CAD, Dune3D가 조용히 완성도를 높이고 있다
## 3D CAD의 오픈소스 공백 기계 설계나 제품 디자인을 하는 엔지니어에게 3D CAD 소프트웨어는 매일 사용하는 필수 도구입니다. 하지만 이 영역은 오랫동안 SolidWorks, Fusion 360, CATIA 같은 상용 소프트웨어가 독점해...
정규표현식의 findall은 사실 O(n²)이었다 — 아무도 고치지 않은 이차 시간 복잡도 문제
## 우리가 당연하게 쓰던 findall의 숨겨진 비용 프로그래밍에서 정규표현식(regex)은 텍스트 처리의 만능 도구처럼 쓰입니다. 로그 파싱, 입력 검증, 데이터 추출 등 거의 모든 곳에서 활용되죠. 그런데 정규표현식으로 문자열에서 "모든 매...
LocalStack, GitHub 저장소를 아카이브하고 계정 필수 정책으로 전환 — 오픈소스의 경계는 어디인가
## 무슨 일이 일어났나 AWS 서비스를 로컬 환경에서 에뮬레이션해주는 도구로 널리 사용되던 LocalStack이 자사 GitHub 저장소를 아카이브(archive) 처리했습니다. 아카이브된 저장소는 더 이상 이슈나 PR을 받지 않고, 사실상 읽...
Haskell에도 DataFrame이 왔다 — dataframe 1.0 정식 릴리스의 의미
데이터 분석 하면 보통 Python의 pandas, R의 data.frame을 떠올립니다. 그런데 함수형 프로그래밍의 대표 주자인 Haskell에서 본격적인 DataFrame 라이브러리가 정식 1.0 버전으로 출시되었습니다. `dataframe` 1...
Antithesis가 만든 Bombadil: 웹 UI를 위한 속성 기반 테스팅의 새로운 접근
테스트를 작성할 때 가장 어려운 부분은 뭘까요? 아마 "어떤 시나리오를 테스트해야 하는지"를 정하는 것일 겁니다. 단위 테스트든 E2E 테스트든, 결국 개발자가 머릿속으로 시나리오를 떠올리고 하나하나 수작업으로 작성해야 합니다. 그런데 우리가 미처...
NixOS를 사랑하는 이유 — 선언적 시스템 관리의 매력과 현실
## 운영체제를 코드로 정의한다는 것 서버를 세팅하거나 개발 환경을 구축할 때, 필요한 패키지를 하나씩 설치하고, 설정 파일을 수정하고, 환경 변수를 세팅하는 과정을 거칩니다. 문제는 이 과정이 어디에도 기록되지 않는다는 것입니다. 시간이 지나면 "...
Rust 프로젝트가 AI를 바라보는 시선 — 언어 커뮤니티 차원의 공식 입장 정리
## AI 시대, 프로그래밍 언어 프로젝트는 어떤 태도를 취해야 할까 AI가 코드를 생성하고, PR을 올리고, 이슈를 분류하는 시대입니다. 이런 상황에서 프로그래밍 언어 프로젝트 자체는 AI를 어떻게 받아들여야 할까요? Rust 프로젝트가 이 질문에...
AI 시대에도 코드는 죽지 않는다 — '정밀도'라는 관점에서 본 프로그래밍의 미래
## 코드의 종말이라는 예언 최근 몇 년간 "코드를 직접 작성하는 시대는 끝났다"는 주장이 끊임없이 등장하고 있습니다. LLM이 자연어만으로 소프트웨어를 만들어주는 시대가 오면 개발자가 필요 없어질 것이라는 논리입니다. GitHub Copilot...
양자 정보 이론의 아버지 찰스 베넷, 튜링상 수상 — 그가 다시 쓴 정보의 규칙들
## 컴퓨터 과학 최고 영예, 튜링상의 새 주인공 IBM 리서치의 과학자 찰스 베넷(Charles Bennett)이 2025년 ACM 튜링상을 수상했습니다. 튜링상은 컴퓨터 과학 분야의 노벨상으로 불리며, 매년 해당 분야에 지대한 공헌을 한 인물...
커링(Currying)에 대한 반론: 정말 좋은 패턴인가, 다시 생각해볼 때
## 함수형 프로그래밍의 "당연한 미덕"에 의문을 제기하다 함수형 프로그래밍(FP)을 공부하다 보면 반드시 만나는 개념이 있습니다. 커링(Currying)이죠. 여러 인자를 받는 함수를 하나의 인자만 받는 함수의 체인으로 변환하는 기법입니다. FP ...
Floci: LocalStack의 오픈소스 대안, 무료 로컬 AWS 에뮬레이터
## AWS 로컬 개발의 오래된 고민 AWS를 사용하는 개발 팀이라면 로컬 개발 환경 구축이라는 숙제에서 자유로울 수 없습니다. S3에 파일을 올리고, SQS로 메시지를 보내고, DynamoDB에 데이터를 저장하는 코드를 작성할 때, 매번 실제 ...