Node.js
-
[nestjs] env파일로 관리하던 환경변수를 yaml파일로 관리하기Node.js/nest.js 2023. 7. 2. 01:31
1. (사전 요구 사항) 패키지 설치 $ yarn add @nestjs/config $ yarn add js-yaml $ yarn add @types/js-yaml --dev $ yarn add cpx # 파일 copy 도구 # cpx가 사용이 꺼려지면 아래처럼 직접 명령어 파이프라인을 작성해도 괜찮다. "scripts": { "dev": "rm -rf dist/config/config.*.yaml && mkdir -p dist/config && cp config/config.local.yaml dist/config && cross-env ENV=local nest start --watch", 파일 복사를 위해 nest build의 assets이라는 설정도 있지만 config 폴더가 src 내부에 위치할..
-
nest.js 학습에 사용한 공부 자료Node.js/nest.js 2023. 3. 23. 20:43
1. Nest JS란? node.js 서버 사이드 애플리케이션 프레임워크이다. Opinionnated를 지향해 Best Pactice를 제공한다. node.js의 가장 유명한 프레임워크는 Express이다. 만드는 개발자 마다 설계가 달라서 코드 알아보기, 유지보수가 힘들었다. 반면 Nest.JS는 Beat Practice 있어서 가독성 상대적으로 쉽고, 개발자 퇴사하면 새로운 사람이 적응 쉬운 장점이 있다. Nest.JS는 Typescript 기반이다. 규모가 큰 프로젝트 관리를 목적으로 한다. 기본 express 서버 기반으로 동작하고 Fastify로 갈아끼울 수 있다.(마치 스프링의 톰캣, 네티) express 사용하던 라이브러리 그대로 사용 가능. Spring 따라 만든 프레임워크라는 느낌을 받았..
-
백앤드에게 Event Loop란 무엇인가.(브라우저, Nest js, SpringBoot)Node.js/nest.js 2023. 3. 8. 23:51
Javascript를 이해하려면 Event Loop가 무엇인지 알아야 한다. 구글에는 프론트 개발자 글이 많아서 브라우저 기반 Event Loop 설명이 많은데 백앤드 입장 Event Loop를 정리해 본다. 브라우저 기반 Event Loop 설명은 아마 80%가 아래의 8년 전 영상이 출처인 것으로 보인다. (설명을 굉장히 잘한다.) - JS Conf 브라우저의 이벤트 루프 : https://www.youtube.com/watch?v=8aGhZQkoFbQ 사전 지식 : 병렬성과 동시성 Event Loop를 이해하기 위해서는 동시성(concurrency)과 병렬성(parallelism) 이해가 선행되야 한다. 자바로 예를 들면 스프링부트로 서버를 띄우면 톰캣에 기본 max 200개 thread가 생성되도..
-
[Password hashing] Argon2, Bcrypt, Scrypt, PBKDF2 소개Node.js/nest.js 2023. 3. 6. 23:34
Springboot를 사용하면서 비밀번호 해싱은 늘 BcryptPasswordEncoder만 복사 붙여넣기 형태로 사용했다. Nest.js는 반면에 bcrypt, bcrypt.js, Scrypt, Argon2 등 passwordHash로 검색하면 나오는 라이브러리가 많아서 직접 알아봐야하는 상황이 있었다. Spring Security의 공식 문서를 살펴보니 bcrypt, Scrypt, Argon2, Pbkdf2 등.. 다양하게 제공하고 있었다. 이참에 자세히 알아보자. https://docs.spring.io/spring-security/reference/features/authentication/password-storage.html Bcrypt가 무엇이고, 어떤 것을 사용하는 것이 좋은지 정리해본다...
-
Typescript 입문 (typescript란?, 설치, 사용법, 학습자료)Node.js/typescript 2023. 2. 22. 18:13
1. 타입스크립트란? typescript 깃허브 : https://github.com/microsoft/TypeScript typescript란? 마이크로소프트에서 mono repo 생산성 개선 목적으로 만든 javascript의 상위 호환 언어 Javascript 할 수 있는거 다 할 수 있는데 부가적인 기능 제공 typescript로 작성하면 javascript로 변환(컴파일 === transfile)해서 실행한다. 모든 TS 파일은 JS 파일이기도 하다. 타입 검사 제공 작성하면서 Error 미리 잡아줌 (모든 자바스크립트 버그의 15%가 사전에 타입스크립트로 감지할 수 있다고 한다) typescript에서만 제공하는 추가 문법 제공 JS를 OOP적으로 짤 수 있게 도움 인터페이스, 상속, 모듈 등..
-
[M1 Mac] NVM으로 Node.js 설치하기Node.js/설치 2023. 2. 17. 22:42
NVM이란? NVM (Node Version Manager)은 커멘트 라인에서 빠르게 Node.js를 설치하고 버전을 관리할 수 있게 해주는 도구이다. 아래 공식 페이지에서 설치 명령어, 설정, 기본 사용법이 나와있다. https://github.com/nvm-sh/nvm 본 글은 공식 페이지에서 M1 Macbook 환경 기준 설치 명령어만을 기록한다. 1) NVM 설치 1. Homebrew 통한 nvm 설치 brew install nvm 2. nvm을 위한 폴더 생성 mkdir ~/.nvm 3. ./zshrc에 shell configuration 명령어 추가 vi ~/.zshrc export NVM_DIR="$HOME/.nvm" source $(brew --prefix nvm)/nvm.sh 4. 설치 ..