본문 바로가기

전체 글65

CPU와 RAM CPU와 RAM 목차 하드웨어 구성요소 CPU RAM Memory 계층 구조 clock 프로그램과 프로세스 프로그램 프로세스 하드웨어 구성요소 CPU (Central Processing Unit) RAM (Random Access Memory) HDD / SSD mainboard power 정격전압을 주기위해 필요하다. CPU CPU overview 레지스터 instruction memory ALU CPU에서 수행하는 일 (arithmetic 또는 Logical 연산일 때) PC(Program Counter - 현재 수행할 instruction을 가리키고 있는 레지스터)가 가리키고 있는 현재 수행되고 있는 Process의 code 영역에 저장된(또는 운영체제의 kernel code) instruction.. 2022. 9. 21.
43. Ajax Ajax Ajax(Asynchronous javascript and XML)란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다. XMLHttpRequest는 HTTP 비동기 통신을 위한 메서드와 프로퍼티를 제공한다. 이전의 웹페이지는 html 태그로 시작하고 끝나는 완전한 HTML을 서버로부터 전송받아 웹페이지 전체를 처음부터 다시 렌더링하는 방식으로 동작했다. 따라서 화면이 전환되면 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 다시 렌더링했다. 이러한 방식에는 다음과 같.. 2022. 8. 17.
42. 비동기 프로그래밍 동기 처리와 비동기 처리 실행 컨텍스트에서 살펴본 바와 같이 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택)에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료하면 함수 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다. 함수가 실행되려면 함수 코드 평가 과정에서 생성된 함수 실행 컨텍스트가 실행 컨텍스트 스택에 푸시되어야 한다. 다시 말해, 실행 컨텍스트 스택에 함수 실행 컨텍스트가 푸시되는 것은 바로 함수 실행의 시작을 의미한다. 함수가 호출된 순서대로 순차적으로 실행되는 이유는 함수가 호출된 순서대로 함수 실행 컨텍스트가 실행 컨텍스트 스택에 푸시되기 때문이다. 이처럼 함수의 실행 순서는 실행 컨텍스트.. 2022. 8. 17.
41. 타이머 호출 스케쥴링 함수를 명시적으로 호출하면 함수가 즉시 실행된다. 만약 함수를 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다. 이를 호출 스케쥴링이라 한다. 자바스크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖기 때문에 동기적으로 동작한다. 따라서 함수가 호출되기까지 기다리는 동안 다른 동작이 중단되는 블로킹 현상을 방지하기 위해 함수 호출 스케쥴링은 비동기적으로 동작하며 이는 브라우저의 이벤트 루프를 통해 처리된다. 자바스크립트는 타이머를 생성할 수 있는 타이머 함수 setTimeout과 setInterval, 타이머를 제거할 수 있는 타이머 함수 clearTimeout과 clearInterval을 제공한다. 타이머 함수는 ECMAScrip.. 2022. 8. 17.
40. 이벤트 이벤트 드리븐 프로그래밍 브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다. 예를 들어, 클릭, 키보드 입력, 마우스 이동 등이 일어나면 브라우저는 이를 감지하여 특정한 타입의 이벤트를 발생시킨다. 만약 애플리케이션이 특정 타입의 이벤트에 대해 반응하여 어떤 일을 하고 싶다면 해당하는 타입의 이벤트가 발생했을 때 호출될 함수를 브라우저에 알려 호출을 위임한다. 이때 이벤트가 발생했을 때 호출될 함수를 이벤트 핸들러라 하고, 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것을 이벤트 핸들러 등록이라 한다. 이처럼 이벤트 핸들러 등록을 통해 이벤트 핸들러 호출을 위임하는 이유는 사용자의 이벤트 발생 시점을 개발자가 미리 알 수 없기 때문이다. 따라서 이벤트 핸.. 2022. 8. 16.
39. DOM DOM은 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조다. 노드 HTML 요소와 노드 객체 HTML 요소는 HTML 문서를 구성하는 개별적인 요소를 의미한다. HTML 요소는 렌더링 엔진에 의해 파싱되어 DOM을 구성하는 요소 노드 객체로 변환된다. 이때 HTML 요소의 어트리뷰트는 어트리뷰트 노드로, HTML 요소의 텍스트 콘텐츠는 텍스트 노드로 변환된다. HTML 문서는 HTML 요소들의 집합으로 이뤄지며, HTML 요소는 중첩 관계를 갖는다. 이때 요소 간의 중첩 관계에 의해 계층적인 부자 관계가 형성되며, 이를 반영하여 HTML 요소를 객체화한 모든 노드 객체들을 트리 자료 구조로 구성한다. 노드 객체의 타입 DOM은 노.. 2022. 8. 15.