Technology optimism hour

Tom MacWright

기술 낙관의 시간

원문은 Tom MacWright님이 에 게재했습니다. 이 블로그 구독하기

녹색 식물에 둘러싸인 컴퓨터를 정성스럽게 손으로 그린 수채화. 학습 데이터가 아닙니다.

2022년에 나는 웹 기술 낙관의 시간이라는 글을 써서 당시 기술 상황에서 멋지다고 생각했던 점들을 소개했다. 시간이 정말 빠르다. 다시 한번 해보자.

여전히 비관하기는 쉽지만, 마음속에서 긍정적인 감정을 캐내 보는 것도 좋다. 방 안의 코끼리는 AI지만, 그 주제의 중력장에 또 하나의 글을 던지고 싶지는 않다.

그럼 바로 시작하자.

TypeScript 7

드디어 나왔다, 그리고 더 빠르다. 지난번 글에서는 “Rust와 Go 기반 도구들이 TypeScript 개발을 더 빠르게 만들고 있다”는 소제목을 달았었다. 그때만 해도 TypeScript를 압축하고, 트랜스파일하고, 번들링하는 몇몇 신생 프로젝트가 있었다. 그 도구들은 이제 기본이 되었다.

하지만 TypeScript 자체, 즉 언어의 실제 타입 검사와 에디터에서의 언어 지원은 여전히 병목이었다. TypeScript 타입 체커의 구현은 단 하나뿐이었고, 그마저도 TypeScript로 구현되어 있어 JavaScript 속도로 동작했으며 멀티스레드로 개선할 여지도 제한적이었다.

안타깝게도 TypeScript 타입 체커는 여전히 단 하나의 선택지뿐이다. 여전히 마이크로소프트만 만들고 있다. 하지만 마이크로소프트는 TypeScript 7을 위해 TypeScript를 Go로 다시 썼고, 훨씬, 훨씬 더 빨라졌다. 최근 내 일상적인 코딩에서 가장 체감되는 변화 중 하나다.

게다가 더 좋은 소식은 TypeScript 7이 Language Server Protocol을 지원한다는 것이다! 2024년에 썼듯 마이크로소프트는 TypeScript와 Language Server Protocol을 모두 만들었지만, 정작 TypeScript는 Language Server Protocol을 구현하지 않았다. 그래서 마이크로소프트의 VS Code 외에 다른 에디터가 TypeScript 언어 지원을 제공할 표준 방법이 없었다. 회사의 이력을 생각하면 의심스러운 행보였다.

하지만 이제는 그냥 동작한다. Neovim은 누군가 VSCode 확장을 LS 프로토콜 셸로 감싸는 방식 대신, 내장된 Language Server 지원으로 TypeScript 7을 지원할 수 있다.

그러니 큰 성과다. 새로운 TypeScript 만세. 더 빠르고, 개방형 표준을 지원하며, 이제 TypeScript 구현도 두 개가 되었다. 이제 필요한 건 마이크로소프트에서 일하지 않는 누군가가 만든 구현 하나뿐이다.

Effect 생태계가 흥미롭다

지난 1~2년간 Effect에 대한 짧은 개발 일지를 써왔다. 나는 Effect가 기대된다. 크고 포괄적인 시스템이지만 잠재력이 크고 등장 타이밍도 절묘하다고 생각한다.

지금은 공급망 위험이 큰 시대이고, NPM의 아주 작은 모듈 생태계에서 벗어나려는 흐름이 있고 또 그래야 한다고 생각한다. 수백 명의 작성자가 만든 수백 개의 작은 모듈로 구성된 소프트웨어는 악의적인 행위자가 존재하는 환경에서는 통하지 않는 아름다운 아이디어다. 흐름은 더 크고 단단하게 정비된 라이브러리 쪽으로 기울고 있고, Effect는 그 흐름에 아주 잘 맞는다. 타입 검증, 관측 가능성, 상태 관리, 고급 데이터 타입, 그리고 온갖 함수형 프로그래밍 헬퍼가 하나의 패키지 안에 모두 들어 있으며, 유지보수도 잘 되고 테스트도 철저하다.

