본문 바로가기

분류 전체보기

(112)
프로세스와 스레드 (Process & Thread) 프로그램(Program) : 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모음. 프로세스(Process) 운영체제 위에서 연속적으로 독립적으로 실행되고 있는 프로그램. 실행 중에 있는 프로그램. 프로세스마다 할당된 데이터, 리소스들이 지정되어 있습니다. (CPU 시간..) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미합니다. 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받습니다. Code : 실행할 프로그램의 코드 및 매크로 상수가 기계어 형태로 저장되는 공간. CPU는 코드영역..
브라우저 렌더링 과정 + 자바스크립트 (browser rendering process & javascript) 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것입니다. 자원은 보통 HTML 문서지만 PDF나 이미지 또는 다른 형태일 수 있습니다. 자원의 주소는 URI(Uniform Resource Identifier)에 의해 정해집니다. 브라우저의 주요 구성 요소. 사용자 인터페이스 - 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등. 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분. 브라우저 엔진 - 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어. 렌더링 엔진 - 요청한 콘텐츠를 표시. 예를 들어 HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시. 통신 - HTTP 요청과 같은 네트워크 호출에 사용됨. 이것은 플랫폼 독립적인 인터페이스이고 각 플랫폼 하..
자바스크립트 개념 / Class, getter, setter Class ! 객체를 생성할 수 있는 템플릿 (청사진, 틀) 밀접하게 연관있는 요소들을 객체로 만들어 객체끼리 호환가능하게 프로그래밍 하는 것. 데이터 - 데이터를 조작하는 코드를 묶어서 추상화. Instance : 클래스를 통해 만든 객체. 예시 class Fruit { constructor(name, emoji) { this.name = name; this.emoji = emoji; } display = () => { // 클래스 안에서 메소드 작성법, 인스턴스레벨의 메소드 console.log(`${this.name} : ${this.emoji}`); // 인자를 같이 쓰고 싶다면 마찬가지로 this 써야한다. }; } const apple = new Fruite(‘apple’, ‘!’); //ap..
사이즈와 좌표값 정리 / screenWidth Height, scrollWidth Height, innerWidth Height, outerWidth Height, offsetWidth Height, clientWidth Height & screenX Y, pageX Y, offsetX Y, clientX Y Width & Height 속성 설명 Window.screenWidth, screenHeight 브라우저 창을 넘어서는, 유저가 보는 스크린 자체의 크기 Element.scrollWidth, scrollHeight 스크롤바로 숨겨진 영역까지 포함한 실제 엘리먼트의 크기 Window.outerWidth, outerHeight 브라우저 창 안의 스크롤바와 메뉴를 포함한 크기 Window.innerWidth, innerHeight 브라우저 창 안의 스크롤바와 메뉴를 제외한 document 크기 Element.offsetWidth, offsetHeight 엘리먼트의 패딩과 보더, 스크롤바의 사이즈를 포함한 크기 Element.clientWidth, clientHeight 엘리먼트의 패딩만 포함한 크기. 보더, ..
자바스크립트 - 스프레드 연산자(Spread Operator)와 나머지 매개변수(Rest Parameter) & 구조 분해 할당(Destructuring Assignment) Spread Operator는 ES6에서 추가된 문법으로, '...' > 이렇게 하면 자동으로 전달이 된다. 코드상에서 더 의미 있는 이름을 분배하고 싶을 때. const importanceOrder = [“음악”, “코딩”, “운동”] const [1순위, 2순위, 3순위] = importaceOrder; console.log{1순위); // 음악. importaceOrder에 값이 없다면, 기본값도 설정 가능. // (default parameter) const [1순위, 2순위, 3순위, 4순위 = “없음”] = importaceOrder console.log(4순위) // 없음. function createEmoji() { return [‘apple’, ‘사과’]; } const array = c..
자바스크립트 : 실행컨텍스트 (Execution Context) & 호이스팅 (Hoisting) 실행컨텍스트 Execution Context 실행 컨텍스트란 코드가 실행되기 위해 필요한 환경입니다. 코드를 실행하기 위해서 자바스크립트 엔진은 아래의 정보를 알고 있어야 합니다. 변수 : 전역변수, 지역변수, 매개변수, 객체의 프로퍼티 함수 선언 변수의 유효범위 (스코프) this 이 같은 실행에 필요한 정보들을 형상화, 구분하기 위해 자바스크립트 엔진은 실행 컨텍스트를 물리적 객체의 형태로 관리합니다. 자바스크립트 파일이 로드되면 전역 컨텍스트가 생성되어 콜 스택에 쌓입니다. 코드가 실행되고 func1 함수를 만나면 func1의 환경 정보를 담은 함수 컨텍스트가 생성되어 콜스택에 쌓입니다. 그리고 이어서 func2가 쌓입니다. func2의 코드 실행이 완료되면 func2의 함수 컨텍스트가 콜 스택에서..
자바스크립트 : 스코프와 클로저 (Scope & Closure) / for 반복문에서의 let & var 1. Scope 스코프. 사전적 의미로 범위, 영역이라는 의미가 있습니다. 다른 프로그래밍 언어에서도 공통적으로 쓰이는 컨셉으로 참조할 수 있는 범위, 식별자(변수, 함수, 클래스이름)가 유효한 범위를 의미합니다. 선언된 위치에 따라 유효범위가 결정됩니다. function test() { let name = 'leo'; } name이라는 변수의 '스코프'는 test 함수 '{' '}' 사이. 하위 스코프는 상위 스코프에 접근할 수 있지만 상위 스코프는 하위 스코프에 접근이 불가합니다. { } 블럭 안의 변수는 블럭 안에서만 유효하고 밖에서는 { } 블럭 안의 내용에 들어가지 못합니다. let text = "hi"; function print() { console.log(text); let name = "..
자바스크립트엔진(1) / 자바스크립트의 특징, 데이터 타입별 메모리 할당 - call stack & memory heap 1. 자바스크립트의 특징 우리가 작성한 코드들은 자바스크립트 엔진에 의해 한 줄 한 줄씩 번역되고 실행됩니다. 이러한 특징을 가진 프로그래밍 언어를 인터프리터 언어라고합니다. 이와 비교되는 언어는 컴파일 언어입니다. 컴파일 언어의 예로 JAVA가 있습니다. JAVA의 경우 컴파일러를 통해 통째로 번역을 완료한 이후(컴파일링), 실행파일을 거쳐 컴퓨터에서 실행하게 됩니다. 컴파일 언어의 경우 초기 번역에 시간이 걸리지만 일단 번역이 완료되었다면, 이후의 진행은 빠릅니다. 자바스크립트는 한 줄 번역 실행, 한 줄 번역 실행하기 때문에 초반 실행속도는 빠르지만 이후에는 상대적으로 컴파일 언어에 비해 느릴 수 있습니다. 이외에도 자바스크립트는 아래와 같은 특징들을 가지고 있습니다. - 웹 페이지를 위한 프로그래..