😱 삽질 이슈 기록
-
redis 백업의 과정😱 삽질 이슈 기록 2023. 4. 9.
문제 상황 로그 이전에 관한 Job 정보들을 생성해 redis에 적재한 후, 테스트로 Job 단위로 작업을 수행 하던 중, 실수로 Redis 컨테이너를 중지 시켜버리는 문제가 발생 했고, 일부 Job 정보의 변경사항을 날리게 되었다. 만약 테스트를 처음부터 실행하려고 한다면 작업 실행 정보를 다시 redis에 적재하는 초기화 작업을 수행해야 하는 상황이였다. 작업에 대한 정보를 생성하는 작업의 경우 시간이 소요되는 작업이였기 때문에 적재를 하기 때문에 이 작업 부터 다시 시작하는건 비효율 적인 상황 이였다. 해결 다행히 작업 시작 전 혹시 작업을 처음부터 다시 돌려야 하는 상황이 생긴다면, redis에 작업 정보들을 적재하는 작업부터 다시 하지 않도록 적재된 모든 작업 정보의 초기 상태를 백업 해 두었다..
-
운영중인 앱들의 요청 라우팅 하기 - AWS Route 53, Nginx😱 삽질 이슈 기록 2023. 3. 7.
문제 상황 지난 달에는 회사에서 SPOF로 작용했 던, 앱 사용자 로그를 수집 및 처리하는 레거시 로그 서버를 AWS 클라우드 환경으로 분리 이전 하는 작업을 진행했다. 그러면서 현재 서비스 중인 50종의 앱들에서 이제는 레거시 로그 서버가 아닌 새로운 신규 로그 서버로 로그를 보내주도록 하는 작업이 필요하게 되었다. 먼저 생각 해 본 방식은 앱 자체를 업데이트 해서 새로운 리시버 서버로 로그를 보내도록 업데이트 하는 방법이였다. 이렇게 하려면, 앱에 적용되어있는 로그 리시버 서버 URL을 새로운 URL로 바꾸어 주어야 했는데, 현재 서비스 중인 앱의 종류가 50종이 넘는 상황이여서 그 앱들을 모두를 업데이트 하기 쉽지 않은 상황이였다. 또한 앱 자체를 업데이트를 한다고 해도 유저가 스토어에서 앱을 업데..
-
MySQL 8.x 설치 후 Sequal Pro 접속 시 Authentication plugin 'caching_sha2_password' cannot be loaded 에러 해결😱 삽질 이슈 기록 2023. 2. 17.
🤔문제 상황 로컬에 mysql DB를 설치 후 Sequal Pro로 접속 시도시 Authentication plugin 'caching_sha2_password' cannot be loaded 에러가 발생. 😱 원인 mysql 8.0 버전 부터 기본 인증방식이 Native Authentication 방식에서 Caching SHA-2 Authentication 방식으로 바뀌었다. Caching SHA-2 Authentication 방식은 기존 Native 방식과 달리 SSL/TLS 또는 RSA 키페어를 필요로 하기 때문에 기존 5.7 까지의 연결방식과 다른 방식으로 접근해야 한다. Real MySQL 8.0 책을 읽으면서 정리 한 글 Real MySQL 8.0 3장 - 사용자 및 권한 1. 사용자 식별 M..
-
Next.js CPU 사용량 및 메모리 튀는 현상 개선 (feat. Clinic.js)😱 삽질 이슈 기록 2023. 1. 26.
문제 상황 회사 홈페이지 개편작업을 하면서 프론트엔드 프레임워크로 사용중인 Next.js로 이미지 썸네일이 보여지는 페이지에 요청이 들어올때 마다 CPU 사용량이 거의 100% 메모리도 비정상적으로 튀는 문제가 발생하였다. CPU 사용량이 튈 경우 서버에 높은 부하(CPU Load)가 걸리고 있다는 신호일 수 있다. 그리고 Node.js의 "이벤트 루프 delay 현상"이 뒤따를 수 있다. 이는 동시에 많은 요청이 발생할 경우 CPU 바운드 작업을 실행하는 동안 다른 요청을 처리하지 못하기 때문에 병목현상이 발생할 수 있다. 원인 분석 최근 인프랩 밋업을 통해 알게된 Node.js 프로파일링 도구인 Clinic.js를 사용해 요청이 들어올때, 정확히 어느 부분에서 CPU 사용량이 튀는지 분석을 진행했다...
-
LEFT (OUTER) JOIN 할때 결과 중복 이슈😱 삽질 이슈 기록 2022. 11. 11.
문제 상황 매출 대시보드 작업 중 매출액이 2배 이상 으로 높게 잡히는 문제가 발생했다! 처음에는 매출데이터를 여러번 집어넣게 된 것은 아닌지 의심을 했다. 팀원 분들 도 여러 의견을 주셨는데, 매출데이터를 넣기전에 해당 날짜의 매출데이터가 이미 저장되어있는지 한번 확인을 하는데 호출이 여러번 되면서 동시성 문제가 생기게 되어 중복 체크가 제대로 되지 않은 것은 아닌지 등 여러 의견을 주셨다. 하루에 한번 업로드 하기 때문에 매출 데이터 업로드 로그를 확인해보았는데, 절대로 여러번 업로드가 일어나지 않았고, 실제 업로드 된 데이터도 발생 데이터 갯수 만큼 잘 업로드가 되어있었다. 원본 데이터는 제대로인데 어째서 계산 결과가 엄청 뛰게 된걸까? 원인 분석 매출데이터를 한번 조인 해서 뷰테이블을 만든 후 그..
-
[JS] undefined 참조 에러 체크의 중요성😱 삽질 이슈 기록 2022. 11. 2.
문제 상황 코드의 undefined 참조 에러 체크가 안되어 있어서 예기치 못한 에러가 난 상황이 있었다. 비슷한 로직으로 코드를 다시 구성을 해보았다. import UAParser from 'ua-parser-js'; . . . const isUnsupportedBrowser = (ua) => { const { name, version } = new UAParser(ua).getBrowser(); const versionNum = parseInt(version.split('.')[0], 10); if (name === 'IE') { // IE 일경우 처리... } else if (name === 'Samsung Browser') { // Samsung Browser 일경우 처리... } else if ..
-
Elastic cloud : Kibana Reports CSV 파일 다운로드 용량 늘리기😱 삽질 이슈 기록 2022. 11. 2.
Elastic cloud 서비스를 운영할 때 키바나 Discover에서 조회한 결과 데이터를 다운받고 싶을 경우가 생길 수 있다. 그런데 다운로드 받을 수 있는 csv 파일에 용량 제한이 있었다. 아래 이미지에서 보듯이 report가 기본 설정 값인 10MB 가 넘어가면 Max size reached 라는 경고가 뜨면서 report를 정해진 용량 대로 맞추어 짤라 버린다. 해당 설정을 늘려 본 경험을 기록하면 Edit user settings을 클릭 하면 아래와 같이 kibana.yml을 덮어서 수정 할 수 있는 창이 열린다. 해당 설정 창에 xpack.reporting.csv.maxSizeBytes 설정 항목이 키바나에서 reporting 용량을 조절 할 수 있는 옵션인데 현재 사용중인 ES 버전인 7..