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.02.28 일반 By낄낄 Reply3 Views647 file
    Read More
  2. 통신 데이터 무제한 사용자 핫스팟 용량 걱정없이 사용

    "위 참고 링크 확인" 저도 유투브 보다가 발견한건데 핫스팟 용량에 신경쓰이는 분들은 유용할 것 같습니다. 우선 저는 핫스팟을 많이 사용할 일이 거의 없어서 신경안쓰고 살았는데 병원에서 제대로된(속도 빠르고 안끊기는). 와이파이가...
    Date2024.02.11 일반 By아엠푸 Reply7 Views1686 file
    Read More
  3. 스욍 킥보드/자전거 고객센터는 report.swingmobility.kr 입니다

    시작하기 전에, 공유 킥보드, 공유 자전거라고 말하는 서비스들은 탈것을 공유하는 게 아니라 주차 공간을 무단 점유하는 강도들입니다. 부모님 집에 가니 주차장 입구에 공유 자전거가 한 대 세워져 있네요. 공유 킥보드 신고는 전에도 ...
    Date2024.02.10 일반 By낄낄 Reply9 Views592 file
    Read More
  4. 악성 애플리케이션 '모바일 부고' 간단히 살펴보기

    [잡담] 관련 글 - "피싱범은 사람새끼가 아닌가 봅니다." https://gigglehd.com/gg/bbs/15402284     나눔받은 LG V30에 설치해서 간단히 살펴봤습니다. 설치할 때에는 권한을 요구하지 않으나 옵션에서 저장소/전화/주소록/SMS 권한을 가...
    Date2024.02.07 일반 Bytitle: 컴맹임시닉네임 Reply4 Views510 file
    Read More
  5. 작업표시줄 코파일럿 버튼 제거하는 방법

      윈도우 설정 > 개인 설정 > Copilot 단추를 끔으로 변경하면 됩니다.   윈도우 업데이트 하니까 갑자기 생겼는데, 더 놀라운건 버튼에 우클릭이 안먹는다는겁니다. 와우!
    Date2024.02.07 일반 Bytitle: 흑우Moria Reply3 Views402 file
    Read More
  6. No Image

    쓸만한 이미지호스팅 서비스가 있을까요?

    기존에 NHN의 G2서비스를 이용하고 있었는데 해당서비스의 경우 따로 구매한 도메인을 연결하면 연결한 도메인에 대해서는 SSL 적용이 안되더라고요. 용도가 쇼핑몰 이미지용인데 그래버리면 크롬기반 브라우저에서 상품이미지가 안나오는...
    Date2024.01.31 일반 Bytitle: 명사수가네샤 Reply12 Views691
    Read More
  7. 간단하다! 맥타입을 사용한 가독성 개선

    저해상도에서는 윈도우 기본 클리어타입과 맑은 고딕이 더 좋은 가독성을 보여줄 수 있습니다.   기존에 FHD 디스플레이만 사용할때는 폰트 가독성에 대한 별 다른 불만이나 잡생각이 없었는데 최근 27" UHD로 바꾸니 윈도우 기본 클리어...
    Date2024.01.30 일반 By유입입니다 Reply1 Views992 file
    Read More
  8. 엣지 업데이트 하고나니까 코파일럿 여기저기 엄청 나오는군요.

    마우스로 드래그 하면 바로 나오는 미니메뉴에도 '코파일럿에 물어보기'가 나오는군요.       그래서 코파일럿에 물어보면     멀쩡하게 답변해줄 때도 있지만       뭐야?? 어쩌라고?    
    Date2024.01.20 일반 Bytitle: AI아무개 Reply11 Views1234 file
    Read More
  9. 사라 메이클레존, 비트코인의 익명성을 깨다

    나카모토 사토시가 논문을 던져놓고, 비트코인은 100% 범죄자와 그런걸 못 찾는줄 알았습니다. 그래서 실크로드같은 마약 판매 다크웹이 성행했었죠.   근데, 이걸 사라 메이클레존( https://smeiklej.com/ ), 유니버셜 칼리지 오브 런던...
    Date2024.01.19 일반 Bytitle: 폭8책읽는달팽 Reply9 Views1211 file
    Read More
  10. No Image

    LogoFail 취약점에 대한 바이오스 패치

    LogoFail 공격 : https://gigglehd.com/gg/soft/15264847   이번에 보니까 구형 칩셋들도 LogoFail에 대응하는 바이오스가 업데이트 되었더라고요.   ASUS, ASRock, MSI, Gigabyte 모두 다 올라왔으니 한번 확인해보시고 업데이트 해주시...
    Date2024.01.18 일반 Bytitle: 흑우Moria Reply2 Views540
    Read More
  11. No Image

    교육기관 이용자를 위한 Office 365 A1라이선스가 제한됩니다.

    이미 대다수 대학들이 이에 대한 대응으로 수료, 제적, 졸업생에 대한 라이선스 회수에 대해 공지를 한 상태였군요.   만약 대학 졸업 이후에도 학교 계정의 Office 365와 OneDrive 1TB 혜택을 보고 계신분들은 각 학교에 공지된 사항을 ...
    Date2024.01.17 일반 ByRespect Reply3 Views726
    Read More
  12. 유튜브 속도저하 원인은 구글이 아닌 애드블럭 자체 문제

      유튜브 속도저하 원인은 애드블럭플러스 신규 기능 때문이었고 유블럭과 같은 다른 차단기는 문제가 없음   댓글 삭제가 여러곳에서 일어나겠군요
    Date2024.01.16 일반 ByCaldigit Reply11 Views1538 file
    Read More
  13. No Image

    구형 IE를 쓰기 위한 여정

    1. 저번에 한번 윈10 LTSB 구형버전(2016, 1607)에서 안되는게 많다고 푸념을 했는데요. https://gigglehd.com/gg/1540441   그때 주신 댓글들이 많은 도움이 되었습니다. 일단 1607은 저때 얘기한 문제와 별개로 더 큰 문제가 있더라고요...
    Date2024.01.15 일반 Bytitle: 흑우Moria Reply0 Views569
    Read More
  14. 마소 로그인 이력 한번 까봤습니다.

      제가 한 두번의 로그인 제외하고는 다 실패입니다. 저는 미국이나 독일을 가본적이 없습니다.(아 명예 미국인을 2주마다 하기는 하지만)   어쨋든 로그인 실패하는 이유는 간단합니다 2FA 쓰거든요. 쓴지는 7년이상됩니다. 과거 윈10/...
    Date2024.01.13 일반 Bytitle: 가난한AKG-3 Reply4 Views720 file
    Read More
  15. 프린터는 작동하지만 드라이버는 제공하지 않습니다

    스마트폰과 태블릿이 보급된 지금 같은 세상이야말로, 빌 게이츠 말대로 사무실에서 종이가 사라져도 될 때라고 생각합니다만 그래도 종이가 필요할 때가 있습니다. 어디라고 말할 수는 없지만 갑자기 서류에 싸인해서 보낼 일이 생겼어요...
    Date2024.01.10 일반 By낄낄 Reply7 Views704 file
    Read More
  16. AI 벤치마크가 뭐 있나 찾아보는데

    1. 규격화된 프로그램이나 벤치가 없군요.스마트폰 빼고 PC 이야기입니다. openbenchmarking에서 배포하는 건 있지만 이것저것 준비할 게 많고, 리눅스 서버를 위한 테스트라는 느낌이 강하군요. 2. 3D마크 시리지의 개발사인 UL에서 다양...
    Date2024.01.08 일반 By낄낄 Reply8 Views647 file
    Read More
  17. No Image

    윈도우 LTSB/LTSC 버전의 단점

    리눅스의 LTS버전처럼 윈도우도 기능업데이트 없이 보안업데이트만 장기적으로 지원되는 LTSB, LTSC 버전이 있습니다.   어느정도냐 하면 2016 LTSB는 아직도 엣지가 없고 인터넷 익스플로러가 살아있습니다. 인터넷 익스플로러에서만 잘 ...
    Date2024.01.07 일반 Bytitle: 흑우Moria Reply8 Views1362
    Read More
  18. No Image

    시네벤치 2024가 실행되지 않는다면

    테스트용으로 받은 MSI 노트북에서 시네벤치 2024가 실행되지 않습니다. 똑같은 파일로 노트북 2개에선 안되고 2개에선 잘 되더라고요. 데스크탑은 뭐든 잘 됩니다. 파일을 새로 받고 다 해봐도 소용 없습니다. 원인은 파일 저장 경로에 ...
    Date2024.01.07 일반 By낄낄 Reply2 Views571
    Read More
  19. 카카오가 은근슬쩍 광고 넣는 건 참 잘해요

    언젠가부터 메일 목록이 거슬린다 싶었더니 위에 광고가 생겼고. 메일 보내고 나니 여기에도 광고가 뜨는군요. 두번째 광고는 광고가 뜬다는 것보다도, 카카오 자체광고도 아닌 구글 애드센스를 박아버리는 패기에 더 놀랬네요. 기글도 ...
    Date2024.01.06 일반 By낄낄 Reply2 Views745 file
    Read More
  20. No Image

    전화로 윈도우 정품인증 한번더 했다간 혈압 터질거 같습니다.

      ARS 전화가 사람을 짜증나게 하고 화나게 합니다.   기를쓰고 전화로 정품인증 안해줄려는 것처럼 메뉴를 꼭꼭 숨겼더라고요.   그것도 0도 날씨에서 덜덜떨면서 이짓을 할려니 화가 나네요. 예전엔 기업용 누르고 정품인증 누르면 바...
    Date2024.01.03 일반 Bytitle: 명사수AZUSA Reply5 Views1185
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 65 Next
/ 65

최근 코멘트 30개
툴라
07:32
skyknight
07:27
마초코
07:26
마초코
07:25
Argenté
07:24
툴라
07:21
까르르
06:59
veritas
05:41
자타공인AMD_유저
05:33
veritas
05:04
아라
04:57
푸른바다왕거북이
04:37
霊夢
04:21
Neons
01:28
조마루감자탕
01:13
가네샤
01:11
Moria
01:08
Mycin
00:59
가네샤
00:58
고자되기
00:51
이게뭘까
00:49
빈도
00:48
삥뽕
00:46
까마귀
00:40
까르르
00:38
폴짝쥐
00:34
까마귀
00:30
낄낄
00:27
까마귀
00:25
낄낄
00:24

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

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


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

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


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

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

설치 취소