Topic
-
[ NestJS ] @IsString 데코레이터와 : string 타입은 뭐가 다를까?Topic/Node.js | server 2023. 7. 8. 12:44
@IsString() 데코레이터와 : string 타입 어노테이션은 두 가지 다른 개념을 나타낸다. @IsString() 데코레이터: @IsString()은 class-validator 라이브러리에서 제공하는 데코레이터로, 해당 필드의 값이 문자열(string) 형식인지를 검증합니다. 즉, 입력된 값이 문자열이 아닌 경우 유효성 검사를 통과하지 못하게 됩니다. 이 데코레이터를 사용하여 DTO 클래스의 name 필드가 문자열 형식으로 제공되어야 함을 나타냅니다. : string 타입 어노테이션: : string은 TypeScript에서 변수 또는 함수 매개변수의 타입을 명시하는 방법 중 하나입니다. 이 경우, name 필드가 문자열(string) 타입의 값을 가지는 것을 TypeScript에 알려줍니다. ..
-
[ AWS ] EC2 인스턴스 t2, t3살펴보기Topic/AWS | JENKINS 2023. 6. 17. 11:11
EC2를 사용할 때 가장 흔하게 t2.micro 프리티어를 사용한다. cpu 성능을 제공하는 방식이 조금 특별하다. 일반적으로 CPU 성능이 정해져있어서 24시간 같은 성능을 제공할 것이라 생각하지만, T계열 인스턴스들은 기본 성능을 제공하다가, 유저들이 몰리거나 하는 등 기준 이상의 성능이 필요할 경우 버스트 기능이 동작하게 된다. 물론, 공짜는 아니고 인스턴스 사양마다 제공되는 크레딧이 다르고 그 크레딧이 남아있는 동안 버스트 기능을 사용할 수 있다. 기준 이하 성능 사용을 지속할 경우 크레딧이 쌓이고(한계치 있음), 그 이상의 성능을 사용할 경우 크레딧을 소모시킨다. 크레딧이 다 소모되면, 기준 이상의 성능을 발휘하지 못하고 성능은 급격히 떨어지게 된다. 이러한 특성은 평소에는 CPU사용률 저조하다..
-
[ NodeJS ] Logger | .gz / gz파일 확인하기 (log.gz)Topic/Node.js | server 2023. 6. 3. 11:55
nodejs에서 winston으로 log를 찍으면서 확인 중 .log파일들은 잘 열리는데 .log.gz 파일을 여니 알 수 없는 문자들로 나오는 상황이 생겨 gz파일을 열어서 확인하는 방법을 찾아보았다. example.log.gz 로그 보는 법 압축된 gzip 파일을 간단히 찾고, 확인가능하다. $ zgrep ‘찾을 단어’ /path/to/test.log.gz $ zgrep ‘GET /faq/url/‘ /path/to/access.log.gz gz 파일 확인하는 방법 $ zcat test.log.gz
-
[ NodeJS ] 백엔드 재부팅 시 PM2 자동실행 설정Topic/Node.js | server 2023. 5. 27. 11:11
pm2는 pm2 start 명령으로 실행할 앱 지정 시 자동으로 프로세스를 관리해주는 프로그램이다. 하지만 서버가 잠깐 중지되었다가 다시 실행되었을 때 pm2는 자동으로 실행되지 않는다. 그래서 우리는 자동으로 재부팅 시 pm2가 실행되게 바꿔줘야한다. pm2 start app.js pm2 startup 명령어로 systemd를 통해서 자동으로 실행되도록 unit파일을 생성한다. pm2 startup [PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /home/username/.node_modules/lib/node_mod..
-
[ AWS ] EC2 시작할 때, pm2를 이용해 스크립트로 서버 배포하기Topic/AWS | JENKINS 2023. 5. 20. 20:11
ec2에 cloud-init 설치 ec2~ubuntu에서 sudo apt-cache search cloud-init 설치되지 않았다면 sudo apt-get install cloud-init EC2 인스턴스 중지 (종료 X) 중지 후 “중지됨”으로 상태가 변할 때까지 대기한다. 중지되었다면 [작업 - 인스턴스 설정 - 사용자 데이터 편집]으로 들어간다. 스크립트 하단 #!/bin/bash 아래부터 작성해나간다. *sudo, root폴더 기준임에 유의하여 작성한다. * Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: ..
-
[ MongoDB ] aws ec2(ubuntu 22.04) MongoDB에 MongoDB compass 연결하기Topic/Database 2023. 5. 5. 21:33
ec2에서 mongodb를 설치하고 mongosh을 눌렀을 때 정상적으로 접속이 가능한 상태가 전제이고 MongoDB compass를 연결해보는 작업이다. 우선 사용하고자 하는 DB로 바꿔준다. show dbs use test db.getUsers() db.createUser({ user: ‘testUser1`, pwd: ‘’password77, roles: [{role: 'readWrite', db: 'test'}]}) db에 접근할 user를 만들어주었다. 다시 한번 db.getUsers()를 통해 잘 만들어졌는지 체크한다. db.getUsers() // -> 결과 { users: [ { _id: 'test.testUser1, userId: new UUID("bdsdwfad-adad-9999-fje0..
-
[ AWS ] ec2내에서 pm2로 multi-node(다중노드) 띄워서 개별 관리 세팅하기Topic/AWS | JENKINS 2023. 4. 29. 11:14
(총 관리를 하게될) ec2 생성 ec2 접속 sudo apt-get update curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash nvm ls (comment not found 뜨면 ssh 껐다가 다시 재접속해보기) nvm install v14.16.1 nvm use v14.16.1 sudo apt-get install nginx sudo service nginx start mkdir app cd app 터미널에서 pem 키가 있는 파일로 이동 ( /project/ssh ) chmod 400 YOUR_PROJECT.pem ssh -i "YOUR_PROJECT.pem" ubuntu@ec2--*--.ap-north..