전 세계 사람들의 행복한 장소를 시각화한 'Happy Map' 프로젝트
## 데이터로 그린 행복의 지도 데이터 시각화 하면 보통 매출 그래프나 서버 모니터링 대시보드를 떠올리기 쉽잖아요. 그런데 "사람들이 행복하다고 느끼는 장소"를 지도 위에 시각화하면 어떤 모습일까요? 데이터 저널리즘으로 유명한 **The Pudd...
요즘 앱은 왜 다 똑같이 생겼을까 — '관용적 디자인'을 되찾자는 목소리
## 어디서든 본 듯한 그 UI 최근에 새로운 앱이나 웹 서비스를 써보면서 "어? 이거 어디서 본 것 같은데"라는 느낌을 받은 적 없나요? 둥근 모서리의 카드 레이아웃, 좌측 사이드바, 상단의 미니멀한 내비게이션, 비슷비슷한 색감. 소프트웨어 디...
프로그래밍에서 '프로퍼티'란 도대체 뭘까? — 언어마다 다른 그 개념을 제대로 정리해봤어요
## 우리가 매일 쓰는 '프로퍼티', 정확히 뭔지 설명할 수 있나요? 개발하다 보면 "프로퍼티(property)"라는 단어를 정말 자주 만나게 되죠. Python에서는 `@property` 데코레이터를 쓰고, JavaScript에서는 객체의 프로퍼티...
내 코드가 얼마나 복잡한지 측정하는 방법들, 제대로 알아보자
## 복잡한 코드, 느낌이 아니라 숫자로 말할 수 있을까? 코드 리뷰를 하다 보면 "이 함수 좀 복잡한데?"라는 말을 하거나 듣게 되잖아요. 그런데 "복잡하다"는 게 정확히 뭘 의미하는 걸까요? 줄 수가 많으면 복잡한 건지, 조건문이 많으면 복잡한 ...
테크 뉴스를 읽는 당신,
직접 만들어볼 준비 되셨나요?
17가지 수익 모델 실습 · 144+ 강의 · 자동화 소스코드 제공
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...
Hegel: 속성 기반 테스팅을 언어 가리지 않고 쓸 수 있게 해주는 새로운 프로토콜
## 테스트를 "예시"가 아니라 "규칙"으로 작성한다면? 우리가 보통 테스트 코드를 작성할 때는 특정 입력에 대해 특정 출력이 나오는지 확인하죠. 예를 들어 "add(2, 3)은 5를 반환해야 한다" 이런 식으로요. 이걸 예시 기반 테스팅(exa...
브라우저에서 레이캐스팅으로 달 표면을 탐험하는 게임, Mooncraft 2000
## 브라우저만 열면 달 위를 걸을 수 있다 별도의 설치 없이 웹 브라우저에서 달 표면을 돌아다닐 수 있는 게임이 공개됐어요. 이름은 **Mooncraft 2000**인데요, 단순한 3D 데모가 아니라 실제로 플레이할 수 있는 시뮬레이션 게임이에...
여러분의 파일 시스템은 이미 그래프 데이터베이스입니다
## 우리가 매일 쓰는 파일 시스템, 사실은 그래프였다 개발하다 보면 "그래프 데이터베이스"라는 단어를 한 번쯤 들어보셨을 거예요. Neo4j 같은 전문 도구를 떠올리시는 분도 있을 텐데요. 그런데 사실 우리가 매일 쓰고 있는 파일 시스템 자체가 이...
LLVM 커뮤니티에서 제안된 JSIR — JavaScript에도 고수준 중간 표현이 필요할까?
## JavaScript 최적화의 새로운 접근법 LLVM 커뮤니티에서 흥미로운 RFC(Request for Comments, 공식 제안서)가 올라왔어요. 바로 **JSIR(JavaScript Intermediate Representation)**...