Skip to content

기글하드웨어기글하드웨어

인터넷 / 소프트웨어 : 윈도우즈, 리눅스, 기타 운영체제, 각종 어플리케이션, 프로그램, 소프트웨어, 인터넷, 인터넷 서비스에 대한 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

일반
2020.04.09 07:44

JavaScript BinaryAST 소개

Extra Form
참고/링크 https://blog.cloudflare.com/binary-ast/

현대의 웹에서 자바스크립트는 대단히 핵심적인 위치를 차지하고 있습니다. 아예 자바스크립트에 모든 기능을 의존하는 웹 사이트도 이제는 결코 이상하지 않지요. 그러다 보니 자바스크립트는 갈수록 복잡해지고 코드 크기가 커져가는 경향이 있습니다. HTTP Archive에 따르면 2020년 3월 기준으로 웹 페이지에서 로드되는 자바스크립트의 평균 크기는 약 450KB인데, 사실 1MB를 넘기는 웹페이지도 결코 적지 않습니다.
 

문제는 자바스크립트 코드는 본질적으로 텍스트 뭉치이고, 이걸 해석하는 것은 기술적으로 시간과 비용이 꽤나 소비되는 작업이라는 것입니다. 웹 페이지의 기능을 구동하려면 자바스크립트를 써야 하는데, 커다란 자바스크립트 파일을 끝까지 다운로드받아 컴파일 과정을 거치고 그 결과를 다시 브라우저 창에 피드백하여 웹 페이지를 그려나가는 장대한 과정은 놀랍지만 복잡하고 저사양 시스템에서는 답답합니다.
 

그렇다면, 매번 일일히 자바스크립트의 모든 내용을 처음부터 다 해석하지 않아도 좋다면 어떨까요? 모든 고급 프로그래밍 언어는 인간이 작성한 소스코드를 기계가 실행하기 위한 컴파일의 초기 단계로 추상 구문 트리(Abstract Syntax Tree, AST)라는 것을 만듭니다. 이 과정은 인간이 알아볼 수 있게 텍스트로 작성한 소스코드의 내용을 파싱(Parsing)하여 모호성이 없는 트리 형태로 만드는 것을 말합니다. 텍스트로 된 소스코드는 끝까지 읽기 전까지는 앞에서 나온 내용이 어떤 의미로 작성된 것인지 모호할 수도 있거든요. 그래서 자바스크립트 파일을 모두 다운받기 전에는 본격적인 해석을 시작할 수 없습니다.
 

이걸 반대로 생각해보면, 처음부터 인간이 쓴 소스코드가 아니라 모호성이 없는 데이터 형태로 자바스크립트 코드의 내용을 수신할 수 있다면 웹 서버에서 데이터를 다운받는 도중에라도 브라우저가 코드를 해석하여 실행을 시작할 수가 있을 것입니다. 게다가 복잡한 초기 해석 과정이 생략되므로 훨씬 빠른 퍼포먼스도 기대할 수 있겠지요. 그래서 이런 구상을 실제로 구현하고자 하는 것이 바로 [BinaryAST]입니다.
 

BinaryAST는 아직 초기 단계지만, 모질라와 클라우드플레어 등이 계속해서 추진해 나가고 있습니다. 실제로 파이어폭스의 Nightly 버전에서 다음 두 플래그를 설정하면 해당 기능이 활성화됩니다.

  • dom.script_loader.binast_encoding.enabled = true
  • dom.script_loader.binast_encoding.domain.restrict = false

파이어폭스가 웹 브라우저 차원에서 BinaryAST를 지원한다면, 클라우드플레어는 서버 쪽에서 이걸 지원합니다. 클라우드플레어가 자바스크립트를 BinaryAST로 바꾸는 구조는 이렇다고 합니다.

V8-isolate-01@2x.png

특이한 것은, 위 그림에서 서버 역할을 하는 Worker와 자바스크립트를 AST로 해석하는 Parser는 자바스크립트인 Node.js 기반인데, 이걸 BinaryAST로 바꾸는 Encoder는 Rust로 개발하여 웹어셈블리로 컴파일한 물건이라는 점입니다. 웹 생태계에서도 점차 다양한 언어가 등장한다는 것을 보여주는 것 같습니다.
 

