본문 바로가기

Programming Language32

JS33 - 13.DOM과 Layout DOM(Document Object Model) 문서 객체 모델 프로그래밍 언어가 웹 사이트의 내용, 구조 및 스타일을 조작 할 수있게 해주는 인터페이스입니다. JavaScript는 인터넷 브라우저에서 DOM에 연결하는 클라이언트 측 스크립팅 언어입니다. XML이나 HTML 문서에 접근하기 위한 인터페이스 웹 문서는 텍스트 파일로 만들어져있어서, 브라우저가 이해할 수 있는 구조로 메모리에 올리려면 가공이 필요하다. 브라우저의 렌더링 엔진은 웹 문서를 로드한 후, 파싱하여 웹 문서를 브라우저가 이해할 수 있는 구조로 구성하여 메모리에 적재한다. 이렇게 모든 요소와 요소의 어트리뷰트, 텍스트를 각각의 객체로 만들고 이들 객체를 부자 관계를 표현할 수 있는 트리 구조로 구성한 것이 DOM이다. DOM은 자바스.. 2021. 6. 3.
JS33 - 12.비트 연산자, 형식화 배열, 버퍼(배열) 컴퓨터는 모든 데이터를 이진 형식 (0,1)로 저장한다. 그 후 UTF-8과 같은 인코딩을 사용하여 저장된 비트조합을 문자,숫자, 혹은 다른 기호로 맵핑한다. 비트 수준에서 변수와 상호 작용하는 방법입니다. 비트는 일반적으로 부동 소수점 및 정수로 변환되므로 정보를 쉽게 소화 할 수 있습니다. 우리가 속도와 효율성을 중요시한다면 비트를 직접 처리하고 그 변환을 floats / int로 건너 뛰는 것이 유용 할 것입니다. 비트는 자바 스크립트의 변수보다 빠르지만 번역 수준을 건너 뛰는 것보다 복잡합니다. JS 이진 변환 Number(113).toString(2) // 1110001 // 직접 입력할 수도 있다. // function parseInt parseInt(1111, 2) //15 // 0b 0b1.. 2021. 6. 3.
JS33 - 11.JS engines Virtual Machine 가상 머신 가상머신: 주어진 컴퓨터 시스템의 가상 머신 또는 소프트웨어 구동 에뮬레이션 유형 Mac의 Parallels 프로세스 가상머신: 덜 기능적, 하나의 프로그램이나 프로세스만 실행할 수 있다. Windows의 Wine JS엔진은 JS 코드를 해석하고 실행하도록 특별히 설계된 프로세스 가상 머신의 일종이다. 웹 페이지를 구성하여 브라우저의 성능을 향상시키는 레이아웃 엔진과 코드를 해석하고 실행하는* 낮은 수준의 Javascript 엔진*을 구별하는 것이 중요하다. JS 엔진이란? 자바스크립트 코드를 마이크로프로세서가 이해할 수 있는 낮은 레벨 또는 기계 코드로 변환하는 프로그램입니다. 각 Javascript 엔진은 ECMAScript(스크립팅 언어 표준) 버전을 구현한다.. 2021. 6. 3.
JS33- 10.setTimeout, setInterval, requestAnimationFrame Scheduling 함수가 즉시 실행되지 않고 특정 시간에 실행되도록 결정하는 것. ( == scheduling a call) 둘 다 콜백이기 때문에 지연시간 0ms를 줘도 다른 기본 함수보다 늦게 실행됨 제로 타임 아웃 스케쥴링setTimeout (func, 0)(setTimeout (func)과 동일)은 “가능한 한 빨리, 그러나 현재 코드가 완료된 후에”호출을 스케쥴하는데 사용된다. 함수를 setInterval/setTimeout에 넘기면 내부 참조가 함수 안에 생기고 garbage collection을 회피함! CPU 자원 많이 먹는 수행을 setTimeout이용해서 분리시킬 수 있다. 모든 스케쥴링 방법은 정확한 지연을 보장하지 않는다. 브라우저 내부 타이머가 아래와 같은 이유로 느려질 수 있다.. 2021. 6. 2.
JS33 - 09.이벤트루프(Eventloop) 메시지 큐에 더 많은 메시지가 있는지 확인하는 루프 Javascript에서 비동기화를 허용하는 기본 모델 끊임없이 호출 스택이 비었는지에 대한 검사를 실행하는 프로세스(콜 스택이 비어 있으면 호출 대기 중인 함수가 있는지 확인한다.) 모든 요청마다 새 스레드가 생성되는 스레드 모델과 달리 단일 스레드에서 실행되므로 오버헤드가 발생하지 않는다. 특징 동시성(Concurrency) 자바스크립트 런타임은 한 번에 한 가지만 할 수 있고, 다른 코드를 실행하는 동안에는 Ajax 호출을 할 수 없으며, 다른 코드를 실행하는 동안에는 setTimeout 할 수 없지만 브라우저를 통해 이 모든 것을 할 수 있다. 브라우저를 사용하면 다른 코드를 실행하는 동안 Ajax 호출을 할 수 있으며 다른 코드를 실행하는 동안 .. 2021. 6. 2.
객체지향 프로그래밍이란? 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍의 장, 단점 간단하게 설명해주세요 - 장점 ▶코드 재사용이 용이 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장.. 2021. 6. 1.