AWS IAM 사용자를 활성화 시켜기 AWS IAM 에 들어가서 활성화 시킨후 AWS AccessKey를 받아야 한다. [ AWS IAM이 무엇인가? ] AWS IAM(AWS Identify and Access Management) - 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹서비스 - 손쉽게 기존 디렉토리를 연결하여 AWS계정과 클라우드 애플리케이션에 대한 사용자 액세스를 관리하는 서비스다. - 비유를 하자면, 데이터센터에 접근할 수 있는 권한을 갖는 "출입카드" 와 유사하다고 보면 된다. - 누가/ 무엇을 / 어떻게 할 것인지에 대해 인증과 인가를 제어하는 서비스이다. - [사진2] 에서 보면 유저가 aws 서비스에 요청을 보내면서 인증을 위한 유저의 자격증명도 같이 보낸다. 1) IAM I..
CSRF(Cross Site Request Forgery Attack, 크로스 사이트 요청 위조 공격) 인증된 사용자가 웹 애플리케이션에 특정 요청을 보내도록 유도공격하는 행위를 의미한다. 쉽게 말하자면, 공격자의 요청이 사용자의 요청인 것처럼 속이는 공격방식 을 의미한다. CSRF 공격을 어떤식으로 하는가? 공격자가 사용자인것처럼 위장하면서 요청을 보내도록 하는 것이므로 제품구입, 계정설정, 기록삭제, 비밀번호 변경, 문자 전송과 같은 데이터 값을 변경하는 요청일 때 공격한다. 이메일이나 웹사이트에 하이퍼링크를 심어서 요청을 보내고 하이퍼링크를 클릭하게 되면 요청이 자동으로 전송된다. 사용자 몰래 자금을 전송 이메일 주소와 비밀번호를 변경하는 무단행위 CSRF를 어떻게 방지할까? CSRF 토큰을 통해 ..
여러분이 웹서비스를 이용하다보면 실생활에서 회원 가입할때 사용된 이메일로 no-reply 라는 알림서비스를 받은 경험이 있을 것이다. 회원가입을 하게되면, 이메일로 회원가입을 했다고 알림을 하듯이... 또는 결제완료/ 예약완료 등 서비스로부터의 이벤트를 요청했을 때도 이메일로 알림을 받았듯이 말이다. 알림용도로 이메일을 활용해서 유저에게 웹서비스를 제공한다. 그래서 이러한 알림처리 기능을 그동안 해본적이 없는데 이 호기심을 직접 탐구해보면서 어떤 로직으로 어떤 알고리즘으로 구현하는지를 알고 싶었다. 그요즘은 오픈소스가 잘되어있어서 구글링을 통해서, 오픈소스를 통해서 쉽게 구현할 수 있었다. 필자는 Node.js 환경에서 작업했으며, Nodemailer를 이용했고, Gmail계정으로 이메일 인증하는데 있어..
Nodemon은 npm이 실행한 상태에서 소스코드 변경하면 바로 변경한 코드를 실행시키도록 도와주는 패키지이다. 그런데 기본적으로 nestjs에는 nodemon이 탑재되어있지 않다. 그래서 계속 수정할때마다 기존에 실행한 프로세스를 종료하고 다시 새로운 프로세스를 실행시키도록 하는 것이 비효율적이기도하고 귀찮다. 1. nodemon 패키지를 설치한다. $ npm install --save-dev nodemon 2. npx 로 실행시킨다. $ npx nodemon
구글로그인 구현하기 구글로그인 패스포트 모듈 설치 $ npm i --save passport-google-oauth20 $ npm i -D @types/passport-google-oauth20 구글클라우드에서 API 키 발급받기 아래사진은 구글 로그인 과정을 나타낸다. 출처: codementor community 1.Google Cloud 프로젝트 만들기 2.API 및 서비스 이동 3.'OAuth 동의 화면' 메뉴 클릭 3-1. 1단계. OAuth 동의화면 앱이름 / 사용자 지원 이메일 / 앱도메인/ 승인된 도메인 / 개발자 연락처 정보 입력 2단계. 범위 부분은 민감한 영역을 다루게될경우라서 패스. 3단계. 테스트 사용자: 테스트사용자도 필요없어서 그냥 패스. 3-2. 생성하면 Clie..
[ ERD Diagram ] TypeORM과 다르게 Mongoose 에서는 어떻게 외래키를 표현할까 궁금해서 기록하게 되었다. 특히 마켓 모델 을 구현 해야되는데, 다른 모델의 PK(Primary Key)를 참조해야되는 컬럼이 존재할 때 어떻게 코드를 작성해야될지 몰랐다. 그래서 공식다큐먼트를 읽기로했다 :) [참고] 공식 다큐먼트들 Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combi..
이전과 다르게 프로젝트 세팅 과정 마저도 삐그덕삐그덕 순탄했으면 좋으련만 오늘도 순탄치 않다. 여러분도 순탄치않은 상황이 발견했을 때 미약한 도움이 되고자 (아무도 보지 않더라도) 계속 에러가 발생할때마다 어떻게 해결했는지 과정을 공유하려고한다 :) [필자 환경 사양 ] - Node.js version: v16.16.0 - OS: MacOS NestJS 공식문서 보면서 순서대로 진행한건데 프로젝트 생성하다가 전에는 없던 에러가 떴다. $ npm i -g @nestjs/cli -g 옵션을 지우고 시도를 했더니 위와 같은 패키지 설치 에러없이 동작이 되었다. $ npm i @nestjs/cli 그런데... NestJS cli 로 프로젝트를 생성하다가 command not found: nest 라는 에러가 떴..
몽고디비에서 필드의 존재여부에 따라 상황별 쿼리문 어떻게 만들지? 오랜만에 mongoose와 mongodb 옵션을 활용해보니 다시 어색하고 가물가물했다. nosql의 단점은 sql에 비해 쿼리문이 복잡하다. 그만큼 다큐먼트에 있는 옵션들을 활용할 수록 원하는 데이터를 뽑아내기도하고 관리할 수 있다. 아래코드와 같이, typeorm은 분기를 하여 상황별로 쿼리문을 추가할 수 있다. const query = somehow .createQueryBuilder('users') .where(`user.deletedAt IS NOT NULL`) if (params.hasImage) { query.andWhere(`user.image IS NOT NULL`) } if (params.q != '') { query.an..
- Total
- Today
- Yesterday
- OS
- 갓생살자
- Mongoose
- MongoDB
- vscode
- nestjs jest
- Jekyll
- 한달어스
- 클린아키텍쳐
- TDD
- Nest.js
- IT용어
- node.js
- 개발용어
- RDBMS
- git
- 나도 할 수 있다
- 습관개선
- 미완
- 스마트폰중독
- gem
- typeORM
- nestjs
- 참고
- 디지털디톡스
- TypeScript
- 바이트디그리
- 한달독서
- MySQL
- jest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |