분류 전체보기

mariabackup으로 데이터 백업하기 에 이어서 데이터를 복구하는 방법에 대해 알아보려 해요.MariaDB 10.6.5 버전 기준으로 내용을 작성했습니다. 좀 더 구체적으로 설명하기 위해서 장애 상황을 가정해볼께요.   헐.. 실수로 운영 테이블을 삭제해버렸다..!!!!!    2022-01-29 새벽 06시에 mariabackup 으로 MariaDB 의 데이터를 FullBackup 을 했어요. 그리고 서비스를 운영하다가 오후 20:00 에 실수로 운영 테이블을 삭제해버리는 일이 발생했어요. 이는 서비스 장애로 이어졌고, 현재 서비스 접속이 안되는 상황이예요. 장애를 해결하기 위해서 20:00 시점으로 데이터를 복구해보도록 할께요.   - DB의 데이터가 쌓이는 datadir 는 /db/mysql 이..
데이터베이스에서 데이터를 백업하는 방법은 크게 ' 논리적 백업 ', ' 물리적 백업 ' 두 가지로 나눠볼 수 있어요.(MariaDB 10.6.5 버전 기준으로 내용을 작성했습니다.)  논리적 백업 Query 형태로 데이터베이스 또는 테이블을 백업하는 방식이예요. mariadb-dump 유틸리티를 사용해서 백업을 진행해요.(mysqldump 와 사용방법이 동일합니다.) 백업한 결과 파일을 열어보면 Query 내용을 확인할 수 있어요.  물리적 백업 데이터베이스에서 사용하는 파일 자체를 통째로 백업하는 방식이예요. mariabackup 유틸리티를 사용해서 백업을 진행해요. 쉽게 생각해서 데이터 파일을 Copy & Paste 한다고 보시면 될 것 같아요.   이 글에서 알아볼 백업은 mariabackup 을 ..
· Java
'Levenshtein Distance 알고리즘'과 '한글 초성, 중성, 종성 분리'에 대해서 다뤘었는데요. 이 두 내용을 결합해서 Levenshtein Distance 알고리즘에서 한글을 사용할 수 있게 변경해보려해요. 우선 Levenshtein Distance 에서 한글을 썼을 때 문제가 되는 부분은 '수정(modify)' 연산인데요. 영어 알파벳과 달리 한글은 초성, 중성, 종성으로 이루어져있기 때문이예요. '햇볕' -> '해변' 으로 수정하는 비용과 '태양' -> '기차' 로 수정하는 비용을 서로 다르게 보는거죠. 그래서 기존 Levenshtein Distance 알고리즘의 수정연산에서 한글 글자를 초성, 중성, 종성으로 분리해서 얼만큼 바꿔야하는지 비용을 계산하는 부분이 새로 추가된다고 보시면 ..
· Java
개발하면서 한글 문자를 초성, 중성, 종성으로 분리해야할 필요가 생겼는데요. 구글링하면서 알게된 내용을 정리해보려해요. 우선 한글은 유니코드라는 글로벌하게 약속된 체계에 의해 고유한 식별값이 부여되어 있는데요. '가' 라는 글자는 44032 이고, '힣' 이라는 글자는 55203 으로 할당되어 있어요. 그런데 이 식별값이 그냥 부여된 게 아니라는 것이 중요한 포인트입니다. 바로 완전한글 결합공식 에 의해 생성된 식별값이였던거죠!!!  (초성 인덱스 * 21 + 중성 인덱스) * 28 + 종성 인덱스 + 0xAC00  0xAC00(44032) 은 유니코드 체계에서 한글이 시작되는 지점으로 '가' 를 나타내요. 위 공식에 쓰이는 초성, 중성, 종성 배열은 아래와 같아요. 초성 배열(19개)"ㄱ", "ㄲ", ..
Levenshtein Distance 는 두 문자열간의 형태적 유사도를 계산하는 알고리즘이예요. 별명은 Edit Distance 로 편집 거리 알고리즘이라고도 불려요. 소련의 수학자인 Vladimir Levenshtein 이 1965년도에 고안한 알고리즘이라고 합니다. https://en.wikipedia.org/wiki/Levenshtein_distance Levenshtein distance - WikipediaFrom Wikipedia, the free encyclopedia Jump to navigation Jump to search Computer science metric for string similarity In information theory, linguistics, and comput..
· Diary
1. 업무  1) 성형앱 플랫폼 검색엔진 개발(23.12.13 ~ 24.01.12, 1개월)회사에 이직하고 처음 맡게된 프로젝트였는데 검색엔진쪽을 개발하시던 분이 급히 다른 프로젝트로 옮겨야하는 상황때문에 내가 그 분의 업무를 이어받아 개발하게 되었다. 검색엔진은 엘라스틱 서치(ElasticSearch)를 사용하고 있었고, 쿠버네티스에 ELK(ElasticSearch - LogStash - Kibana) 스택을 구축하여 개발하고 있었다. 그래서 나는 ELK 구축을 해보지는 못했고, SpringBoot에서 ElasticSearch 라이브러리를 이용하여 데이터를 검색하는 로직을 개발했다. 이번 프로젝트에서는 이미 구축된 환경에서 개발했지만 다음 프로젝트에서는 ELK 스택을 직접 구축해보고 싶다.   2) T..
· Kubernetes
1. 정규표현식 경로 라우팅 에러 현상쿠버네티스 클러스터에 API를 디플로이먼트로 배포하고 포스트맨에서 URL 호출 테스트를 해보았다. 응답으로 Json 데이터가 내려올 것이라고 생각했지만, 실제로는 404 에러응답이 내려왔다.도커 이미지부터 인그레스까지 처음부터 다시 살펴보았지만 파드와 서비스들은 모두 정상적으로 동작하고 있었다. 그렇게 멘붕에 빠져있을 때 쿠버네티스 로그에 뭔가 있지않을까라는 생각으로 로그를 확인해봤다. 그러다가 Nginx Ingress Controller에서 문제와 관련된 아래 로그를 발견하였다.kubectl get pods -n ingress-nginxNAME READY STATUS RESTARTS ..
· Java
Java8 의 Stream 에 대해 알고는 있지만 제대로 써 본적이 없었는데 망나니 개발자님 블로그를 보다가 Stream API 연습문제 풀이 글이 있어서 문제들을 풀어보았다. 1번 문제 모음 [데이터]이름, 취미, 소개김프로, 축구:농구:야구, 구기종목 좋아요정프로, 개발:당구:축구, 개발하는데 뛰긴 싫어앙몬드, 피아노, 죠르디가 좋아요 좋아좋아너무좋아죠르디, 스포츠댄스:개발, 개발하는 죠르디 좋아박프로, 골프:야구, 운동이 좋아요정프로, 개발:축구:농구, 개발도 좋고 운동도 좋아 [문제 1]위와 같은 데이터를 조회하여 각 취미를 선호하는 인원이 몇 명인지 계산하여라.users.stream() .flatMap(user -> user.getHobbies().stream()) ..
· Kubernetes
1. 이 글을 통해 알아볼 내용금 채굴 애플리케이션으로 알아보는 Prometheus와 Grafana 연동 테스트 [1/4]쿠버네티스 클러스터 구축하기 [2/4]쿠버네티스 서비스 알아보기 [3/4]이번 글에서는 쿠버네티스 클러스터의 파드 정보가 프로메테우스를 통해 정상적으로 수집되는지와 그라파나를 통해 모니터링 제대로 되는지 확인해보도록 하겠습니다. 2. kube-prometheus-stack 설치쿠버네티스에 kube-prometheus-stack(프로메테우스 + 그라파나) 설치시 helm을 사용하기 때문에 helm을 먼저 설치해주겠습니다. helm 공식 사이트 를 참고하여 helm을 설치해줍니다.(sudo yum install -y wget)wget https://get.helm.sh/helm-v3.15..
· Kubernetes
1. 작업 정리 및 이 글을 통해 알아볼 내용금 채굴 애플리케이션으로 알아보는 Prometheus와 Grafana 연동 테스트 [1/4]쿠버네티스 클러스터 구축하기 [2/4]이번 글에서는 쿠버네티스 클러스터에 배포된 파드(pod)가 외부 클라이언트의 요청에 응답할 수 있도록 서비스를 구축하는 방법에 대해 알아보도록 하겠습니다. 먼저 서비스가 어떤 역할을 하는지부터 살펴보겠습니다.2. 서비스란쿠버네티스에서 서비스의 역할은 쉽게 말해 로드 밸런서입니다. 서비스는 여러 파드를 담당하는 반장역할을 하며 고정된 IP(Cluster IP) 를 갖습니다. 이 주소로 들어오는 통신을 처리합니다. 내부적으로 여러 파드가 있어도 밖에서는 Cluster IP 만 볼 수 있으며 이 주소로 접근하면 서비스가 통신을 적절히 분배..
_su_min
'분류 전체보기' 카테고리의 글 목록 (4 Page)