코드를 적게 쓰는 것도 책임감이다 — 오픈소스 메인테이너의 이야기
## 코드를 많이 쓰는 게 항상 좋은 걸까? 개발자라면 누구나 한 번쯤 고민해봤을 거예요. 기능을 더 추가하고, 라이브러리를 더 키우고, 더 많은 코드를 작성하는 게 정말 '잘하는' 건지 말이에요. Rust 생태계에서 활발하게 활동하는 오픈소스 ...
WebIDL 코드 생성 캐싱으로 Firefox 빌드를 17% 빠르게 만든 이야기
## 빌드가 느리면 개발자의 하루가 느려져요 빌드 시간. 개발자라면 누구나 이 단어에 한숨을 쉬어본 적이 있을 거예요. 코드 한 줄 고쳤는데 빌드가 돌아가는 동안 커피 한 잔을 마시고 오는 그 시간이요. Firefox 같은 대규모 프로젝트에서는 이 ...
Servo 엔진, 드디어 crates.io에 올라왔다 — Rust 생태계에서 브라우저 엔진을 라이브러리처럼 쓰는 시대
## 무슨 일이 있었나요? Servo라는 이름, 혹시 들어보셨나요? Mozilla에서 Rust 언어로 처음부터 새로 만든 웹 브라우저 엔진인데요. 한때 Mozilla의 핵심 프로젝트였다가 2020년 구조조정으로 개발이 사실상 멈췄던 적이 있어요. 그...
공 하나도 못 저글링하면서 세 개를 돌리려 하고 있진 않나요?
## 기본기의 재발견 "Most people can't juggle one ball" — 대부분의 사람들은 공 하나조차 제대로 저글링하지 못한다. LessWrong에 올라온 이 글의 제목이 뜻하는 바가 뭘까요? 저글링을 배울 때, 보통 사람들은 ...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
전 세계 사람들의 행복한 장소를 시각화한 'Happy Map' 프로젝트
## 데이터로 그린 행복의 지도 데이터 시각화 하면 보통 매출 그래프나 서버 모니터링 대시보드를 떠올리기 쉽잖아요. 그런데 "사람들이 행복하다고 느끼는 장소"를 지도 위에 시각화하면 어떤 모습일까요? 데이터 저널리즘으로 유명한 **The Pudd...
요즘 앱은 왜 다 똑같이 생겼을까 — '관용적 디자인'을 되찾자는 목소리
## 어디서든 본 듯한 그 UI 최근에 새로운 앱이나 웹 서비스를 써보면서 "어? 이거 어디서 본 것 같은데"라는 느낌을 받은 적 없나요? 둥근 모서리의 카드 레이아웃, 좌측 사이드바, 상단의 미니멀한 내비게이션, 비슷비슷한 색감. 소프트웨어 디...
프로그래밍에서 '프로퍼티'란 도대체 뭘까? — 언어마다 다른 그 개념을 제대로 정리해봤어요
## 우리가 매일 쓰는 '프로퍼티', 정확히 뭔지 설명할 수 있나요? 개발하다 보면 "프로퍼티(property)"라는 단어를 정말 자주 만나게 되죠. Python에서는 `@property` 데코레이터를 쓰고, JavaScript에서는 객체의 프로퍼티...
내 코드가 얼마나 복잡한지 측정하는 방법들, 제대로 알아보자
## 복잡한 코드, 느낌이 아니라 숫자로 말할 수 있을까? 코드 리뷰를 하다 보면 "이 함수 좀 복잡한데?"라는 말을 하거나 듣게 되잖아요. 그런데 "복잡하다"는 게 정확히 뭘 의미하는 걸까요? 줄 수가 많으면 복잡한 건지, 조건문이 많으면 복잡한 ...
HTML 파일 하나로 완성한 우주 슬링샷 게임, Starfling 뜯어보기
## 파일 하나짜리 게임이라고요? 웹 개발을 하다 보면 프로젝트 구조가 점점 복잡해지는 경험, 다들 해보셨을 거예요. 컴포넌트 폴더, 유틸 폴더, 설정 파일들이 줄줄이 늘어나죠. 그런데 "HTML 파일 딱 하나"로 완성도 높은 게임을 만든 프로젝트가...
PGLite: 브라우저에서 PostgreSQL을 돌린다고요?
## 들어가며 데이터베이스 하면 보통 서버 어딘가에서 돌아가는 무거운 프로그램을 떠올리잖아요. 그런데 PGLite는 PostgreSQL을 WebAssembly로 컴파일해서 브라우저나 Node.js 안에서 바로 실행할 수 있게 만든 프로젝트예요. ...
Firefox 확장 프로그램을 전부 설치하면 어떻게 될까? — 무모한 실험의 기술적 기록
## 브라우저 확장 프로그램, 전부 깔아보겠습니다 "만약 Firefox 확장 프로그램(Extension)을 전부 다 설치하면 어떻게 될까?" 대부분의 사람은 이런 생각을 했다가도 "당연히 터지겠지" 하고 넘기잖아요. 그런데 이걸 실제로 해본 개발...
Rust로 만든 보안 스캐너 FoxGuard, 린터만큼 빠르게 취약점을 잡아준다고?
## 코드 보안 검사, 왜 매번 뒷전이 될까 개발하다 보면 보안 검사라는 게 항상 "나중에 하자"가 되기 쉽거든요. 이유는 간단해요. 느리니까요. CI/CD 파이프라인에 보안 스캐너를 붙여놓으면 빌드 시간이 훅 늘어나고, 로컬에서 돌리자니 무거워...
Clojure의 영속 자료구조를 Fennel 위에 구현하기 — 함수형 프로그래밍의 핵심 개념 파헤치기
## 무슨 이야기인가요? 프로그래밍 언어의 세계에는 재미있는 실험들이 끊이지 않는데요, 이번에 소개할 프로젝트는 **Clojure의 핵심 자료구조를 Fennel이라는 언어 위에 구현**하는 시리즈의 첫 번째 글이에요. "그게 뭔 소리야?" 싶을 ...
JavaScript로 3D 모델링을? FluidCAD로 만나는 '코드 기반 CAD'의 세계
## 코드로 설계도를 그린다고요? 3D 모델링이라고 하면 보통 마우스로 도형을 끌어다 놓고, 크기를 조절하고, 이리저리 회전시키는 걸 떠올리잖아요. Fusion 360이나 SolidWorks 같은 전통적인 CAD 소프트웨어가 그런 방식이죠. 그런데 ...
Watgo — Go 개발자를 위한 WebAssembly 툴킷이 등장했다
## Go로 WebAssembly를 다루고 싶었던 분들에게 WebAssembly(줄여서 Wasm)는 브라우저에서 네이티브에 가까운 성능으로 코드를 실행할 수 있게 해주는 기술인데요. 원래는 C/C++이나 Rust 같은 언어가 주력이었지만, 최근 ...
체스판을 한 줄로 줄이면 어떤 일이 벌어질까? — 1D Chess 이야기
## 8×8이 아니라 1×16이라면? 체스를 생각하면 보통 8×8, 64칸짜리 보드가 떠오르잖아요. 그런데 누군가가 이 보드를 아예 한 줄짜리로 만들어버렸어요. 세로도 없고 대각선도 없이, 오직 가로 한 줄 위에서만 말을 움직이는 체스인 거죠. 이름...
제너러티브 아트, 코드로 예술을 만드는 개발자들의 세계
## 코드로 그림을 그린다고요? 개발자라고 하면 보통 비즈니스 로직을 짜고, API를 만들고, 버그를 잡는 모습을 떠올리잖아요. 그런데 코드로 아름다운 시각적 작품을 만드는 개발자들도 꽤 많아요. 이걸 **제너러티브 아트(Generative Ar...
D&D 전투 시스템을 테스트하는 방법: 모델 기반 테스트(MBT) 실전 가이드
## 던전 앤 드래곤에 소프트웨어 테스트를 적용한다고? 테스트 코드를 작성하는 건 개발자라면 누구나 하는 일인데요, 보통은 "이 함수에 A를 넣으면 B가 나와야 해"라는 식으로 케이스를 하나하나 짜잖아요. 그런데 만약 테스트해야 할 시스템이 너무...
Dropbox는 어떻게 동기화 버그를 잡을까? 속성 기반 테스트로 분산 시스템 검증하기
## 파일 동기화, 생각보다 훨씬 어려운 문제예요 여러분이 노트북에서 파일을 수정하고, 동시에 폰에서도 같은 파일을 고쳤다고 해볼게요. Dropbox 같은 동기화 서비스는 이 두 변경 사항을 어떻게든 합쳐야 하는데요, 이게 말처럼 단순하지가 않아요....
워드프레스를 버리고 Jekyll로 갈아탄 이야기 — 정적 사이트 생성기, 아직도 쓸만할까?
## 워드프레스, 왜 떠나는 걸까? 워드프레스는 여전히 전 세계 웹사이트의 약 40%를 차지하는 압도적인 CMS(콘텐츠 관리 시스템)예요. 그런데 최근 몇 년 사이, 특히 개발자 커뮤니티에서는 워드프레스를 떠나 정적 사이트 생성기(Static S...