Development110 Connection Pool의 min 값이 프로세스 종료를 방해했던 이슈 정리 서론 min 값이 방해했던 이슈는 맞지만, 원인파악의 과정을 정리하기 위함에 가깝습니다. 근본적인 원인은 아님을 참고부탁드립니다. 환경 일정 주기마다 특정 스크립트가 실행되는 스케줄링 서버 쉘 스크립트를 통해 빌드된 코드를 실행하는 구조 비동기로 동작하는 로직이 존재 문제상황 특정 시점부터 모니터링 툴에 SequelizeConnctionAcquireTimeoutError가 발생했다는 알림이 오기 시작했습니다. 서버에서 해당 스크립트의 프로세스가 정상 종료되지 않아 다수의 좀비 프로세스가 남아있어 메모리를 점유하는 문제가 발생했습니다. 실행 로그를 파일로 남기고 있어, 로컬에서 스크립트를 실행했을 때 프로세스의 종료여부를 확인하지 못했습니다. SequelizeConnectionAcquireTimeoutEr.. 2024. 2. 7. 개발 관련 포스팅 정리 현재 운영중인 개발 포스팅 공유 오픈채팅방의 링크 모아보기용 노션 페이지 입니다. Article A new tool for teams & individuals that blends everyday work apps into one. fullth.notion.site 2023. 8. 3. SQL) 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr *본문에서 테이블에 대한 정보는 생략하도록 하겠습니다. *MySQL로 작성하였습니다. 조건 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 .. 2023. 5. 18. Express + TypeScript Boilerplate TL;DR아래 링크의 깃 레포로 들어가서 Repo Clone.npm i 명령어 실행npm run dev 실행해서 서버 실행 테스트.Git Repositoryhttps://github.com/fullth/express-typescript-boilerplate결과설치 방법은 Git Repository의 ReadMe.md를 참고하시면 됩니다.작성한 설치방법에 대한 결과만 해당 게시물에 첨부하도록 하겠습니다.최종 작성된 프로젝트 구조입니다. (repo에 push 하기 위해 .gitignore 파일만 추가되었습니다.)정상적으로 서버가 실행되면 http://localhost:3000로 접속 시 위와 같은 문구가 표시됩니다.Refhttps://blog.logrocket.com/how-to-set-up-node-typ.. 2023. 3. 28. 웹스톰에서 터미널 zsh로 변경하기 TL;DR (Mac) Command + , 단축키로 설정창 접근 Tools -> Terminal -> Shell path를 zsh로 변경 설명 Mac의 Terminal 기본 설정은 /bin/bash로 되어 있습니다. zsh로 설정해주면, Mac에 oh-my-zsh로 커스텀한 터미널로 위와 같이 git branch를 terminal에서 볼 수 있습니다. 2023. 3. 27. DBMS의 스케줄러 vs 스케줄러 서버 구성 문제 상황 일정 주기마다 특정 데이터의 삭제가 필요한 요구사항. Scheduler 서버가 별도로 분리되어 있지 않음. 해당 로직이 관리되고 있는 서버에 문제 발생 시 Scheduler의 기능들도 동작하지 않을 것. 점점 Scheduler 코드들의 중요도와 타 서비스의 의존도가 높아지고 있는 상황. 처리 DB의 Scheduler를 이용하면 성능면에서 우수할 수 있지만, 성능을 고려할만큼의 쿼리가 아니라고 판단. 다른 개발자가 DB를 까지 않으면 해당 로직에 대한 존재 유무를 알 수 없기 때문에 유지보수 측면에서 Server 로직에 작성하는 것이 맞다고 판단하였음. 정리 별도의 Scheduler 서버로 분리하는 것이 먼저라고 생각되었지만, 우선순위에서 계속 밀리다가 결국에는 문제가 발생할 시점이 다가와서야 .. 2023. 3. 13. [Docker] 사용자 권한에러 MySQL : Access denied for user 'root'@'172.17.0.1' 환경 NestJS + (Docker) MySQL8 + TypeORM 에러 내용 [Nest] 13641 - 2022. 10. 10. 오후 1:15:23 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)... Error: Access denied for user 'root'@'172.17.0.1' (using password: YES) 상황 TypeORM과 MySQL 연동 중 접근이 거부됨. 해결방법 -- user 필요할 경우 생성한 후 권한 주면 됨. mysql> CREATE USER 'username'@'172.17.0.1' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON . .. 2023. 3. 13. [ETC] Mac / Window 사용중인 포트 종료 Mac에서의 port 종료 아래 명령어를 입력하면 COMMAND, PID, ...와 같은 목록들이 출력됩니다. 조회된 PID를 ${processId}에 입력하시면 됩니다. (현재 접속한 계정의 권한에 따라 sudo 명령어가 필요할 수 있습니다.) lsof -i :${port} ex.) lsof -i :3000 kill ${processId} ex.) kill 48513 Window에서의 port 종료 Mac과 명령어는 다르지만 마찬가지로 port 번호에 대한 PID를 조회한 후, 해당 PID를 종료시키면 됩니다. netstat -ano | findstr ${port} ex.) netstat -ano | findstr 3000 taskkill /f /pid ${processId} ex.) taskkill .. 2023. 3. 13. [Node.js] Node.js 프로파일링 Ref이 글은 인프런 퇴근길 밋업 중 김경덕 님의 발표 내용을 정리한 내용입니다.해당 발표는 인프런에서 발표 자료를 제공하고 있으니, 원문을 참고하시는 것을 추천드립니다.서론Node.js는 싱글 스레드인 이벤트 루프로 이벤트들을 처리하며 비동기 API를 사용함.Node.js의 전체 런타임에서 스레드가 하나인 것은 아님. (worker_threads)만약 Event loop에서 CPU-intensive한 작업을 하면 어떻게 될지와 이를 분석하는 툴을 소개하는 것이 발표 주제.CPU-intensiveCPU 연산을 많이 요구해서 오래 CPU를 점유하는 작업.발표자는 호출 시 20초 간 이벤트 루프를 점유하는 함수를 작성하여 호출하였음.테스트를 통해 다른 해당 점유로 인하여 다른 request 들이 처리 안되는.. 2023. 3. 13. 이전 1 2 3 4 5 6 7 8 ··· 13 다음