전체 글

전체 글

    [바미] Node 내장 암호화 모듈 Crypto에 대해 알아보자!

    비밀번호를 단순히 평문으로 데이터베이스에 저장하는 것은 범죄와 다름 없습니다. 데이터베이스가 해킹 당하는 순간 고객들의 비밀번호가 그대로 해커의 손에 넘어가게 되는 것이죠. (데이터베이스가 해킹 당하지 않는 것이 최선..) 그렇기 때문에 비밀번호 암호화로 안전장치를 만들어 놓는 것입니다. 암호화의 방법은 단방향 암호화와 양방향 암호화 두가지가 있습니다. 먼저 단방향 암호화에 대해서 알아보겠습니다. 단방향 암호화 비밀번호는 보통 단방향 암호화를 사용합니다. 단방향 암호화는 복호화 할 수 없는 암호화 방식입니다. 복호화는 암호화된 문자열을 암호화 되기전의 평문으로 되돌려 놓는 것을 의미합니다. 그러므로 단방향 암호화를 사용하게 되면 원래 문자열이 무엇인지 알 수 없습니다. Q: 왜 비밀번호 저장을 단방향 암..

    [바미] Nestjs 및 TypeScript를 사용하여 AWS S3에 이미지 업로드

    Nestjs 및 TypeScript를 사용하여 AWS S3에 이미지 업로드 최근 프로젝트에서 백엔드에 있는 Nestjs와 Typescript를 사용하여 AWS S3에 이미지를 업로드해야 했습니다. Typescript와 Nestjs를 사용하여 이 작업을 수행하는 간단한 단계를 공유합니다. 이 코드는 Nestjs 및 typescript용 코드이지만 Express를 사용하여 Nodej에 대한 이미지 업로드에 대해서도 참조하고 그에 따라 변경할 수 있습니다. 먼저 이미지 업로드를 위해 AWS S3 버킷을 설정해야 합니다. 만약 당신이 그것을 어떻게 하는지 모른다면 여기를 참고하시기 바랍니다. 이제 typescript를 사용하여 이미지 업로드에 대한 백엔드 코드를 설정해야 합니다. 이미지 업로드를 S3으로 설정하..

    [바미] node.js에서 aws s3 스토리지에 이미지 저장하기

    node.js에서 aws s3 스토리지에 이미지 저장하기 AWS에서 제공하는 S3 스토리지는 다양한 파일을 bucket에 보관할 수 있다. 자세한 내용은 생활코딩 강의 참고하면 좋다. 그럼 우선 aws sdk를 설치하여야 한다. npm i aws-sdk --save 그리고 AWS IAM에서 생성한 사용자가 있어야 한다. 사용자는 S3에 대한 권한을 가지고 있어야 한다. 사용자를 생성하고 권한을 부여하는 기능은 어렵지 않기때문에 검색해서 적용하면 된다. 그리고 해당 사용자를 생성하면 csv 파일로 secretkey를 받을 수 있다. 이를 AWS S3에 접근하여 사용하기 위해서 사용된다. 기본 정보가 담긴 config.json 생성 우선 부여 받은 사용자 accessKeyId와 secretAccessKey ..

    [바미] Typescript와 AWS Lambda로 모니터링에 유용한 API 패턴 구성하기

    람다를 크게 세 부분으로 나눕니다. 사용자로부터 받은 데이터를 검증해주는 컨트롤러 비즈니스로직을 구성하는 서비스 API나 데이터베이스와 연결되는 레파지토리 그럼 상품을 구매하는 Shop 예제를 통해 차근차근 보겠습니다. Shop예제 shop.ts const repo: ShopRepository = new ShopRepository(); const service: ShopService = new ShopService(repo); const controller: ShopController = new ShopController(service); export const purchaseItem = controller.purchaseItem 위 이미지처럼 컨트롤러는 생성자로 서비스를, 서비스는 생성자로 레파지토리를..

    [바미] AWS Cloud9 개발 환경에서 TypeScript를 사용하기.

    이 샘플은 AWS Cloud9 개발 환경에서 TypeScript를 사용하는 방법을 보여줍니다. 이 샘플을 생성하면 AWS 계정에 요금이 부과 될 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3와 같은 서비스에 대한 가능한 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금을 참조하십시오. 및 Amazon S3 요금. 목차 전제 조건 1 단계 : 필요한 도구 설치 2 단계 : 코드 추가 3 단계 : 코드 실행 4 단계 : Node.js에서 AWS SDK for JavaScript 설치 및 구성 5 단계 : AWS SDK 코드 추가 6 단계 : AWS SDK 코드 실행 7 단계 : 정리 전제 조건 이 샘플을 사용하기 전에 다음 요구 사항을 충족해야합니다. 기존 AWS Cloud9 EC..

    [바미] Web Socket에 대해 알아보자!

    WebSocket이란 WebSocket은 컴퓨터 네트워크용 통신 규약의 하나이다. ( ws:// ) 인터넷의 표준화 단체인 W3C(World Wide Web Consortium) 와 IETF(Internet Engineering Task Force) 가 Web server 와 Web browser 간의 통신을 위한 규정을 정의한 쌍방향통신(Duplex)용 기술 규약이다. API는 W3C가 책정을 맡고 있고, WebSocket 프로토콜은 IETF가 책정을 맡고 있다. WebSocket의 등장 배경 초기 웹의 탄생 목적은 문서 전달과 하이퍼링크를 통한 문서 연결이었다. 웹을 위한 HTTP 프로토콜은 이러한 목적에 매우 부 합하는 모델이다. 그러나 시대가 변하고 환경이 발전할 수록 웹이 더 이상 문서공유에만 ..

    [바미] typeorm에 대해 알아보자!

    참고사이트 TypeOrm (object Relational Mapping) TypeORM 에서 ORM 기본, NativeScript, 박람회 및 전자 플랫폼 반응, NodeJS, 브라우저, 코르도바, 폰갭, 이온 성에서 실행할 수 있으며, 타이프 라이터와 자바 스크립트 (ES5, ES6, ES7, ES8)와 함께 사용할 수 있습니다. 이 솔루션의 목표는 항상 최신 JavaScript 기능을 지원하고 몇 가지 테이블이있는 소규모 응용 프로그램부터 여러 데이터베이스가있는 대규모 엔터프라이즈 응용 프로그램에 이르기까지 데이터베이스를 사용하는 모든 종류의 응용 프로그램을 개발하는 데 도움이되는 추가 기능을 제공하는 것입니다. ORM 이란? Object Relational Mapping, 객체-관계 매핑 객체와 ..

    [바미] JMT이 아닌 JWT에 대해 알아보자!

    세션 기반 인증 방식 옛날에 토큰 기반 인증이 없었을 때 서버 세션을 사용해 인증을 했습니다. 클라이언트가 로그인 성공하면 서버가 유저 세션을 만들고 메모리나 데이터베이스에 저장한다. 서버가 클라이언트에게 세션 ID를 보낸다. 클라이언트의 브라우저에 세션의 ID만 쿠키에 저장하게 한다. 세션 데이터가 서버의 메모리에 저장되므로, 확장 시 모든 서버가 접근할 수 있도록 별도의 중앙 세션 관리 시스템이 필요합니다. 세션 기반 인증 방식 단점 중앙 세션 관리 시스템이 없으면, 시스템 확장에 어려움이 생깁니다. 중앙 세션 관리 시스템이 장애가 일어나면, 시스템 전체가 문제가 생깁니다. 만약 메모리에 세션 정보가 들어있다면, 메모리가 많이 사용될 수 있습니다. 규모 확장이 필요없는 소규모 프로그램 작성에서는 세션..

    [바미] Typescript-restful-starter - Plan 부분 실행.

    수정 사항. 여기 Plan부분 시행. name외에도 age, phonenumber와 같은 데이터를 추가 할 수 있도록 수정. 기존 데이터에서 1번에서 추가한 컬럼 값들을 넣지 않은 데이터들이 Update될 수 있도록 수정. Create로 생성된 데이터 중 입력한 이름을 가진 데이터, 입력한 나이를 가진 데이터, 입력한 전화번호를 가진 데이터, 등을 검색하여 조회 할 수 있도록 수정. 코드 Sample.controller.ts // select -> routes/Sample.route.ts 참조. public async find5(): Promise { const { age } = this.req.params as unknown as { age: number }; const sample = await th..