본문 바로가기

반응형

CS

(69)
[자료구조] 복잡도/선형&비선형 자료구조 2023년 5월 3일 232p~261p 5.1 복잡도 복잡도는 시간 복잡도와 공간복잡도로 나뉜다. 빅오 표기법 : 시간 복잡도 시간 복잡도란 문제를 해결하는 데 사용한 알고리즘의 로직이 얼마나 오랜 시간이 걸리는지를 나타내는데 쓰이며 보통 빅오 표기법으로 나타낸다. 예를 들어 입력 크기 n의 모든 입력에 대한 알고리즘에 필요한 시간이 10n^2 + n 이라고 하면 다음과 같은 코드를 상상할 수 있다. for(let i=0;i
39장 DOM(2) 2023년 5월 2일 700p~714p 39.3 노드 탐색 DOM 트리 상의 노드를 탐색 할 수 있도록 Node, Element 인터스페이스는 트리 탐색 프로퍼티를 제공한다. Node.prototype 이 제공하는 프로퍼티 parentNode : 부모 노드 탐색, (부모 노드는 텍스트 노드가 될 수 X) previousSibling : 이전 형제 노드 탐색하여 반환, 요소 노드 또는 텍스트 노드를 반환 firstChild : 첫 번째 자식 노드 반환 , 요소 노드 또 는 텍스트 노드 childNodes : 자식 노드를 모두 탐색 하여 NodeList로 반환, 텍스트 노드 포함 될 수 있음 Element.prototype 이 제공하는 프로퍼티 previousElementSibling : 이전 형제 노드 반..
[데이터베이스] 트랜잭션과 무결성/인덱스/조인 2023년 5월 1일 206p~228p 4.3 트랜잭션과 무결성 4.3.1 트랜잭션 트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 - SELECT - INSERT - DELETE - UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. * 이때 DB 작업 - 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 - 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를 변경 현재 작업 단위 : 출금 UPDATE문 + 입금 UPDATE문 → 이를 통틀어 ..
39장 DOM(1) 2023년 5월 1일 677p~700p 39.1 노드 브라우저 렌더링 엔진은 HTML 문서를 파싱하여 브라우저가 이해할 수 있는 자료구조인 DOM을 생성한다. DOM은 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조다. 39.1 노드 39.1.1 HTML 요소와 노드 객체 HTML 요소는 HTML 문서를 구성하는 개별적인 요소를 의미한다. HTML 요소는 렌더링 엔진에 의해 파싱되어 DOM을 구성하는 요소 노드 객체로 변환된다. 이때 HTML 요소의 어트리뷰트는 어트리뷰트 노드로, HTML 요소의 텍스트 콘텐츠는 텍스트 노드로 변환된다. * 비선형 자료구조 : 하나의 자료 뒤에 여러 개의 자료가 존재할 수 있는 자료구조(트리, 그..
[데이터베이스] 데이터베이스 기본/ERD와 정규화 과정 2023년 4월 29일 184p~205p 4.1 데이터베이스의 기본 DB : 일정한 규칙, 규약을 통해 저장된 데이터의 모음 DBMS: 해당 DB를 제어, 관리하는 통합 시스템 데이터들은 각 DBMS마다 정의된 쿼리 언어를 사용해 삽입, 삭제, 수정, 조회를 수행할 수 있다. DB 위에 DBMS가 존재하며, 그 위에 응용 프로그램이 있다. MySQL(DBMS)이라는 DBMS가 있고 그 위에 응용 프로그램에 속하는 Node.js, php 등에서 해당 데이터베이스 안에 있는 데이터를 끄집어내 해당 데이터 관련 로직을 구축할 수 있다. - 데이터베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 ..
38장 브라우저의 렌더링 과정 2023년 4월 29일 660p~676p 자바스크립트가 가장 많이 사용되는 분야는 웹 브라우저 환경에서 동작하는 웹페이지/애플리케이션의 클라이언트 사이드다. 웹 애플리케이션의 클라이언트 사이드 자바스크립트는 브라우저에서 HTML, CSS와 함께 실행된다. 이를 위해 브라우저가 HTML, CSS, 자바스크립트로 작성된 텍스트 문서를 어떻게 파싱(해석)하여 브라우저에 렌더링하는지 살펴보자. 파싱(구문 분석) : 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해(어휘 분석)하고, 토큰에 문법적 의미와 구조를 반영하여 트리 구조의 자료구조인 파스트리를 생성하는 일련의 과정 렌더링 : html, css, js로 작성된 문서를 파싱하여 브라우저에 시각..
34장 이터러블 2023년 4월 28일 614p~626p 34.1 이터레이션 프로토콜 iteration protocol은 순회 가능한(itrable)한 자료구조를 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙이다. ES6에서는 순회 가능한 자료구조를 이터레이션 프로토콜을 준수하는 이터러블로 통일해 for...of문, 스프레드 문법, 배열 디스트럭처링 할당의 대상으로 사용할 수 있도록 일원화했다. 이터레이션 프로토콜에는 이터러블 프로토콜과 이터레이터 프로토콜이있다. - 이터러블 프로토콜(iterable protocol) well-known Symbol인 Symbol.iterator를 프로퍼키 키로 사용한 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속 받은 Symbol.iterator 메서드를 호..
26장 ES6 함수의 추가 기능 2023년 4월 26일 469p~491p 26.1 함수의 구분 ES6 이전까지 자바스크립트의 함수는 별다른 구분없이 다양한 목적으로 사용되었다. 일반적인 함수로서 호출할 수 있다. new 연산자와 함께 호출하여 인스턴스를 생성할 수 있는 생성자 함수로서 호출할 수도 있다. 객체에 바인딩되어 메서드로서 호출할 수도 있다. 즉, ES6 이전의 모든 함수는 일반 함수로서 호출할 수 있는 것은 물론 생성자 함수로서 호출할 수 있다. 다시 말해, ES6 이전의 모든 함수는 callable이면서 constructor다. 이러한 문제를 해결하기 위해 es6에서는 함수를 사용 목적에 따라 세 가지 종류로 명확히 구분하였다. ES6 함수의 구분 constructor prototype super arguments 일반 함..

반응형