nodejs

Programming/Nodejs

[NodeJS] Standalone Executable File 만들기

이번에는 NodeJS 프로그램을 실행 가능한 바이너리 프로그램으로 만들어, 소스가 외부에 공개되지않고 NodeJS 설치 없이 실행할 수 있는 방법을 설명드리겠습니다. Executable file로 만들기 위해서 저는 Pkg 라이브러리를 사용했습니다. 릴리즈 버전이 4.4.0번으로 라이브러리가 어느 정도 안정화 되어있다고 생각됩니다. zeit/pkg Package your Node.js project into an executable. Contribute to zeit/pkg development by creating an account on GitHub. github.com 본 포스트에서 사용하는 예시 프로그램은 블로그에 연재하고 있는 NestJS 기반 API 서버입니다. Typescript 기반으로 간..

Programming/Server

[DevOps] 로그 수집 및 모니터링 시스템 - Sentry (2탄)

저번 포스트에서는 간략하게 Sentry에 대하여 설명을 했는데, 이번에는 직접 NodeJS 프로젝트와 Sentry를 직접 연동해보겠다! 먼저 간단한 Typescript기반의 Nest 프레임워크를 이용한 NodeJS 프로젝트를 만들어보자! # NestJS CLI 를 전역으로 설치 npm i -g @nestjs/cli # NestJS 기반 프로젝트 생성 nest new sentry_example 이후 Sentry와 연동을 도와주는 Raven 모듈을 설치해야 하는데, 요즘 NestJS 프레임워크를 썼기에 좀 더 편하게 적용하기 위해서 NestJS용 Raven 모듈을 다운로드했다. # Raven Library https://www.npmjs.com/package/raven raven A standalone (N..

Programming/Nodejs

[NodeJS] APK 파싱

const APK_READER = require('node-apk-parser'); const READER = APK_READER.readFile('./app-debug.apk'); const manifest = READER.readManifestSync(); // apk 내의 manifest 내용을 선택하여 출력할 수 있다. console.log(` versionCode: ${manifest.versionCode} versionName: ${manifest.versionName} packageName: ${manifest.package}`) // promise const apkParser = require('node-apk-parser-promise'); (async () => { let reader ..

Programming/Nodejs

[NestJS] AWS S3 Image Upload

최근 NestJS 기반으로 서버 개발을 하고 있다. S3에 사용자 프로필을 업로드해야 하는 요구사항이 있어 다음과 같이 코드를 작성하여 사용하고 있다. NestJS의 Multer 라이브러리와 Multer-S3를 활용한다. 검색을 해보면 대부분 Controller 단에서 Multer-S3 라이브러리를 불러와 업로드를 하는데, 서비스단에서 비즈니스 로직을 수행하는게 맞다고 생각하여 업로드 서비스로 구분하여 구현하였다. [config.module.ts] import { Global, Module } from '@nestjs/common'; import { ConfigService } from '../service/config.service'; // Make Configuration Module To Globa..

Programming/Nodejs

NodeJS AES 256 암복호화 코드

회사에서 서버 개발을 하다가, 모바일 API 전문 암호화 요구사항이 있어서 AES256 암호화 및 복호화 코드를 만들고 사용하고 있다. 코드는 다음과 같다 (Typescript 사용 중). import * as Crypto from 'crypto'; /** * AES Algorithm Based Data Encrypt Function * @param secretKey - Encrypt Key * @param plainText - The Data Of To Be Encrypt */ export const encryptWithAES256 = (secretKey: string, plainText: string): string => { const secretKeyToByteArray: Buffer = Buffe..

Programming/Nodejs

[NestJS 기반 게시판 REST API 만들기] 3. 회원가입 및 로그인, 파라미터 검증 및 예외 처리

지난 포스트 [NestJS 기반 게시판 REST API 만들기] 2. 회원가입 및 로그인 기능을 위한 DB 연동 지난번 포스트에서는 데이터베이스를 연동하고, 유저 테이블을 만들고, 엔티티 클래스를 만들어 연동까지 했습니다. 이번 시간에는 회원가입 API를 만들어 유저 테이블에 직접 데이터를 넣어보고, 로그인 API를 통해 로그인 기능까지 구현해보겠습니다. 또한 입력 파라미터를 검증하는 과정과 에러 처리과정을 보여드리겠습니다. 1. UserService 구현하기 이전 포스트에서 만들어두기만 했던 UserService를 회원가입과 로그인 처리를 위해 구현해보도록 하겠습니다. 가장 먼저 사용자 패스워드를 암호화 하기 위하여 bcryptjs 라이브러리를 추가합니다. 사용자 비밀번호가 평문으로 저장되어있다면 법적..

Programming/Nodejs

[NestJS 기반 게시판 REST API 만들기] 1. 프로젝트 환경 구축

들어가기에 앞서 [1] 사용하는 스택은 다음과 같습니다. NodeJS Typescript NestJS TypeORM Mysql (or MariaDB) Redis [2] 프로젝트 요구사항 NodeJS 가 기본적으로 설치가 되어있어야 합니다. NestJS는 V8.9.0 이상을 요구하고 있습니다. (저는 v8.15 사용 중입니다.) 데이터베이스는 Mysql를 사용합니다. 프로젝트에서 사용되는 모든 내용은 NestJS Doc에 있는 내용을 기반으로 합니다. 만약 이해가 안 되는 내용이 있을 경우 해당 레퍼런스를 체크하시면 좋을 것 같습니다! 프로젝트 환경 구축 하기 1. 먼저 NestJS CLI를 글로벌로 설치해줍니다. npm install -g @nestjs/cli 2. NestJS CLI를 활용하여 새 프로..

JohnMark
'nodejs' 태그의 글 목록