Undroidwish: Tcl/Tk를 단일 실행 파일 하나로 어디서든 돌리는 프로젝트
## Tcl/Tk, 아직도 살아있어요? 프로그래밍을 하다 보면 Tcl/Tk라는 이름을 한 번쯤 마주치게 돼요. Python에서 간단한 GUI를 만들 때 쓰는 tkinter 있잖아요, 그 tkinter의 기반이 되는 게 바로 Tk이고, Tk를 만든 프...
리눅스는 사실 인터프리터다? ELF 바이너리를 바라보는 새로운 시선
## 우리가 당연하게 여기던 것 리눅스에서 프로그램을 실행한다는 건, 터미널에 `./myapp`을 치거나 더블클릭하는 거잖아요. 그런데 이 과정을 자세히 들여다보면 꽤 흥미로운 관점이 하나 나와요. "리눅스 커널은 사실 인터프리터 아닌가?"라는 거예...
C 파일 하나로 끝내는 메모리 할당기 'spaces' — 힙을 직접 관리하고 싶은 분들을 위한 도구
## 메모리 할당, 왜 직접 만들까요? C 언어로 프로그래밍할 때 malloc()과 free()는 거의 숨 쉬듯 쓰는 함수잖아요. 그런데 기본 malloc이 모든 상황에 최적인 건 아니에요. 게임 엔진처럼 매 프레임마다 수천 번 할당·해제를 반복...
APK 파일은 사실 ZIP이다 — 단종된 하드웨어를 되살리는 리버스 엔지니어링 이야기
## 우리가 매일 쓰는 APK, 그 정체를 아시나요? 안드로이드 앱을 설치할 때 사용하는 .apk 파일이 있잖아요. 이 파일의 정체가 뭔지 궁금해하신 적 있나요? 사실 APK는 그냥 ZIP 파일이에요. 확장자만 .apk로 바꿔놓은 것뿐이고, 실제...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
Go 네이밍 컨벤션 제대로 정리해봤어요 — 이름 짓기가 코드 품질의 절반입니다
## 왜 이름 짓기가 그렇게 중요할까요 Go를 처음 배우면 문법 자체는 꽤 간결해서 빠르게 익힐 수 있는데요, 막상 실무 코드를 작성하다 보면 의외로 막히는 부분이 있어요. 바로 **이름 짓기**예요. 변수명, 함수명, 패키지명을 어떻게 정하느냐...
코드 인텔리전스의 미래 — Sourcegraph SCIP가 그리는 다음 그림
## 코드 내비게이션, 어떻게 작동하는 건지 생각해본 적 있나요? VS Code에서 함수 이름을 클릭하면 정의된 곳으로 바로 이동하잖아요. 또는 변수 위에 마우스를 올리면 타입 정보가 뜨기도 하고요. 이런 기능들을 통틀어서 **코드 인텔리전스**...
PyPI에서 Telnyx 패키지가 탈취됐습니다: 파이썬 공급망 공격, 남의 일이 아니에요
## 또 터진 PyPI 공급망 공격 파이썬 개발자라면 `pip install`을 매일 쓰실 텐데요. 이번에 통신 API 서비스인 Telnyx의 공식 파이썬 SDK 패키지가 PyPI에서 탈취(compromise)되는 사건이 발생했어요. 공급망 공격...
메모리 최적화, 옛날 기법이 다시 뜨는 이유
## 메모리가 남아돌던 시대는 끝났다? 한동안 개발자들 사이에서 "메모리는 싸니까 신경 쓰지 마"라는 분위기가 있었어요. RAM 가격이 계속 떨어지고, 클라우드에서 서버 스펙을 올리기도 쉬우니까, 메모리 최적화에 공들이는 게 시간 낭비처럼 느껴지...
jq가 느리다고 느꼈다면, jsongrep을 한번 써보세요
## JSON 다루는 일, 개발자라면 피할 수 없죠 JSON은 이제 개발자의 일상이에요. API 응답을 확인할 때, 로그 파일을 뒤질 때, 설정 파일을 수정할 때… 하루에도 수십 번은 JSON과 마주치게 되거든요. 그래서 커맨드라인에서 JSON을 다...
[심층분석] ChatGPT가 교실을 점령했다 — AI 시대, 교육은 어디로 가고 있을까
## 교실 안의 코끼리, ChatGPT 요즘 학교에서 가장 뜨거운 논쟁거리가 뭔지 아시나요? 시험 난이도도, 등록금도 아니에요. 바로 **ChatGPT를 수업에서 어떻게 다룰 것인가**라는 문제예요. 학생들은 이미 숙제할 때 자연스럽게 ChatG...
Elixir와 Phoenix로 블로그를 만들어보니 — 함수형 웹 개발의 색다른 경험
## 왜 하필 Elixir와 Phoenix로 블로그를? 블로그를 만드는 방법은 수없이 많죠. Next.js, Hugo, Jekyll, WordPress... 선택지가 넘치는 시대에 한 개발자가 **Elixir**와 **Phoenix** 프레임워크...
웹사이트에서 원하는 데이터만 쏙 뽑아내는 TypeScript LLM 추출기, Lightfeed Extractor
## 웹 스크래핑, 아직도 셀렉터 노가다 하고 계신가요? 웹에서 데이터를 긁어오는 작업은 개발자라면 한 번쯤 해봤을 거예요. 상품 가격을 모아본다든지, 뉴스 기사를 자동으로 수집한다든지. 그런데 이게 생각보다 정말 귀찮은 작업이거든요. CSS 셀...
터미널에서 한글·아랍어·데바나가리가 깨지는 이유, 그리고 OSC 66이라는 해결책
## 터미널에서 글자가 깨져 보인 적 있으세요? 개발하다 보면 터미널을 정말 많이 쓰잖아요. 그런데 영어가 아닌 다른 문자—한글, 아랍어, 힌디어(데바나가리 문자), 태국어 같은—를 터미널에서 표시하려고 하면 글자가 깨지거나 겹치거나 이상하게 보이는...
Swift로 코딩 에이전트를 밑바닥부터 만들어보기
## AI 코딩 에이전트, 직접 만들어보면 어떨까? 요즘 Claude Code, GitHub Copilot, Cursor 같은 AI 코딩 에이전트가 개발자 워크플로우에 빠르게 자리잡고 있는데요, 이런 도구들을 매일 쓰다 보면 한 번쯤 궁금해지잖아...
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)이에요. 컴파일이 뭐냐면, 사람이 읽을 수 있...
ARM이 직접 만드는 CPU 'AGI', 스펙과 SKU가 공개됐어요
## ARM이 설계만 하던 시대는 끝났다 ARM이라고 하면 보통 '칩 설계도를 만들어서 다른 회사에 파는 곳'으로 알고 계실 거예요. 퀄컴 스냅드래곤, 애플 M 시리즈, 삼성 엑시노스 — 이 칩들 안에 들어가는 CPU 코어의 원본 설계를 ARM이...
터미널 앱을 그대로 브라우저에서 돌린다 — Gridland라는 새로운 접근법
## 터미널과 브라우저, 두 세계를 하나로 개발자라면 터미널 기반 애플리케이션의 매력을 알 거예요. 가볍고, 빠르고, 키보드만으로 모든 걸 제어할 수 있잖아요. 하지만 터미널 앱에는 늘 아쉬운 점이 하나 있었어요. 다른 사람에게 보여주거나 공유하기가...