DOM(Document Object Model) 문서 객체 모델(The Document Object Model, DOM)은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스이다. DOM은 문서를 논리 트리로 표현한다. 트리의 각 브랜치는 노드에서 끝나며, 각 노드는 객체를 갖는다. DOM 메서드를 사용해 트리에 접근할 수 있고, 이를 통해 문서의 구조, 스타일, 콘텐츠를 변경할 수 있다. 우리는 JavaScript로 동작을 구현하는데, 이것은 DOM을 수정하기 위한 것이다. 이러한 작업을 정확히는 DOM API라고 한다. 자바스크립트는 다음과 같은 작업을 할 수 있다. 자바스크립트는 새로운 HTML 요소나 속성을 추가할 수 있습니다. 자바스크립트는 존재하는 HTML 요소나 속성을 제거할 수 있습..
TL;DR 쿠키 VS 세션 Cookie Session 저장위치 Client (웹 브라우저가 지정하는 메모리 또는 하드디스크) Server (서버의 메모리) 저장형식 Text Object 만료시점 쿠키 저장 시 설정 (설정 없으면 브라우저 종료 시) 정확한 시점 모름 (클라이언트가 로그아웃 하거나 설정 시간동안 반응이 없다면 무효화) 리소스 클라이언트의 리소스 (서버 자원을 사용하지 않음) 서버의 리소스 (세션이 생길 때마나 리소스를 차지함) 용량제한 한 도메인 당 20개, 한 쿠키당 4KB 제한없음 쿠키와 세션의 사용 목적 HTTP 프로토콜의 특성(connectionless, stateless)에 의해 클라이언트를 식별할 수 없다. 이를 보완하기 위해 쿠키 또는 세션을 사용한다. Connectionles..
브라우저 주소창에 "naver.com"을 입력하면 어떤 과정이 일어날까? 단, 이 글에서 설명하는 브라우저란 파이어 폭스, 크롬, 사파리와 같은 오픈소스 브라우저를 말한다. TL; DR 주소창에 url을 입력 후 Enter를 누르면, 서버에 요청이 전송된다. 해당 페이지에 존재하는 여러 자원(text, image 등)이 보내진다. 브라우저는 해당 자원이 담긴 html과 스타일이 담긴 css를 W3C 명세를 따라 해석한다. (렌더링 엔진이 이를 수행한다.) html 파서가 DOM 트리를 구성한다. CSS 파서가 CSSOM 트리를 구성한다. DOM과 CSSOM을 연결시켜 렌더 트리를 형성한다. 렌더 트리를 통해 문서가 시각적 요소를 포함한 형태로 구성된다. 화면에 배치를 시작하고, UI 백엔드가 노드를 돌며..
동치(Equivalence) 논리적으로 일치한다는 의미 흔히 동치는 같은 의미를 가진 더 쉬운 명제를 발견하는 데 사용한다. 굉장히 복잡해 보이는 합성명제라도 간단한 명제로 바꿀 수 있다. 논리적 동치(Logical Equivalences) 법칙 법칙 이름 논리적 동치 관계 항등 법칙 (Identity laws) p∧T ≡ p p∨F ≡ p 지배 법칙 (Domination laws) p∨T ≡ T p∧F ≡ F 멱등 법칙 (Idempotent laws) p∨p ≡ p p∧p ≡ p 이중 부정 법칙 (Double negation law) ¬(¬p) ≡ p 교환 법칙 (Commutative laws) p∨q ≡ q∨p p∧q ≡ q∧p 결합 법칙 (Associative laws) (p∨q)∨r ≡ p∨(q∨..
역, 이, 대우 역, 이, 대우는 조건명제에서 사용하고, 하나의 명제를 변형해 표현한다. 증명하기 어려운 명제는 대우를 이용해 증명할 수 있다. 역 (Q → P) 두 개의 위치를 바꾸는 것 이 (¬P → ¬Q) 각각의 명제에 부정을 바꾸는 것 대우 (¬Q → ¬P) 역과 이를 합친 것 대우가 참이면, 본 명제도 참이다. 진리표 P Q P → Q Q → P ¬P → ¬Q ¬Q → ¬P T T T T T T T F F T T F F T T F F T F F T T T T 예시 명제 "30이 10보다 크다면 30은 50보다 작다." p: 30은 10보다 크다. (True) q: 30은 50보다 작다. (True) 본 명제 p → q: "30이 10보다 크다면, 30은 50보다 작다." (True) 역 q → ..
이산 수학 (Discrete mathematics) 불연속적인 숫자를 다루는 수학, 컴퓨터를 위한 수학 이산 수학에서 다루는 내용은 자료구조, 알고리즘 등의 베이스가 되어 전체적인 컴퓨팅 사고력을 길러준다. 또한 수학접 귀납법 등의 다양한 기초 개념이 알고리즘에 반복적으로 출현하기 때문에 컴퓨터 과학의 베이스 학문이라고 할 수 있다. 명제와 연산자 명제 참(True) 혹은 거짓(False)으로 진리를 구분할 수 있는 문장 명제는 0 또는 1만을 가지는 컴퓨터 메모리처럼 항상 참과 거짓 둘 중 하나의 값만을 가진다. 여러 개의 명제를 조합할 수 있다. 연산자로 명제 다루기 연산자는 명제를 연산하기 위한 도구 이산수학의 기본 연산자로는 6가지가 존재한다. 이름 기호 의미 부정(negation, NOT) ¬P..