본문으로 건너뛰기
0
r/jeffnews HN 약 3분

Hologram v0.8.0 — Elixir에서 JavaScript를 직접 호출할 수 있게 됨

frontend

요약

Elixir 풀스택 프레임워크 Hologram v0.8.0이 JS 인터롭을 추가. Elixir에서 JS 함수 호출, npm 패키지, Web API, Web Components를 직접 사용 가능. Promise는 Elixir Task로 변환됨.

기사 전체 정리

Hologram v0.8.0 — Elixir에서 JavaScript를 직접 호출할 수 있게 됨

  • Elixir 풀스택 프레임워크 Hologram이 v0.8.0에서 프로젝트 시작 이래 가장 많이 요청된 기능인 JS 인터롭을 추가함
  • Elixir 코드에서 JS 함수 호출, npm 패키지 사용, Web API 접근, Web Components 활용이 전부 가능해짐. 클라이언트 사이드에서 레이턴시 없이 즉시 실행됨
  • API 구성: JS.call로 함수 호출, JS.get/set/delete로 프로퍼티 접근, JS.new로 클래스 인스턴스 생성, JS.eval이나 ~JS 시길로 raw JS 실행 가능
  • Elixir-JS 경계에서 값이 자동으로 박싱/언박싱됨. JS 네이티브 타입(객체 참조, 함수 등)은 NativeValue 구조체로 감싸져서 오파크하게 처리됨
  • JS Promise가 Elixir Task로 변환돼서 Task.await/1으로 결과를 받을 수 있음. fetch API 같은 비동기 작업이 Elixir 시맨틱스에 자연스럽게 통합됨
  • Web Components도 템플릿에서 바로 사용 가능. 커스텀 HTML 태그를 파서가 인식함
  • 릴리스 규모: 270커밋, 162파일 변경. JS 인터롭 PR 하나가 150파일에 걸쳐 7,000줄 이상
  • Breaking change: ~JS 시길이 더 이상 자동 임포트되지 않으므로 use Hologram.JS를 명시적으로 추가해야 함
  • 향후 계획으로 Elixir의 프로세스 모델을 클라이언트 사이드로 포팅할 예정. 이번 비동기 인프라가 그 첫 단계임

원문 보기

핵심 포인트

  • JS.call, JS.get/set, JS.new, ~JS 시길 등으로 Elixir에서 JS 직접 호출 가능
  • 값 자동 박싱/언박싱, JS Promise가 Elixir Task로 변환
  • Web Components 템플릿 지원 추가
  • 270커밋, JS 인터롭 PR만 7000줄 이상
  • Breaking change: ~JS 시길에 use Hologram.JS 명시 필요

인사이트

JS Promise를 Elixir Task로 매핑한 설계가 영리함. 궁극적으로 Elixir 프로세스 모델을 브라우저로 가져오겠다는 로드맵의 첫 걸음이라는 점에서 방향성이 명확함.

댓글

댓글

댓글을 불러오는 중...

frontend

내 사이트에 먼저 올리고 SNS는 그냥 배포 채널로 써라 - POSSE 전략

POSSE(Publish on your Own Site, Syndicate Elsewhere)는 콘텐츠를 내 사이트에 먼저 올리고, 트위터/인스타/페북 같은 SNS에는 복사본만 뿌리는 방식임. 데이터 소유권도 챙기고 SNS 팔로워도 놓치지 않는 ㄹㅇ 실용적인 전략. IndieWeb 운동의 핵심 철학이기도 함.

frontend

윈도우 네이티브 앱 개발이 이렇게 개판인 줄 몰랐음 (현직 개발자 회고)

윈도우 개발 추억 있는 개발자가 소소한 유틸리티 앱 하나 만들려다 현실에 박살난 썰. Win32부터 WinUI 3까지 수십 년간 쌓인 레거시와 미완성 API들 때문에 결국 '그냥 Electron 쓰는 게 맞다'는 결론에 도달함. 마이크로소프트가 자기 플랫폼을 방치하는 수준이 ㄹㅇ 심각함.

frontend

JS 번들 뚱뚱해지는 진짜 이유 3가지 - npm 의존성 다이어트 해야 할 때

npm 패키지 트리가 왜 이렇게 무거워졌는지 분석한 글. 레거시 엔진 지원, 원자적 패키지 설계, 오래된 ponyfill 세 가지가 주범임. e18e 커뮤니티가 이 문제를 해결하려고 열심히 삽질 중ㅋㅋ

frontend

Svelte 5 드디어 출시 — 'Runes'로 리액티비티 완전히 갈아엎음

Svelte 5가 공식 출시되면서 기존 반응형 선언 방식을 싹 날리고 'Runes'라는 새로운 API를 도입했음. $state(), $derived(), $effect() 같은 함수 기반 문법으로 바뀌었고, 성능도 Svelte 4 대비 2배 빨라졌다고 함. Apple, Spotify 같은 대기업들도 이미 마이그레이션 시작했다니 ㄹㅇ 레전드급 업데이트.

frontend

1999년 UI 명예의 전당 — 27년 지나도 유효한 UX 원칙들

1999년에 작성된 UI 명예의 전당 페이지. Caps Lock 경고, MRU 파일/디렉토리 목록, 시작 다이얼로그 설계, 인라인 리스트 그래픽 등 지금도 현역인 UX 패턴들이 정리되어 있음.