[MYSQL] 데이터베이스 털리다 - DB털이 예방하기

Intro 이제 1년 좀 넘은 토이프로젝트가 하나 있다. 와이프만 쓰라고 대충 만들었던건데 한명씩 한명씩 사용자가 늘어서 그래도 지금은 몇명이 쓰고 있고, 요구사항도 꾸준히 반영해서 처음에 비해 기능도 제법 들어갔다. 토이프로젝트라서 처음 시작할 때, 디비 비밀번호를 사용하면 안되는 아주 뻔한 암호로 만들었었는데.. 아침에 일어나 컴퓨터를 켜니 새벽 4시쯤에 Slack 알림이 와있었다. [SpringBoot] 에러 발생시 Slack으로 알림 보내기 를 적용해서 에러가 발생하면 슬랙 알림이 오게끔 적용을 해뒀었는데, 그덕에 문제가 있다는건 발견했다. 그런데 오류를 잘 보면 select 쿼리를 실패한건데. 디비 접속이 잘 안되나? 해서 로그를 살펴보니 테이블이 없단다. 위에 적힌 Request IP를 추적해..

Data/MYSQL ⁄ MariaDB 2024.02.24
Github 22 번 포트 막혔을 때 git ssh fetch/pull 하는 방법

Intro Github / Gitlab SSH 공개 키 등록하기 를 통해 ssh 키를 등록해두었다면, 암호입력이나 토큰발급등의 번거로운 작업 없이 간단하게 git remote 저장소로부터 clone을 비롯한 fetch, pull, push 등의 작업을 간편하게 할 수 있다. 그런데 카페를 간다거나 다른사람의 집에 방문하는 등 평소와 다른 환경에서 와이파이에 접속 했는데, Github 의 SSH 통신이 안먹히는 경우가 있다. 그런경우 아래와 같은 에러가 발생한다. ssh: connect to host github.com port 22: Operation timed out이걸 겪은건 설날에 가족집에 방문해서 커밋을 하는 과정이었는데 하필 인터넷이 B사 제품이었고, B사에서는 22번 포트를 막아두었기 때문에 ..

Development/DevOps 2024.02.17
Jenkins 튜토리얼 - 설치 및 실행

설치 요구사항 Jenkins를 설치하고 실행하기 위해서는 아래의 조건을 만족해야 한다. 호스트 머신이 램 최소 256 MB (권장 2 GB) 젠킨스 및 도커 이미지를 위한 여분의 저장공간 10 GB 아래의 소프트웨어 들이 설치 되어 있어야함 Java 11, 17, or 21 Docker (아직 설치가 안되어있다면 Get Docker 참고) 다운로드 https://www.jenkins.io/download/ 링크에서 젠킨스를 다운 받는다. OS에 맞춰 원하는 무엇으로 다운받아도 상관 없으나 본 튜토리얼은 .war 파일로 진행한다 실행 다운로드 받은 war 파일을 java로 실행한다. httpPort는 원하는 값을 넣으면 되는데, 8000으로 진행해보도록 한다. java -jar jenkins.war --h..

Development/DevOps 2024.02.06
[mysql] 실수로 날린 데이터 binlog로 복구하기

Intro 날렸다 테이블. 없어졌다 데이터. 다행히도 업무에 쓰던 DB는 아니다. 현재는 가까운 가족들만을 고객으로 우리들 끼리만 쓰고 있는 사이드 프로젝트인데, 개발서버랑 운영서버를 헷갈려서 데이터를 유실했다. 다행인건 매일 밤 12시에 자동으로 백업을 해왔다는 것. [MYSQL Docker] 데이터베이스 매일 자동 백업하기 사건이 발생한건 오후 8시쯤이지만, 로그를 보니 오늘 오후 7시쯤 마지막 로그가 찍혀있었다. 00시 ~ 19시 사이의 데이터를 백업해보자. 데이터 복구 바이너리 로그 파일 찾기 요즘엔 많이들 그렇겠지만, mysql을 도커로 돌고 있다. 그래서 도커 컨테이너에 관련된 내용도 조금 포함되는데, 도커를 사용하지 않다고 해도 아래 내용을 따라 진행하는데는 무리가 없을 것이다. 도커 컨테이..

Data/MYSQL ⁄ MariaDB 2024.02.05
Svelte kit 개발할때 implicitly has an any type 경고 끄기

Intro Svelte 를 ts가 아닌 js로 사용하는데 사용중인 인텔리제이에 자꾸 ts 관련 경고가 나오는데 매우 성가시다. 빨간줄로 쫙 가있다. Svelte: Parameter description implicitly has an any type. 범인은 Intellij IDEA에 설치한 Svelte 플러그인으로 추정되는데, 인텔리제이에서 Svelte 플러그인 없이 개발하긴 참 불편하다. 그렇다고 타입을 명시해주면 해결이 되는가? 입을 명시하면 Typescript 파일에서만 사용할 수 있다고 하며 다른 오류를 또 낸다. 그리고 애초에 타입을 쓸 생각도 없다. 해결 해결1 스벨트킷으로 개발할때는 .svelte-kit/tsconfig.json 파일이 자동 생성된다. 거기에 잘 찾아보면 compilerOp..

Development/Daily Error 2024.01.26