게다가 타입이 매우 철저해서 대규모로 사용해도 더 안전하다. 그리고 제한을 거는 것도 훨씬 쉽다. Effect.timeout 하나만 붙이면 네트워크 요청이든 데이터베이스 쿼리든 뭐든 너무 오래 걸리는 것을 막을 수 있다. 동시성 제한도 마찬가지로 아주 쉽다. 모든 것을 검증하고 조심해야 하는 불확실한 세상에 잘 대비되어 있다. 그러면서도, 그런 걸 좋아하는 사람에게는 — 나는 그렇다 — 쓰는 재미도 있다.

Bluesky와 Mastodon은 성공적인, 제대로 분산된 시스템이다

나는 Bluesky와 Mastodon을 늘 쓰는데 둘 다 그냥 잘 동작한다. 기술 데모처럼 느껴지지 않고, 쓰는 사람이 괴짜들뿐인 것도 아니다. 가동률도 꽤 괜찮고, 기술적 선택 때문에 기능이 제약된다는 느낌도 없다.

그런데도 둘 다 정당한 방식으로 분산된(서로 다른 방식으로) 네트워크이며, 보안, 프라이버시, 커뮤니티 시스템에 대한 정말 흥미로운 아이디어를 담고 있다. Bluesky는 프로토콜을 소셜 네트워크와는 독립적인 기술로 공격적으로 발전시키고 있고, 컨퍼런스에서 알게 됐듯 그 기술을 기반으로 창의적인 것들을 만드는 사람들이 많다.

멋진 기술 데모와 사용하기 편하고 인기 있는 서비스 사이에는 큰 간극이 있는데, 이 둘은 그 간극을 메웠다. 흥미로운 일이고, 원칙을 지키면서도 대중적인 기술을 만들기 위해 나쁜 타협을 감수할 필요가 없다는 것을 보여준다.

Signal, WhatsApp, iMessage, RCS는 제대로 안전한 메시징 플랫폼이다

하나의 기술의 종말을 그냥 축하하고 싶다. 바로 SMS다. 사람들이 더 이상 SMS를 쓰지 않는다는 건 정말 좋다. SMS는 불필요하게 비쌌고 극도로 안전하지 않았다. 나는 친구들과 거의 Signal & iMessage로만 문자를 주고받고, 가끔 WhatsApp을 쓴다.

물론 WhatsApp은 장단점이 있고 완벽한 것은 없지만, EFF 등에서 추천하는 안전한 선택지들이 사람들이 매일 쓰는 대중적인 선택지이기도 하다는 점은 멋지다. 프라이버시 관점에서도 꽤 중요하다. Signal이 휴대폰에 설치되어 있는 것이 평범한 일인 이유는 사용자층이 넓기 때문이지만, 시위에 참여하거나 정부의 감시를 경계하는 사람들만 쓰는 앱이었다면 그렇지 않았을 것이다.

하드웨어 교체 주기가 느려지고 있다

사람들이 휴대폰과 컴퓨터를 더 오래 쓰고 있다. 나도 그 흐름에 동참하고 있다. 내 아이폰은 네 번째 생일을 맞았고, 이 컴퓨터를 교체해야 할 이유도 전혀 느끼지 못한다. 배터리를 제외하면 요즘 노트북과 휴대폰은 견고하다. 방수 기능이 있고 내구성 있는 소재로 만들어졌으며 기본적으로 그냥 잘 작동한다.

같은 데이터를 다르게 해석할 수도 있다. 어쩌면 사람들이 교체를 늦추는 이유는 가처분 소득이 줄어서일지도 모른다. 그게 사실인지는 잘 모르겠다. 어쨌든 교체 주기가 길어진 건 좋은 일이다. 전자 폐기물도, 오염도, 전반적인 소모도 줄어든다는 뜻이니까.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글