본문으로 건너뛰기
피드

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

frontend 약 3분
vote
0
댓글
북마크

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

  • 1

    JS.call, JS.get/set, JS.new, ~JS 시길 등으로 Elixir에서 JS 직접 호출 가능

  • 2

    값 자동 박싱/언박싱, JS Promise가 Elixir Task로 변환

  • 3

    Web Components 템플릿 지원 추가

  • 4

    270커밋, JS 인터롭 PR만 7000줄 이상

  • 5

    Breaking change: ~JS 시길에 use Hologram.JS 명시 필요

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

댓글

댓글

댓글을 불러오는 중...

frontend

개인 웹사이트에 JSON-LD 넣는 법, 검색엔진과 크롤러가 내 사이트를 제대로 읽게 만들기

개인 웹사이트에 JSON-LD 구조화 데이터를 추가해 검색엔진과 크롤러가 사이트, 사람, 글, 프로젝트를 더 정확히 이해하게 만드는 실전 가이드야. WebSite, Person, ProfilePage, BlogPosting 같은 노드를 어떻게 연결하고 어느 페이지에 넣어야 하는지 예시 중심으로 설명해.

frontend

Deno, 웹 프로젝트를 데스크톱 앱으로 묶는 `deno desktop` 공개

Deno가 TypeScript 파일 하나부터 Next.js 앱까지 데스크톱 앱으로 패키징하는 `deno desktop`을 공개했다. 아직 안정 릴리스는 아니고 Deno v2.9.0 canary에서만 쓸 수 있지만, 운영체제 WebView 기반의 작은 바이너리, 프레임워크 자동 감지, 내장 자동 업데이트까지 한 번에 노린다.

frontend

파비콘 안에 웹사이트를 숨겨 넣은 개발자, 진짜 됨

한 개발자가 웹사이트의 파비콘 이미지를 작은 저장소처럼 사용해 HTML을 픽셀 RGB 값 안에 넣고, 브라우저에서 다시 읽어 렌더링하는 실험을 했다. 208바이트짜리 HTML payload에 4바이트 길이 헤더를 붙여 총 212바이트를 만들었고, 이를 9x9 픽셀 PNG 안에 87% 사용률로 저장했다.

frontend

스크린이 절대 못 보여주는 색은 어디에 있을까

이 글은 우리가 화면에서 보는 색이 인간이 볼 수 있는 색 전체가 아니라, sRGB와 Display-P3 같은 색역 안에 갇힌 일부라는 점을 파고든다. 특히 숲, 바닷속, 새와 나비의 구조색, 생물발광, 교통신호 LED 같은 실제 세계에는 모니터와 카메라가 제대로 담지 못하는 청록색과 녹색 계열이 꽤 많다는 얘기다. 디스플레이, 카메라, 조명, 렌더링을 다루는 개발자라면 “색상값 하나”가 생각보다 물리와 표준의 타협이라는 걸 체감하게 된다.

frontend

크롬, 매니페스트 버전 2 우회로까지 닫는다

구글 크롬이 매니페스트 버전 2 확장 지원을 사실상 최종 종료 단계로 밀어넣고 있다. 기존에는 플래그나 레지스트리 설정으로 유블록 오리진 같은 확장을 살리는 우회가 있었지만, 크로미움 150과 151을 거치며 그 우회 코드까지 제거되는 흐름이다.