K1A2 blog
취소

[하이스코어] API와 DB 서버 분리 및 DB 모니터링 구축

개요 기존에 구축된 인프라는 장기적으로는 좋지 않다고 판단하여 몇가지 작업을 진행했습니다. API서버와 DB의 분리, DB 인스턴스 숨기기, DB 모니터링 구축, DB 자동 백업 구축 순서로 진행했는데, 각 변경점에 대해 기록해보려고 합니다. 기존 인프라 우선 기존 인프라가 어떤지 보고, 어떤 문제가 있는지 분석해 보겠습니다. 한눈에 보기...

[하이스코어] ELK를 버리고 PLG로 이주하기

개요 얼마전에 로깅시스템을 변경했습니다. 기존에는 ELK(Elasticsearch, Logstash, Kibana)를 사용했었는데, 현재는 PLG(Promtail, Loki, Grafana)로 변경했습니다. PLG 스택이 뭔지, 바꾼 이유와 ELK와 비교해서 어떤지 적어보고자 합니다. PLG Stack? ELK 스택은 들어봤어도 PLG 스택은...

[MFA] MFA와 TOTP

개요 요즘 많은 서비스에서 Google Authenticator와 같은 인증 앱으로 OTP 번호를 만들고 입력하면 인증되는 기능을 보셨을겁니다. 이런 인증 방식이 보안에 좋은것 같아서 하이스코어에도 적용해보려고 하는데, 그 전에 어떤 기술인지 공부해 보고자 글을 작성하게 되었습니다. MFA? MFA는 Multi-Factor Authenticat...

[Network] HTTP 버전별 차이

지난번에 HTTP와 HTTPS에 대해 알아봤는데, HTTP 버전별 차이가 궁금해서 정리하게 되었습니다. HTTP/0.9 HTTP의 가장 초기 버전으로, 1991년에 고안되었습니다. 가장 초기에 고안된 버전인 만큼 구조도 가장 단순했습니다. 요청 메소드도 GET 하나였고, 응답은 무조건 HTML 파일이었습니다. 응답 코드, 헤더와 같은 부가 정...

[ML] SVM (Support Vector Machine)

SVM (Support Vector Machine) 출처: https://commons.wikimedia.org/wiki/File:SVM_margin.png SVM은 머신러닝 알고리즘 중 하나로, 데이터 집합이 주어졌을때 새로운 데이터가 어느 카테고리에 속할지 판단하는 이진 선형 분류 모델입니다. SVM은 데이터 집합 사이에서 가장 넓은 마진(...

[OS] 프로세스 메모리 구조

재귀함수가 스택 메모리를 사용한다는 글을 보고, 정확한 메모리 구조를 알아보기 위해 작성했습니다. 프로세스 메모리 프로세스 메모리(Process Memory) 구조는 OS가 프로그램을 실행하기 위해 메모리(RAM)에 할당하는 구조를 뜻합니다. OS는 효율적인 메모리 관리를 위해서 프로세스 실행시 코드, 데이터, 힙, 스택 4가지 영역으로 나눠...

[자료구조] C로 Tree 만들기

Tree? 트리는 데이터를 계층적으로 표현하는 자료구조 입니다. 생긴게 나무를 뒤집어 놓은것 같이 생겨서 트리라는 이름이 붙여졌습니다. 용어 정리 우선 트리에서 쓰이는 용어 먼저 정리하겠습니다. 노드(Node): 트리를 구성하는 기본 요소입니다. 루트(Root): 부모 노드가 존재하지 않는 트리의 시작점 입니다. 부모(Pare...

[Algorithm] 정렬 알고리즘 알아보기

다양한 정렬 알고리즘을 정리하기 위해 작성했습니다. 거픔정렬 (Bubble Sort) 거품정렬은 인접한 두 수의 크기를 비교하고, 조건에 맞지 않다면 자리를 버꾸며 정렬하는 알고리즘 입니다. 정렬 과정 (오름차순) for i in range(n): for j in range(1, n - i): if data[j - 1] &g...

[자료구조] C로 Heap 만들기

Heap? 힙은 최대/최소 값을 빠르게 찾기 위해 고안된 완전 이진 트리입니다. 부모 노드가 자식 노드보다 항상 크거나(Max Heap) 작게(Min Heap) 만들어 루트 노드가 원하는 값이 되도록 만듭니다. 힙은 우선순위 큐, 힙정렬과 같이 다양한 곳에서 사용되는 자료구조 입니다. 힙 특징 힙은 반드시 완전이진트리 입니다. 최...

[Desing Pattern] MVC와 MVVM

개요 MVC 패턴에 익숙해져 있는데, 요즘 MVVM 패턴이 많이 사용되는것 같아서 정리하게 되었습니다. MVC (Model-View-Controller) MVC 패턴은 Model, View, Controller을 나눠 개발하는 디자인 패턴입니다. Django, Spring 등 다양한 프레임워크에서 널리 사용되었습니다. Model 어플리...