개발/개념

    추상 구문 트리 (AST)란?

    [CS: 운영체제] 컴파일러 [CS: 운영체제] 컴파일러컴퓨터는 const a = 10;을 읽을 수 없다. 컴퓨터는 0과 1밖에 이해하지 못하기 때문이다. 나는 0과 1로만 작성된 코드를 읽을 수 없다. 나는 컴퓨터가 아니기 때문이다. 따라서, 둘을 연결하는 중간다29223.tistory.com컴파일러에 대한 내용을 읽다보면 구문분석(파서)의 결과의 예시로 AST라는 것이 있다. AST는 무엇일까? 추상 구문 트리위와 같은 트리의 형태를 추상 구문 트리라 부른다. (Abstract Syntax Tree) 각 언어로 프로그래밍 된 소스 코드는 추상적으로 바뀌게 되고 코드의 구조는 위와 같이 노드로 바뀌게 된다. 이러한 노드들이 모여 만들어진 자료구조가 AST다. const test = 'this is te..

    선언형 프로그래밍과 명령형 프로그래밍 (feat. React 18 Concurrent Mode)

    선언형React는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여줍니다. 애플리케이션의 각 상태에 대한 간단한 뷰만 설계하세요. 그럼 React는 데이터가 변경됨에 따라 적절한 컴포넌트만 효율적으로 갱신하고 렌더링합니다.선언형 뷰는 코드를 예측 가능하고 디버그하기 쉽게 만들어 줍니다.React – 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 (reactjs.org) 리액트 공식 홈페이지에서 React는 선언형 라이브러리로 소개되었다. 프로그래밍에서 선언적이라는 것이 어떤 것을 의미할까? 프로그래밍 패러다임프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 한다. 대표적인 프로그래밍 패러다임으로는 객체지향 프로그래밍, 함수형 프로그래밍 등이 있다...

    WebRTC란 무엇이며 어떤 과정을 갖는가?

    WebRTC라는 개념이 있다. WebRTC는 무엇을 위한 기술이며 어떤 과정을 거치게 될까? WebRTC란? Web Real-Time Communication. 웹 애플리케이션과 사이트가 중간자 없이 브라우저 간에 오디오나 영상 미디어를 포착하고 마음대로 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술 WebRTC를 구성하는 일련의 표준들은 플라그인이나 제 3자 소프트웨어 설치 없이 종단 간 데이터 공유와 화상 회의를 가능하게 한다. 쉽게 생각해서 P2P 실시간 커뮤니케이션이 가능하게 해주는 기술이다. WebRTC를 사용하면 카메라, 마이크를 넘어 고급 영상 통화 애플리케이션 및 화면 공유 등에도 활용 가능하다. WebRTC의 과정 WebRTC를 사용하기 위해서는 어떤 과정이 필요할까?..

    Vite는 왜 빠를까?

    일반적으로 Webpack보다 Vite가 더 빠르다는 글을 볼 수 있다. 왜 Vite가 Webpack보다 빠르다는 것일까? 모듈 개발을 하는 과정에서 어플리케이션의 크기가 커지면 언젠가 파일을 분리해야 할 것이다. 이때 분리되는 파일 각각을 '모듈(module)'이라 부른다. 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된다. 하지만 JS의 모듈 시스템인 ESM은 2015년 ES6가 도입되며 공직적으로 추가되었다. ESM을 사용하면 import와 export 문법을 사용하여 서로 다른 모듈에서 변수나 함수 등을 쉽게 불러오거나 내보낼 수 있다. 브라우저에서 ESM을 지원하기 전까지는 JS의 모듈화를 네이티브 레벨에서 진행할 수 없었다. 여기서 "네이티브 레벨"이라는 것은 외부의 다른..