윈도우에서 nvm 설치하는 방법 (winget)
·
카테고리 없음
Mac OS에서는 brew를 통해 손쉽게 nvm을 설치할 수 있습니다.  brew install nvm  다만, 윈도우에서는 brew를 사용하기가 어려워 이를 대체하고자한다면 두 가지 방법이 있을 것 같습니다.   방법 1 https://github.com/coreybutler/nvm-windows/releases Releases · coreybutler/nvm-windowsA node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windowsgithub.com nvm windows 공식 installer를 설치하여 nvm을 설치한다.  방법 2 winget을 통하여 설치한다. https://a..
Redis Sorted Set으로 랭킹보드 구현
·
Redis
서론랭킹 보드를 구현해야 하는 요구사항이 있을 때, 이를 어떻게 효율적으로 구현할 수 있을까? 가장 단순하게는 데이터베이스에서 집계성 테이블이나 배치 과정을 통해 랭킹 정보를 가져오는 방법이 있을 것이다. 주간 또는 일간 랭킹 정보를 특정한 간격마다 배치 작업을 통해 갱신하는 방식은 비교적 낮은 DB 비용으로 처리할 수 있다.하지만, 실시간으로 변경되는 데이터를 정렬하고자 한다면 어떻게 해야 할까? 수많은 데이터가 쌓인 DB 테이블에서 쿼리를 날려 집계하는 방법이 과연 효율적일까? 다음은 특정 로그나 정보가 담긴 테이블(row size = 40,000)에서 주간 value를 합산하여 랭킹을 가져오는 쿼리의 예시다.explain analyzeSELECT user_id, nickname, SUM((log->..
AWS CDK lifecycle
·
카테고리 없음
1. 구성 (또는 초기화)코드에서 정의된 모든 구문을 인스턴스화하고 연결합니다. 이 단계에서는 앱, 스택, 하위 구문 등 모든 구문이 인스턴스화되며 생성자 체인이 실행됩니다. 대부분의 앱 코드는 이 단계에서 실행됩니다.2. 준비prepare 메서드를 구현한 모든 구문은 최종 수정 단계를 거쳐 최종 상태로 설정됩니다. 준비 단계는 자동으로 진행됩니다. 사용자는 이 단계에서 피드백을 볼 수 없습니다. “prepare” 후크를 사용할 필요는 거의 없으며 일반적으로 권장되지 않습니다. 이 단계에서 구문 트리를 변경할 때는 작업 순서가 동작에 영향을 줄 수 있으므로 매우 주의해야 합니다.3. 유효성 검사validate 메서드를 구현한 모든 구문은 자체 유효성을 검사하여 올바르게 배포될 수 있는 상태인지 확인합니다..
EC2 amazon linux 2 -> amazon linux 2023, (node.js 20 upgrade)
·
AWS
AS-IS현재 구동중인 백엔드 서버의 node 버전은 16버전을 사용하고 있다. node 16은 지원이 중단되었으며 보안 업데이트도 받을 수 없는 버전에 놓여있기에 최근 lts인 node 20으로 업그레이드를 진행 하고자 한다. 현재 서버 EC2 AMI는 amazon linux 2를 사용 중에 있다.  TO-BEnode 20 버전으로 업그레이드를 진행하기 위해서 Amazon linux 2에서 Amazon linux 2023으로 업그레이드를 진행하고자 한다.단, 현재 가동 중인 prod 환경에서 다운타임 없이 업데이트를 진행하고자 한다.  이 때의 best pracitce와 더불어 각 인프라를 분석하며 업그레이드를 진행한다.  Node.js BenchmarkState of Node.js Performanc..
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth] (OpenSSH ssh-rsa deprecated)
·
트러블슈팅
기존 서버는 Amazon linux 2를 사용하였으나 node version upgrade를 위하여 Amazon linux 2023으로 변경하였다. 다만, 기존에 외부 종속성 중에서 DB 접속이 필요하던 서비스가 있었는데 잘 되던 ssh 터널링의 접속이 계속 거부되는 이슈가 생겼다.  현재 OpenSSH 버전은 8.7버전이었다. $ ssh -VOpenSSH_8.7p1  https://www.openssh.com/txt/release-8.8위 openssh 릴리즈 노트에 따르면 다음과 같다.  OpenSSH 8.8 was released on 2021-09-26. It is available from the mirrors listed athttps://www.openssh.com/. OpenSSH is a..
형상관리 데이터베이스 마이그레이션 툴 flyway
·
카테고리 없음
서론 Flyway란 무엇인가?데이터베이스 스키마의 버전 관리는 애플리케이션 개발의 중요한 부분입니다. 특히, 여러 개발자가 함께 작업하거나 다양한 배포 환경을 관리할 때 더욱 중요합니다. Flyway는 이러한 데이터베이스 마이그레이션을 자동화하고 버전 관리를 체계적으로 수행할 수 있게 도와주는 도구입니다. Flyway가 필요한 이유 형상 관리: Flyway는 데이터베이스 스키마를 코드와 동일하게 형상 관리할 수 있게 해줍니다. 이를 통해 소스 코드와 데이터베이스 스키마의 동기화를 유지할 수 있습니다.자동화: Flyway는 마이그레이션을 자동으로 적용하고, 마이그레이션 순서와 의존성을 관리합니다.일관성 유지: Flyway는 체크섬을 사용하여 마이그레이션 파일의 무결성을 검증합니다. 이를 통해 마이그레이션 ..