그래서, 이걸 쓰면 정말로 웹 브라우징에 성능 향상이 있을까요? 비록 이것이 초기 버전이긴 하지만, 모바일 등 사양이 낮은 환경에서 코드 구조가 복잡할수록 BinaryAST는 빛을 발한다고 합니다. 앞으로의 발전을 기대해도 좋겠죠.
 

binast.gif
 

참고 :
https://github.com/binast/binjs-ref
 



  • ?
    달가락 2020.04.09 09:49
    무지막지하게 커지는 스크립트 용량을 압축기술이랑 HTTP/2위에서 아등바등 버티고 있지만 이런 쪽으로도도 개선하는 시도가 있네요. human-readable한 표현이다보니 bytecode보다 통제하기도 좋을거구요. 프론트엔드는 1도 모르지만 암튼 좋은 글 감사합니다.
  • profile
    쮸쀼쮸쀼 2020.04.09 14:45
    BinaryAST는 말 그대로 기계가 읽기 좋은 물건이지 사람이 읽으라고 나온 물건은 아닙니다.
  • profile
    title: 가난한까마귀      잠을 미루는 건 내일이 오지 않길 바래서야. 2020.04.09 10:08
    좋군요. 처음엔 이렇게 커질 줄 몰라서 도입을 안했으려나요
  • profile
    쮸쀼쮸쀼 2020.04.09 14:47
    2000년대 초반까지만 해도 자바스크립트는 글자 반짝거리게 하기나 마우스 커서 쫓아다니는 장식 등에나 쓰는 걸로 여겼었죠. 그게 이리 될 줄은 정말 아무도 몰랐지 싶습니다. 2004년에 구글이 AJAX 응용 지도 서비스를 처음 내놨을 때였나 그때 ‘자바스크립트로 이런 것도 된다니!’ 하고 센세이션이 상당했던 것으로 기억합니다.
  • ?
    구루비 2020.04.09 13:57
    요새 웹개발을 보면 너무 빨리 바뀌고 지저분해진 것 같습니다.
    기존 웹과 호환성을 가능한한 유지하면서 발전하려다 보니 이렇게 된 것 같은데
    HTTP, HTML, Script, CSS를 한번에 싹 갈아엎고 새로 시작했으면 하는 생각도 듭니다.
  • profile
    쮸쀼쮸쀼 2020.04.09 14:48
    HTML 갈아엎고 XHTML로 가려는 것조차 반발이 너무 커서 실패하고 HTML5로 오게 된 거라, 아예 새로 시작하는 영역이 아니면 어렵지 않을까 싶기도 합니다. 사실 새로 시작하는 것도 대개 기존 것이랑 최대한 호환성 맞춰가면서 개발하고 있을 것이고요. 경로의존성이라는 것이 참 무섭습니다.
  • ?
    NPU 2020.04.09 14:49
    파싱 자체가 잡아먹는 시간이 너무 크니 이런것도 생기는군요..
  • profile
    쮸쀼쮸쀼 2020.04.09 14:51
    사실 저렇게 해서 날아오는 데이터 자체도 파싱을 아예 안 하는 건 아니지만, 기존 자바스크립트보다야 엄청 수월할 테니까요.
  • profile
    Retribute      안녕하세요. 행복한 하루 되세요. https://blog.naver.com/wsts5336     2020.04.09 21:44
    Parsing 자체가 좀 더 빠른 DB 접근을 위해 만든건데 이게 발목을 잡나보군요
  • profile
    쮸쀼쮸쀼 2020.04.10 10:02
    그런 게 아니라, 이걸 한 결과물은 어차피 정해져 있는데 매번 각 클라이언트에서 다시 작업하는 게 비효율적이기 때문입니다. 그 외에 다른 여러 문제들도 있고.
  • profile
    mysticzero 2020.04.14 13:15
    현직 웹개발자로써 심히 공감가는 부분이 적잖이 있네요...
    요즘은 jQuery까지 거의 기본으로 쓰다보니 같은 기능을 개발해도 개발자가 누구냐에 따라 코드가 완전히 다른 경우도 많이서
    가끔 남이 개발하던 싸이트 넘겨받아 소스 까 보면 한숨이 나옵니다
  • profile
    쮸쀼쮸쀼 2020.04.14 13:36
    남이 개발하던 사이트 넘겨받아 소스 까 보면 한숨이 나옵니다 (2)
    비게에도 썼지만 최근 어떤 웹 에이전시가 작업하는 사이트에 기능 추가하는 작업을 했는데, 솔직히 코드 품질이 영 심각하더라고요. 제가 코드 넣은 부분 근처에서 레이아웃 깨지는 부분은 제 코드랑은 전혀 관련이 없고 돈도 안 받았는데 그냥 제가 보다 못해 고쳐놨습니다.

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. 파폭도 내장번역기능이 생겼군요

        마침 직접 번역을 굴려서 보고 싶은 페이지가 생긴참이였는데요   위에 소개된 사이트 링크를 가보니 네덜란드 사이트라 생소하시겠군? 하고는 팝업으로 떠서 번역기능사용을 권장하더라구요.       그런데 한글어로의 번역은 제공하...
    Date2024.01.02 일반 By고자되기 Reply6 Views630 file
    Read More
  2. No Image

    구글 드라이브 사용 용량이 너무 컸는데 공유 문서함이 범인이었습니다

    당장 리뷰 쓸 재료들만 구글 드라이브에 공유를 걸어놓고 사는데요. 처음 구글 드라이브를 쓸 때부터 지금까지 꾸준하게 사용 용량이 7GB 씩 차 있더라고요. 처음에는 포토샵을 하지 않은 원본 사진 파일들의 용량이 크니까 그런갑다 하고...
    Date2024.01.02 일반 By낄낄 Reply6 Views693
    Read More
  3. 컴퓨터 백신을 바꿨습니다..

    기존에 비트디팬더 유료 이였는데..   저랑 안맞는건지.. 심심하면 트러블 일으키더라고요..     카스퍼스키 살까 하다가 에셋 샀는데 나쁘진 않습니다. (맨첨엔 노턴 살까 하다가 2년 5pc가격보니 사악하더라고요)   5카피 판 사서 j4125...
    Date2024.01.01 일반 Bytitle: 명사수AZUSA Reply18 Views952 file
    Read More
  4. 둘 중 '하겠다'를 고르시오

    엣지 영문판에서는 뭐라고 하는지 모르겠지만 No, Thanks 정도일 것 같은데요. 그걸 한글로 '괜찮습니다'로 번역하고 파란색 배경까지 깔아주니, 둘 중에 뭐가 MS가 멋대로 들이대는 데이터 수집에 동의하겠다는 버튼인지 찍을 ...
    Date2023.12.30 일반 By낄낄 Reply9 Views1174 file
    Read More
  5. Microsoft Copilot, iOS 버전 출시

      네 나왔습니다. 여튼 치트를 쳐도 게임이 되는 게임에 치트를 치지 말라니... 윈도에서 물어보니 순환(치트 사용은 어쩌구) 되던데 말이죠...
    Date2023.12.30 일반 Bytitle: 폭8책읽는달팽 Reply1 Views776 file
    Read More
  6. No Image

    사이버안보센터 보안권고 안내

    1. Citrix社 제품 보안업데이트 권고 최근 국내외에서 ‘Citrix Bleed’ 취약점(CVE-2023-4966)을 악용한 사이버공격이 발생, 국내 피해발생 가능성에 대비 취약점 업데이트 등 보안조치를 권고 2. HTTP/2 Rapid Reset DDoS 보안업데이트 권...
    Date2023.12.29 일반 Bytitle: 컴맹까르르 Reply2 Views697
    Read More
  7. No Image

    AFMF 간단 소감

    간단히 평만 적어봅니다.   1. 동작은 한다. 2. 소모전력은 약간 높음.  동영상 비재생 Idle 4w 플루이드 모션 비동작 동영상 재생시 20W 플루이드 모션 동작시 24W   3. 동영상 재생프로그램의 동작이 굼떠짐. (영상 오픈시 3-7초정도의 ...
    Date2023.12.25 일반 Bytitle: 가난한AKG-3 Reply10 Views1988
    Read More
  8. No Image

    블루스카이 프레임레이트 컨버터 RX 6000/7000 지원 추가됐습니다

    https://bluesky-soft.com/en/BlueskyFRC.html   아드레날린 23.12.1을 요구합니다 AFMF 사용하는거 같고 기존 플루이드 모션처럼 특정 프레임으로 고정은 불가능하며 프레임 더블링만 가능합니다   품질은 SVP 프로보다 떨어지는데 예전 ...
    Date2023.12.25 일반 By유입입니다 Reply17 Views1074
    Read More
  9. 쿨뷰가 알시만도 못하다고 생각하는 부분은

    저도 그림을 볼때는 주로 꿀뷰를 쓰는데요             가끔 그림에서 특정 부분만 짤라서 복사하고 싶을때가 있단 말이죠     -----------------------------------------------------------------------------------------------------...
    Date2023.12.15 일반 By고자되기 Reply20 Views812 file
    Read More
  10. VM웨어가 영구 라이선스를 없애고 구독제로 바꿨다기에 구경가봤는데

    내가 누구? WHO AM I? VMWare WORKSTATION 17 PRO 오우너!! 불구경 한번 가야지   ?     ???     퓨전 프로도 그대로고 대체 뭘 구독제로 바꿨단거지? VMWare 블로그 한번 뒤져봐야겠다.    오?     ​​​그렇다. 기업용만 구독제로 바뀌었...
    Date2023.12.15 일반 By록키베어 Reply1 Views944 file
    Read More
  11. DeepL 번역기 성능이 뛰어나군요.

    [잡담] 관련 글 1 - "E3, 역사의 뒤안길로" https://gigglehd.com/gg/game/15285890 관련 글 2 - "밸브: 스팀 덱 배기구의 냄새를 맡지 말라고 권고" https://gigglehd.com/gg/game/15293528   Papago DeepL 결과물이 훨씬 자연스럽고   ...
    Date2023.12.14 일반 Bytitle: 컴맹임시닉네임 Reply10 Views795 file
    Read More
  12. 엣지가 뭐같을때

    회사나 집에서 저는 평소에 기본화면을 심플하게 자주 들어간 사이트만 뜨게 해둡니다.   근데 가끔 엣지가 업데이트 되면, 디폴트 상태로 돌려놓는 경우가 왕왕있어요.   이렇게 말이죠. 그러면서도 저 카드뉴스같은 영역을 내리면 계속 ...
    Date2023.12.11 일반 Bytitle: 가난한AKG-3 Reply9 Views842 file
    Read More
  13. 모바일 크롬에서 문장을 길게 누르면 'Microsoft 365 메모'가 뜨는 문제 해결

    웹서핑을 하다가 검색하고 싶은 문장이 나오면,그걸 길게 눌러서 바로 '웹 검색'을 누르곤 했는데요. 언젠가부터인가 길게 누르면 뜨는 메뉴에 'Microsoft 365 메모'가 뜨면서 '검색'은 다음 페이지로 밀리더라고...
    Date2023.12.10 일반 By낄낄 Reply1 Views391 file
    Read More
  14. 내부망 광케이블 포설은 고난이도군요

    NAS를 업그레이드의 계획을 수립하면서 40GbE의 제성능을 활용하기 위해 광케이블로 내부망을 구성해야겠다는 필요성을 느껴 이를 계획에 반영하였고 현재 NAS 업그레이드는 끝나서 이제 40GbE를 위한 광케이블로 내부망을 구성하는 작업...
    Date2023.12.10 일반 Byhjk9860 Reply13 Views1155 file
    Read More
  15. No Image

    다음 영화 서비스 종료

    카카오는 2023년 12월 8일자 다음 영화 공지사항을 통해 다음 영화 서비스를 종료할 것임을 알렸습니다. 종료 예정일은 내년 1월 4일이며, 1월 5일부터 본인이 작성한 댓글의 백업 신청이 가능합니다. 백업 신청은 1월 19일 종료됩니다.  ...
    Date2023.12.09 일반 By달달한과자 Reply6 Views910
    Read More
  16. 키보드 Lock 키 상태를 알려주는 프로그램

    [잡담] Num/Caps/Scroll Lock 키 작동 여부는 키보드 내장 인디케이터 LED로 확인할 수 있습니다. 하지만 인디케이터 LED를 확인할 수 없다면 어떨까요? COX CK89, 인디케이터 LED가 없음 Logitech POP Keys, 키캡을 뒤집어 장착해서 인디...
    Date2023.12.08 일반 Bytitle: 컴맹임시닉네임 Reply3 Views704 file
    Read More
  17. No Image

    알리도 거지 같지만

    temu의 ui도 거지같음이 하늘을 찌릅니다.   UI가 별거 없어보이면서도 뭔가 사이트가 눈에 안들어옵니다.   아직 쌓인 백그라운드 데이터가 없어서 그런가, 카테고리도 뭔가 옷이나 이런 잡다한 류에 어떤것 들은 짝퉁 위주고,   이게 알...
    Date2023.12.06 일반 Bytitle: 가난한AKG-3 Reply9 Views678
    Read More
  18. Tails 다중 디스플레이 문제 해결 - 그래픽 하드웨어 1개만 사용

    [잡담/Tails]   디스플레이 두 개를 GTX 750 Ti와 HD 4600에 각각 하나씩 연결하여 사용 중이었습니다. Windows 10 22H2에서는 큰 문제가 없었으나 Tails 5.19.1에서는 디스플레이 하나만 정상 출력되고 다른 하나는 검은 화면이 나오는 ...
    Date2023.12.06 일반 Bytitle: 컴맹임시닉네임 Reply2 Views483 file
    Read More
  19. No Image

    알리발 2.5Gbps 장비로 내부망 구축하기

    이번 블프를 이용하여 알리익스프레스 2.5Gbps 내부망을 구축해 봤습니다. (다 합쳐서 카드할인까지 먹인 최종 가격이 안나와에서 제일 싼 국내 N모 2.5Gbps 스위치 가격과 맞먹었네요..)         keepLiNK 라는 회사의 제품인데 국내 후...
    Date2023.12.03 일반 Bytitle: 가난한Eriol Reply3 Views868
    Read More
  20. 알리 네 이놈! (2)

      알리가 한 두어달전쯤부터 위처럼 광고상품을 끼워놓습니다. 그리고 광고 표시는 매우 가독성이 떨어지게 해두고 있어 구분하기 귀찮습니다.     위 스크린샷은 최근 2년넘게 잘쓴 s10e의 뒷면 커버가 떨어지면서 그부분을 재접착할 스...
    Date2023.12.01 일반 Bytitle: 가난한AKG-3 Reply4 Views458 file
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 65 Next
/ 65

최근 코멘트 30개
rnlcksk
21:13
애플마티니
21:10
고자되기
21:09
하늘군군
21:08
까르르
21:03
유입입니다
20:51
린네
20:42
마초코
20:40
낄낄
20:39
캐츄미
20:36
리키메
20:36
칼토로스
20:34
마초코
20:34
소주
20:33
Loliconite
20:33
뚜까뚜까
20:25
TundraMC
20:24
그림자
20:21
고자되기
20:17
린네
20:14
TundraMC
20:14
0.1
20:13
아이들링
20:12
360Ghz
20:12
툴라
20:12
슬렌네터
20:10
낄낄
20:10
소고기죽
20:09
이수용
20:07
유입입니다
20:04

더함
MSI 코리아
AMD
한미마이크로닉스

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소