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

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

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


Node.js51

Nestjs 프레임워크 서버(emitter, rxjs, schedule) -15 #1. Emitter, rxjs Nestjs에서 재미있는 기능을 뽑으라면 에미터(emitter : 방출하다) 기능 입니다. 에미터라는 기능은 리엑트나 앵귤러를 한 사람에게는 친숙한 기능인데.. 특정 이벤트를 동작시켜 해당 동작을 바라보거나, 구독하는 대상에게 내용을 전달 해 주는 기능 입니다. 프론트 프레임워크 기준으로는, 앵귤러의 rxjs 기능이며 리엑트는 레덕스(또는 모빅스) 기능과 유사 합니다. 이걸 서버코드에서 이걸 어떻게 적용할지 참 고민이 많았습니다만, 아직 멋진 방법을 못했습니다...^^; 백문이 불여일견~! 필요한 라이브러리를 설치하여 줍니다. npm install @nestjs/event-emitter 다음으로 모듈에서 에미터 기능을 사용하기 위해 추가를 해 줍니다. * 파일이름 : ap.. 2022. 9. 22.
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.