패킷 변조
·
Hacking/Web Hacking
서버에서 클라이언트로 전송되는 패킷 변조* 웹 사이트가 어떤 언어로 개발이 되었던지 웹 프록시를 통해서 전송되는 문서의 형태는 HTML프록시란?서버와 클라이언트 단에서 주고받는 Request, Response를 볼 수 있는 도구다양한 프록시 도구들이 존재함 그 중 Fiddler는 여러가지 버전이 존재하는데 그 중에서도 Fiddler Classic을 사용할 것 (Fiddler Classic은 윈도우에서만 사용 가능) Fiddler Classic의 구성패킷컴퓨터에서 서버로 나가는 모든 요청을 캡처해 놓은 것 # 번호 : 컴퓨터에서 서버로 나간 요청의 순서Result : HTTP status - 200이 정상 처리된 것Body : Response의 Content Length를 파싱해서 읽어온 패킷 정보 (In..
클라이언트, 서버 간 데이터 통신
·
Web
Definition | 정의 - 클라이언트단, 서버단클라이언트단서버단브라우저 크롬,사파리,파이어폭스html/js/cssdom엔진/js엔진view react 등의 프레임워크 존재웹서버 / 웹애플리케이션 서버웹서버 : 아파치 ngniz웹애플리케이션 서버 : tomcat, jeus, web logic데이터베이스 : mysql, oracle, mssql더보기[ 해킹 관점에서 ]모든 입력값과 행위에 대해서 취약점이 발생할 수 있음 즉, 브라우저, 웹서버, 데이터베이스에서 정보를 주고받고, 처리하는 과정 모두 취약점으로 볼 수 있음 웹 요청 & 응답[ Request ] 클라이언트 → 서버[Request]POST /info HTTP/1.1Host: x.comContent-Type: application/x-www-f..
Hardware Architecture - Single Processor
·
CS/Computer Architecture
Von Neumann Architecture 폰 노이만 구조거의 모든 컴퓨터의 기본이 되는 구조Idea연산제어저장세 가지의 핵심 기능이 필요함 연산 & 제어 → CPU저장 → memory장치 간 데이터 및 신호 교환 → bus CPU 중앙 처리 장치ALU (산술 논리 장치) : 산술 및 논리 연산을 실행함Control Unit : CPU를 제어하는 제어장치Register (레지스터) : CPU에 필요한 데이터를 저장함 - Program counter 등이 포함되어 있음등으로 이루어짐 Memory 기억장치주기억장치 (Ram) : 프로그램 실행과정에서 필요한 데이터들을 임시로 저장하기 위해 사용보조기억장치 (HDD, SSD) : 운영 체제, 프로그램 등과 같은 데이터를 장기간 보관하고자 할 때 사용 Bus ..
Graph (Subgraphs, Unions, Isomorphism, Path)
·
CS/Data Structure
Subgraphs그래프의 일부 Defintion Let G = (V,E) and H = (W,F) be graphs. H is said to be a subgraph of G, if \(W\subseteq V\) and \(F\subseteq E\)G와 H가 모두 그래프이고, W가 V의 부분집합, F가 E의 부분 집합일 때 subgraph라고 한다 Q.How many \(Q_2\) subgraphs does \(Q_3\) have?A. 같다의 약한 개념에서는 6, 강한 개념에서는 1개이다노드에 번호를 부여하였을 때, 노드의 번호가 다르다면, 다른 그래프이기 때문에 \(Q_2\)에 1,2,3,4라는 노드 번호와 일치해야한다. Unions강하게 같다 라는 개념을 사용하여 Q.How many \(Q_2\) s..
Graph (Undirected, Digraphs, Graph Patterns)
·
CS/Data Structure
Graph basics and definitionsVertices / nodes : 노드, 점edges : 선adjacency / incidence : 인접 - 두개의 뜻이 어떻게 다를까?Degree, in-degree, out-degree : 차수Subgraphs, unions, isomorphismAdjacency matrics (인접 행렬)Graph의 종류TreesUndirected graphs - simple graphs, Multigraphs, PseudographsDigraphs, Directed multigraphBipartiteComplete graphs, cycles, wheels, cubes, complete bipartiteIntuitive Notion 정의 A graph is a b..
Union Find
·
CS/Data Structure
합집합 찾기Minimum Spanning TreeGiven a Graph, find Subset of Edges so that a Connected Graph results with Minimum sum of edge costsWeighted (비용이 있는)그래프연결된 그래프가 주어지고 edge의 일부를 골라서 그 edge로 갔을 때 connected이고 edge의 최소 비용이면 tree ▶ tree connected Acyclic Graph (연결되어 있고 사이클이 없는 그래프) 만약 사이클이 있다면 한 edge를 버려도 됨 - 연결되어있으며 비용을 줄일 수 있기 때문임 (사이클이면 minimum이 아님) Kruskal AlgorithmKeep adding EdgeFrom smaller weights ..
Tree Traversal & Parsing
·
CS/Data Structure
tree에는 단순한 1차원 데이터가 아닌 복잡한 구조를 넣을 수도 있음 ex)수식Traversal트리 전체를 돌아다니면서 전체 구조를 파악함Traversal means to visit all nodes in some ordervisit does not mean being at a node 방문한다는 것은 노드에 있다는 것이 아니라visit means doing something at a node 어떤 작업을 한다는 것Traverse(Node *D){ if(D == NULL) return; Visit(D); Traverse(D->Left); Visit(D); Traverse(D->Right); Visit(D);} 노드 D에는 세번 위치함 → 맨 처음 방문 / 왼쪽에 갔다 오는 경우 / 오른쪽에 갔다가 오는..
Priority Queue
·
CS/Data Structure
Queue but items in it have prioritiesSimplest of Priorityno change of priority 우선순위가 바뀌지 않음highest proirity comes out first 가장 높은 우선순위가 제일 먼저 나옴 (작은 값)Possible Array ImplementationsSorting → Delete는 빠르지만, insert의 경우 들어오면 하나씩 밀어줘야함Unsorting → insert는 빠르지만, delete할 때 우선순위를 찾아야함Binary Tree ImplementationFind Minimum in the Trees : go down left until you cannot 맨 왼쪽 아래가 첫번째 우선순위임* AVL, 2-3, 2-3-4 or..
AVL Tree Variation(2-3 Tree, 2-3-4 Tree, Red-Black Tree, skip list)
·
CS/Data Structure
2-3 TreeDefinitionEach Node has 2 or 3 Children, Not allowed to have a single child모든 노드는 2개 혹은 3개의 자식 노드를 가진다. 한개의 자식 노드를 허용하지 않음All leaves at the same level 모든 leaf는 같은 레벨을 가짐. 즉, 루트에서부터 leaf까지의 거리가 항상 같음N개의 key가 있다면, O(log N)이다 ex) 만약, 다 자식 노드가 2개씩 있다면, 높이가 3일때 \(2^3 -1\)개       자식노드가 3개씩 있다면 최대 \(\frac{3^3-1}{3-1}\)2 트리일 때는 안됐던 (AVL) 모든 트리의 높이가 똑같이 유지할 수 있도록 할 수 있음2 트리일 때는 1차이까지는 허용하여 주어야 하는..
AVL Tree
·
CS/Data Structure
BST : 최악의 경우는 여전히 좋지 않음 -> AVL Tree로 이를 해결하고자 함같은 데이터를 가지고 있어도 다른 모양의 트리가 나올 수 있음오른쪽 경우가 생기는 것을 막아보자AVL Tree IdeaRoot가 어떤 수인지에 따라서, 왼쪽과 오른쪽의 균형이 맞지 않을 수 있음 양쪽의 노드의 개수가 비슷한 것을 선호 : 균형잡힌 트리→ :  균형 잡힌 트리를 만들기 위해 root의 숫자를 바꿔주고, 트리의 모양을 바꿔줌Root 뿐만 아니라 서브 트리의 root에서도 보정이 일어날 수 있음 AVL Tree Definition기본 BST 정의에 추가되는 것 Each Node has Two Labels : L & R - 각각의 서브트리의 높이Condition : |L - R| → 모든 노드에서 양쪽 서브트리..