develop/Sprint

·develop/Sprint
1-1. 힙(Heap)힙은 데이터에서 최대값과 최솟값을 빠르게 찾기 위해 고안된 완전 이진트리(Complete Binary Tree)이다.max - heap과 min - heap 두 가지 타입이 있다.최댓값이 맨 위인 힙을 max - heap, 최솟값이 맨 위인 힙을 min - heap 이라고 한다.BST(이진 탐색 트리)와 다르다 => 좌, 우 자식의 대소 관계를 반영하지 않는다 => 층(Level)으로 대소 관계를 구분한다1-2. 힙(Heap) 규칙큐에는FIFO, 스택은 FILO의 규칙이 있듯 힙(Heap)에도 규칙이 있다.Heap Rule: 힙은 항상 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있어야 한다.따라서, 원소를 추가하거나 삭제할때도 위의 규칙이 지켜져야 한다.1-3. 배열로 나타낸..
·develop/Sprint
보통 서버에서 클라이언트 인증을 확인하는 방법으로는 대표적으로 쿠키, 세션 토큰 3가지 방식이 존재합니다.1. 쿠키인증쿠키는 key - value 형식의 문자열 덩어리 입니다.클라이언트가 어떤 웹사이트를 방문할 경우, 그 사이트가 이용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일 입니다. 쿠키가 있으면 웹사이트에서 사용자의 방문에 관한 정보를 기억하여 다음번에 사이트에 방문했을 때 번거로운 작업을 피하고 더 유용하게 사이트를 활용할 수 있습니다.2. 세션인증하지만 쿠키방식의 보안적인 이슈로 인해 세션방식은 유저의 로그인정보 등 민감한 인증 정보를 브라우저가 아닌 서버에서 관리합니다. 하지만 이러한 세션방식도 해커가 세션ID를 탈취하여 클라이언트인척 위장할 수 있다는 한계가 ..
·develop/Sprint
1. 검색엔진 최적화 SEO란?SEOsms "Search Engine Optimization"의 약자로, 한국어로 해석하면 "검색 엔진 최적화"라는 뜻을 품고 있습니다. 이는 웹페이지나 웹사이트를 알맞는 키워드로 노출시켜 사용자들이 원하는 사이트를 더 잘 찾을 수 있도록 최적화 하는 과정을 의미합니다.1-1. SEO가 중요한 이유웹사이트 사용자의 관점에서 이야기해보면 우리는 궁금한게 생가면 구글창 혹은 네이버를 열고 원하는 키워드를 입력하여 검색을 진행합니다. 이때, 대부분의 사람들은 상위에 노출되어 있는 페이지를 먼저 열람하게 되는데 여기에서 상위 노출도를 높이는 요소가 바로 SEO입니다. 조금 더 쉽게 설명드리면 네이버나 구글 같은 검색 엔진이 쉽게 이해할 수 있는 형태로 웹페이지를 구성하여 더욱 대..
·develop/Sprint
typeScript1. typeScript란 무엇이며 왜 사용할까1-1. typeScript란 MS에 의해 개발되어 관리되고 있는 오픈소스 프로그래밍 언어입니다.기존에 많이 사용되어 오던 자바스크립트는 java 계열의 문법을 차용하면서도 type이나 class 같이 복잡성을 야기하는 부분들을 제거함으로써 문법이 단순하고 유연한 체계를 가질 수 있었지만, 대규모 협업에서는 종종 일어나는 형변환 문제와 존재하지 않는 프로퍼티의 접근 허용 등 계속해서 일어나는 문제점들과 사용의 한계로 인해 기존의 아쉬웠던 점들을 보완하여 나온 언어가 typeScript 입니다.1-2. typeScript를 사용하는 가장 큰 이유중 하나는 정적 타입을 지원한다는것 입니다.변수나 반환값의 타입을 지정하지 않는 기존 방식인 자바스..
·develop/Sprint
1. Tree1-1. Tree란단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무와 닮아 있다고 해서 트리구조 라고 부른다.데이터를 순차적으로 나열시킨 선형 구조가 아니라, 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조로, 아래로만 뻗어 나가기 때문에 싸이클이 없다.즉, 싸이클이 없는 하나의 연결 그래프라고 할 수 있다.1-2. 용어 설명노드(Node): 트리 구조를 이루는 모든 개별 데이터루트(Root): 트리 구조의 시작점이 되는 노드부모 노드(Parent node): 두 노드가 상하관계로 연결되어 있을 때, 상대적으로 루트에서 가까운 노드자식 노드(Child node): 두 노드가 상하관계로 연결되어 있을 때, 상대적으로 루트에서 멀리있는 노드리프..
·develop/Sprint
해싱 (Hashing)해싱이랑 임의의 길이의 값을 해시함수(Hash Function)를 사용하여 고정된 크기의 값으로 변환하는 작업을 말한다.해시 테이블 (Hash Table)key와 value가 쌍을 이룬 형태로 데이터가 저장되어 있는 자료구조형이다.배열에서의 key는 오직 index만 지칭한다면, Hash Table에서는 문자열 또한 key가 될 수 있다.기존 자료구조인 이진탐색트리나 배열에 비해 굉장히 빠른 속도이다.중복확인, 빠른탐색, 삽입, 삭제 속도를 가진다.속성insert(A) : key A를 해쉬테이블에 넣는다.search(A) : Key A를 해쉬테이블에서 찾는다.remove(A) : Key A를 해쉬테이블에서 삭제한다.사용 예시전화번호 조회중복된 항목 방지해시 테이블을 캐시로 사용하기어..
·develop/Sprint
큐(Queue) 란?큐는 스택(Stack)과 함께 언급될 정도로 매우 유명하면서도 기초적인 자료구조이다.큐는 FIFO(First In First Out)원칙 하에서 운용되는 자료구조이다. 즉 가장 먼저 들어온 데이터가 가장 먼저 빠져나가야 하는 구조이며, 이는 스택과는 상반된 순서를 가진다.하지만 자바스크립트의 경우 당연히 큐와 관련된 객체가 내장되어 있지 않다. 따라서 큐를 이용하기 위해서는 직접 자료구조를 작성해야 할 필요가 있다.큐(Queue)First in, First out 원칙으로 만들어진 자료구조로 먼저 들어온 데이터가 먼저 나간다.자바스크립트 엔진에서 비동기 함수 실행시 콜백들이 대기열로 들어오는 Task queue가 대표적 예이다.데이터를 집어넣는 enqueue, 데이터를 추출하는 deq..
·develop/Sprint
스택(Stack)과 큐(Queue)는 프로그래밍이라는 개념이 탄생할 때 부터 있었던 가장 고전적인 자료구조 중 하나이다.하지만 이 두 자료는 자바스크립트(JavaScript)에 내장되어 있지 않지만, 배열(Array)과 내장함수들을 사용하여 스택(Stack)과 큐(Queue)를 흉내낼 수는 있다.대부분의 알고리즘 문제를 풀어야 할 경우 배열을 이용하더라도 통과하는 편이지만, 시간복잡도를 매우 세세하게 관리하거나 데이터의 양이 매우 큰 경우에는 이와 같은 방법으로는 통과할 수 없는 경우가 존재하기도 한다.스택 (Stack)스택은 자료구조형에 속한다.먼저 들어간 자료가 나중에 나오는 후입선출 자료구조로 LIFO(Last In First Out) 라고도 부른다.데이터를 입력하는 push()와 데이터를 제거하는..
온몸비틀기
'develop/Sprint' 카테고리의 글 목록