본문 바로가기

전체 글32

Apps script MongoDB CRUD - UpdateOne, filter: 도큐먼트 수정 방법 Apps script MongoDB CRUD - UpdateOne: 도큐먼트 수정 방법Apps script를 이용해서 MongoDB collection내에 있는 document를 수정(=update)하는 방법에 대해서 알아보자. 먼저 짚고 넘어가야 할 것은 update와 replace는 서로 전혀 다른 명령이라는 것이다.update는 특정 부분만 수정하고 나머지는 그대로 두지만, replace의 경우 특정 부분을 고치면 나머지는 전부 없어진다. 즉, 그 특정 부분만 두는 '전부 교체'를 의미하는 것이다.  updateDocumentInMongoDB() 소스코드특정 도큐먼트를 잡아내 키-값을 수정하는 코드는 다음과 같다.function updateDocumentInMongoDB() { const apiK.. 2024. 9. 6.
[express-rate-limit]rate limiting test 개발자도구에서 테스트하는 방법 [express-rate-limit] rate limiting 개발자도구에서 테스트하는 방법짧은 시간동안 많은 요청을 요구하는 것을 막기 위해 express-rate-limit를 사용하였다(rate limiting). express-rate-limit로 제한할 시간당 api요청 수는 서비스와 보안이 필요한 정도에 따라 결정된다.  1. express-rate-limit 라우트마다 설정하는 방법Rate limiting은 서버파일 상단에 작성하여 전체 서비스에 적용시키거나, const로 각각의 rateLimiter를 만들고 미들웨어 식으로 제어하는 방식이 있다. 하지만 라우트파일 단위로 마다마다 설정을 해줄 수도 있다.다음은 라우트에서 express-rate-limit를 작성한 코드이다.const expre.. 2024. 9. 5.
mongoDB validation 스키마 유효성 검사의 다양한 방법 mongoDB validation 스키마 유효성 검사의 다양한 방법noSQL 데이터베이스로 유명한 mongoDB는 mongoose와 곧 잘 합쳐 쓰인다.mongoose는 schema validation은 물론 모델을 만드는데 전통적으로 쓰여왔기 때문이다.그러나 요즘은 mongodb만으로도 스키마유효성 검사를 할 수 있고, moongoose사용시 데이터베이스가 느려진다는 의견이 있기 때문에 사용하지 않아도 된다는 설이 도는 것 같다. 이번 글에서는 데이터의 유효성을 검증(validation)하는 여러 가지 방법에 대해서 작성하였다. 1. 서버에서 if문으로 제어하기User가 보낸 데이터가 string이 맞는지, number가 맞는지 혹은 이메일인지 전화번호인지 검증을 할 때, if문을 통해 먼저 처리할 수.. 2024. 9. 4.
express-ejs-layouts 레이아웃 상황마다 다르게 적용하는 방법 express-ejs-layoutsexpress-ejs-layout은 뷰엔진(사용자에게 보여지는 화면에 데이터를 꽂아줌. 이를 데이터 바인딩(data binding)이라고 한다) ejs와 함께 더불어 사용된다.보통 여러 html페이지에서 반복되는 등을 레이아웃(layout)으로 만들고, 부분에 화면마다 변하는 주요 콘텐츠를 바인딩하는 역할을 한다. 예를 들면 로그인을 한 사용자의 헤더부분과 로그인을 하지 않은 사용자의 헤더부분을 각각 레이아웃1, 레이아웃2로 분리하는 것이다. 그래서 로그인 여부에 따라 맞는 레이아웃을 정해줄 수 있다. 이번 글에서는 express-ejs-layouts을 설치하는 방법부터, 레이아웃을 적용하는 방법에 대해서 정리하였다.  1. express-ejs-layouts 설치하기n.. 2024. 9. 2.
[Cloudfront]AWS S3 보안 버킷명 가리기 Cloudfront를 통한 AWS S3 보안: S3버킷명 가리기AWS의 S3(Amazon Simple Storage Service)는 객체 저장서비스로, 대용량 데이터를 안전하게 저장하고, 언제 어디서든 접근할 수 있도록 해준다. 주로 데이터 백업, 정적 웹사이트 호스팅, 대용량 파일 저장 등에 사용된다. 이때 데이터는 S3의 '버킷(bucket)'에 담긴다.따라서 사용자가 데이터에 접근을 할 땐 버킷url에 get요청을 하는데 문제는 이 url엔 리전과 버킷명(버킷이름)이 명시되어 있다는 점이다. 이러한 위험을 방지하기 위해 사용되는 것이 aws의 cloudfront이다. 이에 대해서 좀 더 자세히 살펴보려고 한다.  1. S3 버킷명 노출의 위험성S3 버킷명(버킷이름)이 노출될 경우, 악의적인 사용자.. 2024. 8. 29.
엘라스틱빈스톡elastic beanstalk HTTPS연결 SSL인증서 등록 엘라스틱빈스톡(Elastic Beanstalk) HTTPS 연결 및 SSL인증서 등록방법이번 글에서는 ACM에서 발급받은 SSL인증서를 엘라스틱빈스톡 > 리스너에 추가하는 방법에 대해서 작성하였다. 이 글의 내용을 적용하기 전 선행되어야 할 일은 다음과 같다. 1. ACM에서 인증서 발급받기 [글 보러가기] 2. 가비아에 네임서버를 등록하고(4개), 엔드포인트 주소를 router53과 연결하기 [글 보러가기] 위의 작업을 모두 마쳤다면 이제 포트를 열고 ssl인증서를 등록해주면 된다.보통 AWS의 EC2서버를 이용해 서비스 배포를 하느라 따로 로드밸런서에서 등록을 하는 것 같다. 하지만 이번 글에서는 엘라스틱빈스톡에서 등록하는 방법에 대해 알아본다.(*엘라스틱 빈스톡에서도 EC2를 이용해 배포한다) 1... 2024. 8. 27.