본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Node.js/Nestjs (Nest.js)20

Nestjs 프레임워크 서버(Mongodb, database) -14 비관계형 데이터베이스 중 몽고DB는 제가 비관계형 데이터베이스에서 가장 좋아하는(?) 데이터 베이스 입니다. 무료에다 성능 또한 훌륭하기 때문 입니다! 얼마전 데이터베이스 인기순위에서도 1등(비관계 중)을 한 것을 볼 수 있었습니다. * 기준 : 2022.09 Nestjs에서 Mongodb를 사용하기 위해서는 역시나 모듈을 설치해야 합니다. Express 프레임워크에서부터 널리 사용 하는 몽구스(mongoose)를 설치 해 줍니다. npm install @nestjs/mongoose mongoose #1. 도큐먼트(모델, 스키마) 생성 도큐먼트란 데이터를 매핑하기 위한 ORM의 첫번째 단계 입니다. 시퀄라이즈에서의 모델을 만들어 준 것 처럼 동일한 방식으로 클래스를 만들어야 합니다. 특히 몽고db같은 경.. 2022. 9. 16.
Nestjs 프레임워크 서버(sequelize, database) -13 시퀄라이즈(sequelize) 는 관계형 데이터베이스를 편리하게 사용 할 수 있게 해주는 프레임워크 입니다. 데이터베이스의 종류와 상관 없이 함수를 호출하는 방식을 통해서 쿼리를 편하게 사용 할 수 있습니다. 이번 포스팅에서는 관계형 데이터베이스인 포스트그레(postgre)를 사용 해 보았습니다. 먼저 모듈(라이브러리)을 설치하여 줍니다 npm install sequelize sequelize-typescript @nestjs/sequelize npm install @types/sequelize npm install pg 맨 위 2개의 모듈은 시퀄라이즈 프레임워크를 사용하기 위한 모듈이며, 마지막 pg 모듈은 포스트그레에 접속을 하기 위한 모듈 입니다. 만약 mysql이나 mssql등 다른 데이터베이스를.. 2022. 9. 11.
Nestjs 프레임워크 서버(websocket) -12 #Websocket (웹소켓) express 프레임워크처럼 nest.js 에서도 웹소켓을 간단하게 설정하여 사용 할 수 있습니다. 자주 사용되는 socket.io 라는 프레임워크를 한번 사용하여 보았습니다. 2개 모듈을 설치하여 줍니다. npm install @nestjs/websockets npm install @nestjs/platform-socket.io nestjs에서의 웹소켓을 담당하는 기능은 "컨트롤러(Controller)" 라는 이름으로 불리우기 보다는 "어뎁터(Adaptor)" 라는 이름을 주로 사용하는 것 같아서 여기서도 마찬가지로 어뎁터라는 이름으로 기능을 만들어 보았습니다. 먼저 전체코드를 살펴 봅니다. * 파일이름 : 웹소켓어뎁터.ts import { WebSocketGateway,.. 2022. 9. 7.
Nestjs 프레임워크 서버(XSS 방지, Cross Site Scripting) -11 # XSS(cross site scripting) 크로스 사이트 스크립트 변조(cross site scripting, xss)는 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 말합니다. 아래와 같은 파라미터를 통해서 게시글을 등록하였다고 가정하여 봅니다. http://127.0.0.1:3000/등록?id=asdf&name=&desc=aaa id, name, desc 값으로 해당 내용이 등록이 되고 등록된 내용을 사용자가 본다고 가정하면, while( alert(1234) ) 라는 명령어에 의해서 다른 사용자가 게시글을 보게 될 경우에 경고창이 1234 라는 숫자와 함께 끝나지 않고 계속해서 .. 2022. 8. 29.
Nestjs 프레임워크 서버(CSRF 방지, csurf) -10 # CSRF(csurf 모듈) 크로스 사이트 리퀘스트 변조(cross site request forgery, CSRF)는 사이트간 요청위조를 의미 합니다. 피해자의 권한으로 피해자 모르게 해커가 요청을 수행 하도록 만드는 것을 의미 합니다. 특히 "결재"와 관련된 웹 어플리케이션에서는 필수이며 가장 강력한 수준의 조치가 요구 됩니다. * 해커가 악성스크립트를 통하여 원치않는 결재, 결재정보노출 등을 할 수 있기 때문 입니다. nestjs에서도 이러한 문제를 방지하기 위해 csurf 모듈을 활용하여 기능 구현을 쉽게 할 수 있도록 해줍니다. fastify 모듈도 있지만..설명이나 사용법이 워낙 불친절하고, 제 취향이 아녔.. 원리와 개념은 간단 합니다. 클라이언트가 데이터를 변경하려는 페이지에 접근한 상태.. 2022. 8. 24.
Nestjs 프레임워크 서버(패스포트, JWT) -9 # 패스포트(passport, 여권) 패스포트 라이브러리(프레임워크)는 로그인과 관련된 기능을 제공합니다. 패스포트(여권)는 자바에서의 시큐리티(security), 파이썬의 플라스크로그인(flask-login) 과 비슷한 로그인 관련 모듈(프레임워크)입니다. 이러한 로그인 프레임워크(라이브러리)를 사용하지 않고 기능을 구현하기 위해서 아래와 같은 패턴으로 작업을 합니다. * 로그인 요청 처리 1) 로그인 응답을 받는 메소드 2) 요청된 값을 가지고 데이터베이스 조회하는 메소드 3) 로그인 정보 기록(서버/클라이언트) 4) 로그인 결과 전달 이렇게 4단계로 로그인 요청이 완료되고 나면 이제 권한에 따른 기능 작업을 해 주어야 합니다. * 권한에 따른 페이지 접근 5) 로그인된 사용자면 접근 허용 6) 로그.. 2022. 8. 22.