개요 요즘 많은 서비스에서 Google Authenticator와 같은 인증 앱으로 OTP 번호를 만들고 입력하면 인증되는 기능을 보셨을겁니다. 이런 인증 방식이 보안에 좋은것 같아서 하이스코어에도 적용해보려고 하는데, 그 전에 어떤 기술인지 공부해 보고자 글을 작성하게 되었습니다. MFA? MFA는 Multi-Factor Authenticat...
지난번에 HTTP와 HTTPS에 대해 알아봤는데, HTTP 버전별 차이가 궁금해서 정리하게 되었습니다. HTTP/0.9 HTTP의 가장 초기 버전으로, 1991년에 고안되었습니다. 가장 초기에 고안된 버전인 만큼 구조도 가장 단순했습니다. 요청 메소드도 GET 하나였고, 응답은 무조건 HTML 파일이었습니다. 응답 코드, 헤더와 같은 부가 정...
SVM (Support Vector Machine) 출처: https://commons.wikimedia.org/wiki/File:SVM_margin.png SVM은 머신러닝 알고리즘 중 하나로, 데이터 집합이 주어졌을때 새로운 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류 모델입니다. SVM은 데이터 집합 사이에서 가장 넓은 마진(...
재귀함수가 스택 메모리를 사용한다는 글을 보고, 정확한 메모리 구조를 알아보기 위해 작성했습니다. 프로세스 메모리 프로세스 메모리(Process Memory) 구조는 OS가 프로그램을 실행하기 위해 메모리(RAM)에 할당하는 구조를 뜻합니다. OS는 효율적인 메모리 관리를 위해서 프로세스 실행시 코드, 데이터, 힙, 스택 4가지 영역으로 나눠...
Tree? 트리는 데이터를 계층적으로 표현하는 자료구조 입니다. 생긴게 나무를 뒤집어 놓은것 같이 생겨서 트리라는 이름이 붙여졌습니다. 용어 정리 우선 트리에서 쓰이는 용어 먼저 정리하겠습니다. 노드(Node): 트리를 구성하는 기본 요소입니다. 루트(Root): 부모 노드가 존재하지 않는 트리의 시작점 입니다. 부모(Pare...
다양한 정렬 알고리즘을 정리하기 위해 작성했습니다. 거픔정렬 (Bubble Sort) 거품정렬은 인접한 두 수의 크기를 비교하고, 조건에 맞지 않다면 자리를 버꾸며 정렬하는 알고리즘 입니다. 정렬 과정 (오름차순) for i in range(n): for j in range(1, n - i): if data[j - 1] &g...
Heap? 힙은 최대/최소 값을 빠르게 찾기 위해 고안된 완전 이진 트리입니다. 부모 노드가 자식 노드보다 항상 크거나(Max Heap) 작게(Min Heap) 만들어 루트 노드가 원하는 값이 되도록 만듭니다. 힙은 우선순위 큐, 힙정렬과 같이 다양한 곳에서 사용되는 자료구조 입니다. 힙 특징 힙은 반드시 완전이진트리 입니다. 최...
개요 MVC 패턴에 익숙해져 있는데, 요즘 MVVM 패턴이 많이 사용되는것 같아서 정리하게 되었습니다. MVC (Model-View-Controller) MVC 패턴은 Model, View, Controller을 나눠 개발하는 디자인 패턴입니다. Django, Spring 등 다양한 프레임워크에서 널리 사용되었습니다. Model 어플리...
개요 하이스코어 프로젝트에서 OCI로 서버를 구축하고 사용중인데, 자주 보게되는 용어들을 정확히 알 필요성을 느껴서 정리하게 되었습니다. IP (아이피) ip는 인터넷에 연결된 모든 장치에 할당되는 고유 식별 장치입니다. 비유하자면 일종의 도로명 주소같은 개념입니다. 공용(Public) IP, 개인(Private) IP IP는 사용 범위에 따라 ...
개요 HTTP와 HTTPS는 인터넷을 사용한다면 항상 주소 맨 앞에 붙는 단어로 많이 보게됩니다. 그런데 한번도 정확히 정리해보지 않아서 개념을 찾아보고 정리하게 되었습니다. HTTP (Hyper Text Transfer Protocool) HTTP는 클라이언트와 서버가 데이터를 주고받기 위한 프로토콜입니다. OSI L7에 해당하며, 80번 포트...
새 버전의 콘텐츠를 사용할 수 있습니다.